Commit Graph

115 Commits

Author SHA1 Message Date
schalli 54f396a288 docs(18-06): STATE/ROADMAP nach Plan 06 aktualisieren 2026-09-16 17:27:35 +02:00
schalli b83d02d6fc docs(18-05): STATE/ROADMAP nach Plan 05 aktualisieren 2026-09-16 17:17:22 +02:00
schalli 233de7eae0 docs(18-04): STATE/ROADMAP nach Plan 04 aktualisieren
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 16:43:52 +02:00
schalli 82312ef691 docs(18-03): complete Web-Oberflaeche fuer Desktop-App plan 2026-09-16 16:32:35 +02:00
schalli 2164cd537a docs(18-02): complete CI-Pipeline fuer Desktop-Client plan
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 16:23:58 +02:00
schalli cd62de1d38 docs(18-01): Aktenstand + Fahrplan nach Plan 01 aktualisieren
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 16:14:06 +02:00
schalli 0e4eb9bf9e docs(18): Planung abgeschlossen — Pruefer gruen (0 Blocker), Wellen im Fahrplan annotiert, offene Forschungsfragen in Plaenen aufgeloest, Aktenstand 'Ready to execute'
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 15:57:00 +02:00
schalli 2eb3be8b74 docs(18): Phase 18 geplant — sechs Plaene (Tracer Linux-Strecke, Pipeline, Web, Client, Windows-Cross-Bau mit Iterationsschleife, Abschluss), Validierungsplan, API-Coverage, Fahrplan 2026-09-16 15:53:45 +02:00
schalli 2d3c09f302 docs: Phase 18 Desktop-Client fertigstellen im Fahrplan angelegt (Ziel, Erfolgskriterien, Aktenstand)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 14:47:26 +02:00
schalli 862988966f docs: Meilenstein-Buchhaltung auf den tatsaechlichen Stand gebracht
Tessera CI/CD / Lint & Type Check (push) Successful in 44s
Tessera CI/CD / Tests (push) Successful in 52s
Tessera CI/CD / Build & Publish Images (push) Successful in 7s
Die Unterlagen fuehrten weiterhin v1.1 als laufenden Meilenstein, obwohl alle 17
Phasen und 83 Plaene ausgefuehrt sind und die Phasen 15 bis 17 zu v1.2 gehoeren. Wer
neu draufschaute, sah einen falschen Projektstand.

Korrigiert in ROADMAP.md, STATE.md und PROJECT.md:

v1.0 bleibt ausgeliefert. v1.1 traegt jetzt den ehrlichen Zwischenstand — alle Plaene
fertig, alle Phasen ausser 14 verifiziert, offen allein der Live-Test von Phase 14
gegen ein echtes Exchange-Postfach; inhaltlich abgeschlossen, formal nicht. v1.2 ist
abgeschlossen, alle drei Phasen verifiziert. Ergaenzt um den Hinweis, dass kein neuer
Meilenstein begonnen wurde und die drei verbleibenden Pruefpunkte Fremdsysteme
brauchen.

Ausserdem die Zeile zu Phase 2 praezisiert. Sie stand auf "Incomplete", was nach
liegengebliebener Arbeit klang und im Widerspruch zu v1.0 als ausgeliefertem
Meilenstein stand. Tatsaechlich sind alle vier Baupläne fertig und seit v1.0 in
Betrieb; offen ist allein die nie ausgefuehrte Browser-Abnahme, die der User am
2026-09-07 bewusst zurueckgestellt hat, weil Tessera zunaechst nur intern laeuft.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
2026-09-07 14:11:05 +02:00
schalli dba261de38 docs(13): Dedup-Fix dokumentiert und am laufenden System gegengeprueft
Tessera CI/CD / Lint & Type Check (push) Successful in 49s
Tessera CI/CD / Tests (push) Successful in 48s
Tessera CI/CD / Build & Publish Images (push) Successful in 4m1s
Die Fingerabdruck-Stufe legte vor dem Fix bei 16.255 Zeilen null Duplikate
zusammen — nicht zu wenige, sondern gar keine. Nach der Umstellung auf die
quellstabilen Felder sind es 26 Gruppen mit 52 Zeilen, davon 2 durch das neue
Wert-Veto getrennt. 374/374 API-Tests unabhaengig nachgelaufen.

Die automatische Nachrechnung wurde scharf geprueft statt nur beobachtet: 500
Zeilen wurden kuenstlich auf ein altes Fingerabdruck-Format zurueckgesetzt, dann
die API neu gebaut und gestartet. Der Start um 08:46:25 meldete "500 Zeile(n) auf
die neue Formel gebracht" und hinterliess null veraltete Zeilen; der Neustart um
08:46:49 erzeugte keine Meldung mehr. Damit ist beides belegt — dass sie repariert
und dass sie nicht bei jedem Start erneut laeuft.

Der Bericht haelt die drei bewusst getragenen Grenzen fest (zweites Los gleicher
Groessenordnung wird falsch zusammengelegt; RSS/E-Mail matchen nur ueber den Titel;
der eine bereits messbare Fall LSA242) und begruendet, warum ein Riegel dagegen
verworfen wurde: er wuerde RSS dauerhaft von der Dublettenerkennung ausschliessen.
Ausserdem festgehalten, dass die Stufe nur beim Einlesen wirkt — der Altbestand
wird nicht rueckwirkend zusammengefuehrt.

Phase 13 steht damit auf Complete.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
2026-09-07 10:48:29 +02:00
schalli 5aca441bb3 docs: Roadmap-Status ehrlich gemacht, zwei unsichtbare Befunde ins Ledger
Die Phasen 11 bis 14 standen in der Roadmap-Tabelle auf "In Progress", obwohl an
keiner davon noch gearbeitet wird. Der Status wurde gegen die Verifikationsberichte
gehalten und dabei zeigte sich, dass es kein reiner Buchhaltungsrueckstand war:

11 und 12 stehen auf passed und sind jetzt Complete.

13 traegt einen offenen Befund. tenderFingerprint() haengt buyerName, title,
cpvDivisionKey, deadlineKey und valueBucket zu einem String und hasht ihn. Die
Scraper liefern cpvDivisions immer leer, DOE meist gefuellt — dieselbe
Ausschreibung ergibt aus beiden Quellen verschiedene Fingerabdruecke. Die
Fingerprint-Stufe greift also gerade dort nicht, wo sie greifen soll. Das stand
seit dem 2026-07-23 in 13-VERIFICATION.md, aber nicht im Ledger und war damit
praktisch unsichtbar. Jetzt WINDOWS.md #11.

14 wartet auf den Live-Test gegen ein echtes Exchange-Postfach; der
NTLM/SOAP-Weg ist nur gegen Mocks geprueft. Vom User am 2026-07-24 bewusst
zurueckgestellt, stand ebenfalls nur im Verifikationsbericht. Jetzt WINDOWS.md #12.

Beide Phasen tragen den wahren Status statt "In Progress", mit Verweis auf den
jeweiligen Ledger-Eintrag.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
2026-09-07 10:09:28 +02:00
schalli 72d0ba7e48 test(17): Browser-Gegenproben #7/#8/#9 nachgeholt — Phase 17 auf passed
Die drei human-check-Punkte aus Phase 17 waren am 2026-08-12 offen geblieben,
weil in der Ausfuehrungssitzung kein Browser-Tool verfuegbar war. Sie wurden
jetzt gegen frisch gebaute Images aus main (79015dd) mit echtem Chrome und
leerer Datenbank durchgeklickt.

#7 (17-01 Task 2): nutzer1 speichert sein Postfach, die Werte ueberleben den
Reload; nutzer2 sieht ein leeres Formular statt der Werte von nutzer1. Danach
zwei TenderEmailConfig-Zeilen mit je eigenem userId.

#8 (17-03 Task 1): Meine Quellen zeigt alle drei Abschnitte, ein eigener
RSS-Feed erscheint sofort mit Entfernen-Knopf, der plattformweite service-bund
steht darunter ohne, und das Digest-Intervall "Woechentlich" ueberlebt den
Reload.

#9 (17-03 Task 2): USER sieht auf /settings keine Bedienelemente, nur Hinweis
und Verweis; SUPER_ADMIN sieht Abrufintervall und plattformweite Feeds, aber
kein Postfach und keine Benachrichtigung mehr. Das Zahnrad fuehrt in beiden
Faellen nach Meine Quellen.

Zusaetzlich am laufenden Server gemessen, weil eine ausgeblendete Schaltflaeche
kein Beweis fuer eine serverseitige Sperre ist: als nutzer2 liefert GET
/rss-feeds nur den plattformweiten Feed, DELETE auf den plattformweiten wie auf
den fremden Feed antwortet 404 ohne die Zeile anzufassen, und POST mit
scope=platform wird mit 403 abgewiesen.

WINDOWS.md #7/#8/#9 auf fixed (open_count 9 -> 6), Verifikationsbericht mit
Nachtrag und Screenshots auf passed, ROADMAP auf Complete, STATE nachgezogen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
2026-09-07 09:53:02 +02:00
schalli 79015dd3f4 docs(17): mark phase human_needed in the roadmap
Tessera CI/CD / Lint & Type Check (push) Successful in 46s
Tessera CI/CD / Tests (push) Successful in 47s
Tessera CI/CD / Build & Publish Images (push) Successful in 6s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 15:08:59 +02:00
schalli 4453e86626 docs(17-03): complete UI-Aufteilung Meine Quellen vs. Administration plan
Tessera CI/CD / Lint & Type Check (push) Successful in 46s
Tessera CI/CD / Tests (push) Successful in 53s
Tessera CI/CD / Build & Publish Images (push) Successful in 1m58s
2026-08-12 12:06:31 +02:00
schalli e45d7f2068 docs(17-02): complete RSS-Feed-Besitzer plan 2026-08-12 11:49:07 +02:00
schalli 71dcb302a3 docs(17-01): complete eigenes Alert-Postfach je Nutzer plan 2026-08-12 11:27:28 +02:00
schalli 105683b94b docs(17): create phase plan 2026-08-12 08:26:00 +02:00
schalli 149b5aa810 docs(15): write the missing 15-04 summary, closing Phase 15
Tessera CI/CD / Lint & Type Check (push) Successful in 47s
Tessera CI/CD / Tests (push) Successful in 49s
Tessera CI/CD / Build & Publish Images (push) Successful in 7s
The AD group membership sync shipped on 2026-08-04 as 614de28; only its
summary was never written, which left Phase 15 sitting at 7/8 as if work were
outstanding. Nothing was.

Each promise the plan made is checked against today's source rather than
against the commit message: bound-only selection, no second sync job, deletion
restricted to source LDAP, manual memberships preserved, memberOf reverse query
instead of attribute reads, RFC-4515 escaping of the group DN, no nested-group
resolution, order independence, per-group error isolation. The 2026-08-11 sync
run on alpha additionally exercised this path against a real directory.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 14:04:53 +02:00
schalli 208e449bc9 docs(16): UAT test 7 passed after the full sync run
Tessera CI/CD / Lint & Type Check (push) Successful in 46s
Tessera CI/CD / Tests (push) Successful in 50s
Tessera CI/CD / Build & Publish Images (push) Successful in 7s
The user released the full run once it was clear nothing there is productive
yet. All three report lines appeared (401 created / 9 memberships added / 0
groups adopted, renamed or deleted), and the amber default-marker line stayed
absent as it should when nothing was deleted.

The run doubles as the end-to-end proof for the 260811-f9i fix: the imported
group survived the sweep with its memberships filled, where the old filter
would have deleted it in exactly this run.

Roadmap marks Phase 16 complete; Phase 15 keeps its 7/8 with the reason named.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 13:37:47 +02:00
schalli 7464d32625 docs(16-05): complete Sync-Bericht-und-Freigabe-Matrix plan (Phase 16 done, PERM-02) 2026-08-06 16:41:29 +02:00
schalli 184a3a1174 docs(16-04): complete Gruppen-Dialog-Umbau plan 2026-08-06 16:33:59 +02:00
schalli 5a687a9d01 docs(16-03): complete Gruppen-Rekonziliation plan 2026-08-06 16:24:25 +02:00
schalli da0361df5f docs(16-02): complete backend name-lock/internalName/default-handoff plan 2026-08-06 16:03:54 +02:00
schalli 1b19876c32 docs(16-01): complete AD group import tracer plan 2026-08-06 15:49:26 +02:00
schalli c4a25511f3 docs(16): create phase plan 2026-08-06 14:42:44 +02:00
schalli 3dfa671ec9 docs(16): create phase plan — 5 plans, 4 waves, tracer-first 2026-08-06 14:38:45 +02:00
schalli 5c7d4ad128 docs(16): reassign PERM-02 to phase 16 with import semantics 2026-08-06 14:10:53 +02:00
schalli be1183a61c docs(roadmap): add Phase 16 AD group synchronisation 2026-08-05 08:54:55 +02:00
schalli d15475d6d7 docs(15-08): complete Serverseitige Modulsperre und Marketplace-Sperr-Badge plan 2026-08-04 19:53:13 +02:00
schalli c6086ba750 docs(15-07): complete Freigabe-Matrix, Aktivierungsdialog und Benutzer-Detail-Grants plan 2026-08-04 19:28:18 +02:00
schalli a3e8d0a158 docs(15-06): complete Gruppenverwaltung im Admin-UI plan 2026-08-04 19:06:54 +02:00
schalli 09abb2b323 docs(15-03): complete modul-freigaben-schreibseite plan 2026-08-04 18:43:45 +02:00
schalli 2a79d4ca1f docs(15-05): complete dashboard-widget-modulfilterung plan 2026-08-04 15:39:48 +02:00
schalli c4d7b7ded6 docs(15-02): complete Gruppenverwaltung & Standardgruppen-Mitgliedschaft plan 2026-08-04 15:27:48 +02:00
schalli 79c83eae5f docs(15-01): complete Group/ModuleGrant foundation plan 2026-08-04 15:14:21 +02:00
schalli ac65149964 docs(15): create phase plan 2026-08-04 14:44:05 +02:00
schalli 8a4bb32847 docs(15): create phase plan — 8 plans, 4 waves, PERM-01..07
Tessera CI/CD / Lint & Type Check (push) Successful in 47s
Tessera CI/CD / Tests (push) Successful in 46s
Tessera CI/CD / Build & Publish Images (push) Successful in 6s
2026-08-04 14:39:46 +02:00
schalli d4ae20b300 docs(15): add PERM-01..07 requirements and widget success criterion 2026-08-04 11:59:50 +02:00
schalli 7e1b4a2964 docs(roadmap): add Phase 15 module permissions (groups & user grants)
Two-level module access: tenant activation stays a prerequisite, plus new
per-group and per-user grants. Records the four design decisions taken with
the user: Tessera-owned groups with optional AD binding, closed-by-default
access, ADMIN/SUPER_ADMIN bypass within their tenant, and access on/off only
(no permission levels inside modules). Starts milestone v1.2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 08:42:56 +02:00
schalli eff5d26413 docs(14-05): complete i18n rollout for tender-radar plan
Tessera CI/CD / Lint & Type Check (push) Successful in 47s
Tessera CI/CD / Tests (push) Successful in 55s
Tessera CI/CD / Build & Publish Images (push) Successful in 1m51s
2026-07-23 14:23:23 +02:00
schalli a4889f8399 docs(14-04): complete denylist transparency plan 2026-07-23 14:01:12 +02:00
schalli 6e3789a0b0 docs(14-02): complete RSS ingestion slice plan
Tessera CI/CD / Lint & Type Check (push) Successful in 47s
Tessera CI/CD / Tests (push) Successful in 49s
Tessera CI/CD / Build & Publish Images (push) Successful in 2m15s
2026-07-23 13:33:01 +02:00
schalli a47c0c57ee docs(14-01): complete inbox-module extraction plan 2026-07-23 13:11:21 +02:00
schalli cf105f0884 docs(14): create phase plan (5 plans, 4 waves) 2026-07-23 12:14:26 +02:00
schalli 7602795622 docs(13-05): complete cosinex/DTVP adapter plan 2026-07-23 09:51:43 +02:00
schalli 775ed153b7 docs(13-04): complete NetServer adapter plan
Tessera CI/CD / Lint & Type Check (push) Successful in 48s
Tessera CI/CD / Tests (push) Successful in 45s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m43s
2026-07-23 09:16:04 +02:00
schalli 2c28605397 docs(13-06): complete multi-source read surface plan 2026-07-23 08:57:25 +02:00
schalli 1c523c039c docs(13-03): complete dedup-resolver-fan-out-wiring plan 2026-07-23 08:53:33 +02:00
schalli 83d8eff40d docs(13-02): complete source-registry-denylist plan 2026-07-23 08:44:53 +02:00