chore(planning): Veraltete Checkpoints entfernt, ihr Wissen nach STATE.md ueberfuehrt
Die beiden .continue-here.md-Dateien stammten aus abgeschlossener Arbeit (Phase 10 vom 2026-07-21, Meilenstein-Abschluss vom 2026-08-11) und waren als Wiedereinstiegspunkt ueberholt. Ihre noch gueltigen Inhalte standen jedoch nirgends sonst und waeren beim Loeschen verloren gegangen: - fuenf Anti-Patterns (tautologischer Test, HTTP 200 als Funktionsbeleg, Image-Datum als Aktualitaets-Beleg, Server-Compose ist kein Checkout, stale live container maskiert Fertigstellung) - Infrastruktur-Stand von alpha inkl. der Drift zwischen /opt/tessera und dem Repository - der Blocker "kein AD-Schreibzugriff", der den noch offenen Live-Test WINDOWS #4 direkt betrifft Beides ist jetzt als eigene Abschnitte unter Accumulated Context in STATE.md festgehalten. Ausserdem den Blocker 15-06 als erledigt markiert (die Gegenprobe wurde am 2026-09-07 nachgeholt) und .gsd/ ignoriert — das ist Laufzeit-Scratch, das pro Sitzung neu geschrieben wird. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FYZcd3SSmo14QTqWx2KKzU
This commit is contained in:
+43
-7
@@ -5,10 +5,10 @@ milestone_name: Plattform-Berechtigungen
|
||||
current_phase: 17
|
||||
current_phase_name: eigene-ausschreibungs-quellen-je-nutzer
|
||||
status: verified
|
||||
stopped_at: "Sitzung sauber beendet, alles auf origin/main (8629889), Arbeitsbaum leer. Erledigt: Phase 17 auf passed; alte Browser-Gegenproben #1,#2,#3,#5 nachgeholt; zwei echte Defekte behoben (#10 Zugriffs-Guard griff nicht auf modul-eigenen Routen, #11 Fingerabdruck-Dedup war wirkungslos) plus #13 (Tailwind-Dunkelvariante nie an .dark gebunden, ueber 100 dark:-Angaben ohne Wirkung); Logo und Favicon eingebaut; Umlaute, Anrede und Ein-/Mehrzahl korrigiert; Meilenstein-Buchhaltung auf v1.2 abgeschlossen. Offen: WINDOWS #4/#6 (echtes AD), #12 (echtes Exchange) — alle als Deferred Items fuer den Live-Test vorgemerkt; Backlog: Mandanten-Branding."
|
||||
last_updated: "2026-09-07T12:30:00.000Z"
|
||||
stopped_at: "Aufraeumen abgeschlossen. Zwei veraltete .continue-here-Dateien entfernt, ihre noch gueltigen Inhalte (5 Anti-Patterns, Infrastruktur-Stand alpha, Blocker 'kein AD-Schreibzugriff') nach STATE.md Accumulated Context ueberfuehrt; .gsd/ in .gitignore. Naechster Schritt: Live-Tests WINDOWS #4, #6 (echtes AD) und #12 (echtes Exchange-Postfach). Achtung: #4 braucht AD-Schreibrechte, die am 2026-08-11 noch fehlten."
|
||||
last_updated: "2026-09-07T14:40:00.000Z"
|
||||
last_activity: 2026-09-07
|
||||
last_activity_desc: Sitzung abgeschlossen — Phase 17 zu, zwei Defekte behoben, Logo eingebaut, Sprache bereinigt, Meilenstein-Buchhaltung korrigiert
|
||||
last_activity_desc: Checkpoint-Aufraeumen — veraltete .continue-here-Dateien entfernt, Pitfalls und Infrastruktur-Stand nach STATE.md gerettet
|
||||
progress:
|
||||
total_phases: 17
|
||||
completed_phases: 17
|
||||
@@ -289,6 +289,42 @@ Recent decisions affecting current work:
|
||||
- [Phase ?]: [17-03]: Anzeige-Rollenpruefung auf settings/page.tsx ueber useAuthStore (unbekannt/erlaubt/verweigert); verbindliche Pruefung bleibt serverseitig
|
||||
- [Phase ?]: [17-03]: REQUIREMENTS.md SRC-01..05 nachtraeglich ergaenzt — Luecke aus 17-01/17-02, dort schon in SUMMARY-Frontmatter gefuehrt
|
||||
|
||||
### Pitfalls & Anti-Patterns
|
||||
|
||||
Lehren aus abgeschlossenen Sitzungen. Gerettet aus den Checkpoint-Dateien
|
||||
(`.continue-here.md`), die am 2026-09-07 entfernt wurden.
|
||||
|
||||
| Muster | Beschreibung | Schwere | Vermeidung |
|
||||
|--------|--------------|---------|------------|
|
||||
| Tautologischer Test | Der Test der objectGUID-Suche baute seinen Erwartungswert mit **derselben** Hilfsfunktion, die der Produktionscode benutzte. Er bestaetigte damit, dass die Funktion zu sich selbst passt — nicht, dass ein Verzeichnis den Filter versteht. Der Fehler ueberlebte Review und 500+ Unit-Tests und haette beim ersten echten Sync alle AD-gebundenen Gruppen geloescht. | blocking | Tests gegen externe Systeme muessen die **Form** des Aufrufs pruefen (Buffer statt String, Objekt statt interpoliertem Text), nicht seinen mit Produktionscode erzeugten Inhalt. Siehe `ldap.service.spec.ts`, die beiden Tests am Ende des `syncBoundGroupsForTenant`-Blocks. |
|
||||
| HTTP 200 als Funktionsbeleg | `oeffentlichevergabe.de/ui/...` ist eine Single-Page-App und antwortet auf JEDE Kennung mit 200 und identischen 1309 Bytes, auch auf `NONSENSE123`. Ein Statuscode-Test haette "funktioniert" gemeldet. | advisory | Bei SPA-Zielen den gerenderten Inhalt pruefen (Playwright), nie den Statuscode. |
|
||||
| Image-Datum als Aktualitaets-Beleg | Das Web-Image trug den 7. August und sah veraltet aus. Tatsaechlich hatten sich die Web-Quellen seither nicht geaendert; Docker-Layer-Caching erzeugt ein bit-identisches Image mit altem Erstellungsdatum. | advisory | Vor einer Aussage ueber Rueckstand `git log -- apps/web` pruefen, nicht das Image-Datum. |
|
||||
| Server-Compose ist kein Checkout | `/opt/tessera` ist keine Git-Arbeitskopie. Aenderungen an Compose-Dateien im Repository kommen dort nie an; der Deploy holt nur Images. | blocking | Aenderungen an `docker-compose*.yml` wirken NICHT auf alpha. Was dort gelten soll, muss zusaetzlich in `/opt/tessera/docker-compose.yml` eingetragen werden (erlaubt, mit Sicherung). Siehe Backlog `2026-08-11-compose-datei-auf-server-driftet.md`. |
|
||||
| Stale live container maskiert Fertigstellung | Code, Migration und Tests waren gruen, aber der laufende `tessera-ctl-api-1` lief auf dem Image von vor der Phase. Niemand hatte je einen echten HTTP-Aufruf gegen die neuen Routen gesehen. Das war kein Code-Defekt, sondern eine unbeobachtete Fertigstellung. | advisory | Container neu bauen (`docker compose up -d --build api web`), bevor ein "Tests gruen"-Zustand als nutzersichtbar fertig gilt. Gilt fuer die lokale Entwicklungsmaschine; auf dem Testserver macht der User das selbst. |
|
||||
|
||||
### Infrastruktur-Stand (alpha, Stand 2026-08-11)
|
||||
|
||||
Gerettet aus `.continue-here.md`. Relevant fuer die noch offenen Live-Tests.
|
||||
|
||||
- **alpha** (192.168.13.12, https://alpha.tessera.ctl.de): API-Image mit allen Fixes;
|
||||
Migrationen `20260811120000_doe_notice_url_backfill` und
|
||||
`20260811140000_encrypt_ldap_bind_password` angewandt.
|
||||
- **`/opt/tessera/.env`**: traegt `TESSERA_ENCRYPTION_KEY` UND den alten
|
||||
`CALENDAR_ENCRYPTION_KEY` mit gleichem Wert. Sicherung `.env.bak.20260811`. Die alte
|
||||
Zeile kann weg, sobald kein Rueckfall auf aeltere Images mehr denkbar ist.
|
||||
- **`/opt/tessera/docker-compose.yml`**: von Hand um die neue Variable ergaenzt, Sicherung
|
||||
`docker-compose.yml.bak.20260811`. Driftet vom Repository ab.
|
||||
- **Testdaten auf alpha**: 405 Benutzer und die AD-gebundene Gruppe `Claude_VT`
|
||||
(9 Mitglieder) aus dem Sync vom 2026-08-11. Der User wirft vor dem Go-live ohnehin
|
||||
alles raus.
|
||||
- **Deploy-Regel**: `pull`/`up`/`restart` macht der User. Konfigurationsdateien auf dem
|
||||
Server darf Claude bearbeiten (seit 2026-08-11), vorher sichern.
|
||||
- **Kein AD-Schreibzugriff** (Stand 2026-08-11): Phase-16-UAT 1/3/4 waren deshalb nicht
|
||||
ausfuehrbar und wurden als dokumentierte Annahme geschlossen. **Betrifft direkt den
|
||||
offenen Live-Test WINDOWS #4** — dessen Annahme A1 (objectGUID uebersteht Umbenennung)
|
||||
verlangt eine echte Umbenennung im Verzeichnis, also Schreibrechte. Vor dem Live-Test
|
||||
klaeren, ob diese inzwischen vorliegen.
|
||||
|
||||
### Pending Todos
|
||||
|
||||
None yet.
|
||||
@@ -298,7 +334,7 @@ None yet.
|
||||
- [Roadmap v1.1]: DÖE OpenData API pagination/rate-limit parameters unverified (Swagger UI is JS-rendered) — resolve via a live API call during Phase 10 planning, not assumed from docs.
|
||||
- [Roadmap v1.1]: Whether AI-AG NetServer / cosinex VMP search pages require JS rendering is unverified — needs a Phase 13 start-of-phase spike before committing to playwright.
|
||||
- Phase 14 Plan 03 (14-03): Task 4 human-verify OPEN — needs a real portal-alert mailbox (incl. Exchange/EWS live path) from the operator before INGEST-05's Exchange path is production-ready. Tasks 1-3 complete and committed (4d6fbb1, 8983231, 1be6b15, 48e1252); API 387/387, web 144/144 green.
|
||||
- Phase 15 Plan 06 (15-06): manueller Browser-Durchklick aus dem Plan-Verification-Block nicht ausgefuehrt (kein Browser-Tool in dieser Session) — vor /gsd-ship nachholen, siehe WINDOWS.md unrun-verify #1
|
||||
- ~~Phase 15 Plan 06 (15-06): manueller Browser-Durchklick nicht ausgefuehrt~~ — ERLEDIGT 2026-09-07, Gegenprobe WINDOWS.md unrun-verify #1 nachgeholt und bestanden
|
||||
|
||||
### Quick Tasks Completed
|
||||
|
||||
@@ -352,7 +388,7 @@ sind. Kein Anlass, sie vorher erneut vorzulegen.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-09-07T12:30:00.000Z
|
||||
Stopped at: Nichts in Arbeit. Naechster Schritt frei waehlbar — Mandanten-Branding waere der naechste Bau-Kandidat.
|
||||
Last session: 2026-09-07T14:40:00.000Z
|
||||
Stopped at: Aufraeumen erledigt (veraltete Checkpoint-Dateien entfernt, ihr Wissen nach STATE.md gerettet, .gsd/ ignoriert). Als naechstes: die drei zurueckgestellten Live-Tests WINDOWS #4, #6, #12 gegen echtes AD und echtes Exchange-Postfach.
|
||||
Resume file: None
|
||||
Last activity: 2026-07-14 - Built LDAP per-user exclude/denylist filter (9d1323f), migration applied on live DB, verified via Playwright: sync deactivated 4 excluded service accounts (administrator/krbtgt/guest/dns-ldap), 2 real LDAP users stay active, 0 wrongly created
|
||||
Last activity: 2026-09-07 - Checkpoint-Aufraeumen; Pitfalls und Infrastruktur-Stand in STATE.md ueberfuehrt
|
||||
|
||||
Reference in New Issue
Block a user