chore: remove handoff and continue-here files (phase 9 complete)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,61 +0,0 @@
|
|||||||
---
|
|
||||||
context: default
|
|
||||||
phase: post-v1.0
|
|
||||||
status: paused
|
|
||||||
last_updated: 2026-06-26T10:30:00Z
|
|
||||||
---
|
|
||||||
|
|
||||||
# BLOCKING CONSTRAINTS — Read Before Anything Else
|
|
||||||
|
|
||||||
_None identified this session._
|
|
||||||
|
|
||||||
<current_state>
|
|
||||||
Session-Ende nach UI-Umbau. Nächste Aufgabe: DKV Flottenkosten-Modul planen.
|
|
||||||
User hat Daten in user-files/ bereitgestellt. Planung wurde wegen Kontext-Limit verschoben.
|
|
||||||
</current_state>
|
|
||||||
|
|
||||||
<completed_work>
|
|
||||||
|
|
||||||
- Sidebar umgebaut: Footer entfernt (User-Info, Einstellungen-Button, Locale-Switcher), Admin-Bereich entfernt
|
|
||||||
- Kategorien: "Kategorien"-Header statisch, einzelne Kategorien mit eigenem Chevron-Toggle (einklappbar)
|
|
||||||
- Header-Dropdown: Einzelne Admin-Links ersetzt durch einen "Administrator"-Eintrag
|
|
||||||
- Admin-Bereich: Eigenes Layout `/admin/layout.tsx` + `AdminSidebar` — identisches Pattern wie Einstellungen
|
|
||||||
- Frontend-Schutz: Delete-Button deaktiviert wenn user.id === currentUser.id (Backend war bereits geschützt)
|
|
||||||
- Alle Änderungen committed (ba02b25) und gepusht
|
|
||||||
</completed_work>
|
|
||||||
|
|
||||||
<remaining_work>
|
|
||||||
|
|
||||||
- DKV Flottenkosten-Modul planen (nächste Session)
|
|
||||||
- Offene Fragen in HANDOFF.json dokumentiert
|
|
||||||
- Daten in user-files/ vorhanden
|
|
||||||
</remaining_work>
|
|
||||||
|
|
||||||
<decisions_made>
|
|
||||||
|
|
||||||
- Admin-Navigation als eigene Seite (wie Einstellungen) statt Dropdown-Untermenü
|
|
||||||
- Self-Delete nur im Frontend geblockt — Backend wirft bereits ForbiddenException
|
|
||||||
</decisions_made>
|
|
||||||
|
|
||||||
<blockers>
|
|
||||||
Keine.
|
|
||||||
</blockers>
|
|
||||||
|
|
||||||
## Required Reading (in order)
|
|
||||||
1. `.planning/HANDOFF.json` — DKV-Modul Kontext, offene Fragen, Dateibeschreibungen
|
|
||||||
2. `user-files/` — DKV-Rechnung (PDF), Fahrzeugdaten (xlsx), Screenshot Referenz-Tool
|
|
||||||
|
|
||||||
## Infrastructure State
|
|
||||||
- Docker-Stack läuft: web (Port 3000), api (Port 3001), db
|
|
||||||
- Letzter Build: ba02b25 — Admin-Layout + Sidebar-Umbau
|
|
||||||
|
|
||||||
<context>
|
|
||||||
User will DKV-Flottenkosten-Modul bauen. Hat DKV E-Rechnung (April 2026, 5 Seiten, 3.666,40 EUR),
|
|
||||||
Fahrzeugstammdaten (xlsx bereinigt/roh) und Screenshot eines bestehenden Fleet-Tools bereitgestellt.
|
|
||||||
Modulplanung noch nicht gestartet — erst Anforderungen klären (was soll es können?).
|
|
||||||
</context>
|
|
||||||
|
|
||||||
<next_action>
|
|
||||||
Start mit: User fragen was das Modul konkret können soll (Import, Auswertung, Export?),
|
|
||||||
dann /gsd-discuss-phase oder direkt /gsd-plan-phase für das DKV-Modul.
|
|
||||||
</next_action>
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.0",
|
|
||||||
"timestamp": "2026-07-02T06:21:28.260Z",
|
|
||||||
"phase": "09",
|
|
||||||
"phase_name": "cert-manager-module",
|
|
||||||
"phase_dir": ".planning/phases/09-cert-manager-module",
|
|
||||||
"plan": null,
|
|
||||||
"task": null,
|
|
||||||
"total_tasks": null,
|
|
||||||
"status": "paused",
|
|
||||||
"completed_tasks": [
|
|
||||||
{"id": 1, "name": "Phase 09 alle 6 Pläne ausgeführt (Waves 1–5)", "status": "done", "commit": "daff82e"},
|
|
||||||
{"id": 2, "name": "09-UAT.md erstellt, Playwright-Check durchgeführt", "status": "done", "commit": "in_memory"}
|
|
||||||
],
|
|
||||||
"remaining_tasks": [
|
|
||||||
{"id": 3, "name": "API-Container neu bauen: docker compose build api && docker compose up -d api", "status": "not_started"},
|
|
||||||
{"id": 4, "name": "Prüfen: 'Cert-Manager module seeded in registry' in docker logs", "status": "not_started"},
|
|
||||||
{"id": 5, "name": "Cert-Manager im Marketplace aktivieren (Tenant: Default)", "status": "not_started"},
|
|
||||||
{"id": 6, "name": "UAT fortsetzen: /gsd-verify-work 9", "status": "not_started"}
|
|
||||||
],
|
|
||||||
"blockers": [
|
|
||||||
{
|
|
||||||
"description": "Docker API-Container läuft alten Build — CertManagerModule nicht deployed. Keine cert-manager Routes, kein Seed. Marketplace zeigt nur dkv-fleet + domaincheck.",
|
|
||||||
"type": "human_action",
|
|
||||||
"workaround": "docker compose build api && docker compose up -d api"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"async_jobs": [],
|
|
||||||
"human_actions_pending": [
|
|
||||||
{
|
|
||||||
"action": "docker compose build api && docker compose up -d api",
|
|
||||||
"context": "Phase-09-Code (CertManagerModule) nicht im laufenden Container. Rebuild erforderlich vor UAT.",
|
|
||||||
"blocking": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"decisions": [
|
|
||||||
{"decision": "forge.pkcs12.toPkcs12Asn1(null, certs, password) funktioniert in node-forge 1.4.0 — null-key PFX liefert cert-only PKCS12", "rationale": "Open Question 1 resolved", "phase": "09"},
|
|
||||||
{"decision": "DER-Encoding: bytesToHex → Buffer.from(hex,'hex') → base64", "rationale": "Pitfall 1 — nie utf-8 roundtrip für Binary", "phase": "09"},
|
|
||||||
{"decision": "expect.extend(matchers) explizit in web vitest setup.ts", "rationale": "Vitest 4.x Bug — jest-dom extends nicht automatisch", "phase": "09"}
|
|
||||||
],
|
|
||||||
"uncommitted_files": [
|
|
||||||
".mcp.json",
|
|
||||||
"apps/api/src/auth/auth.service.ts",
|
|
||||||
"apps/api/src/user/user.controller.ts",
|
|
||||||
"apps/web/src/components/dashboard/dashboard-grid.tsx",
|
|
||||||
"apps/web/src/components/dashboard/widgets/note-widget.tsx",
|
|
||||||
"apps/web/src/components/dashboard/widgets/widget-wrapper.tsx",
|
|
||||||
"apps/web/src/components/settings/account-settings-form.tsx",
|
|
||||||
"apps/web/src/lib/auth-actions.ts",
|
|
||||||
"apps/web/src/lib/stores/dashboard-store.ts"
|
|
||||||
],
|
|
||||||
"next_action": "docker compose build api && docker compose up -d api — dann /gsd-verify-work 9",
|
|
||||||
"context_notes": "Phase 09 vollständig implementiert (6/6 Pläne, alle Tests grün: 27 API + 19 Web). UAT gestartet aber geblockt durch alten Docker-Build. Uncommitted files aus früheren Sessions — NICHT Phase-09-spezifisch, nicht committen."
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
---
|
|
||||||
context: phase
|
|
||||||
phase: 09-cert-manager-module
|
|
||||||
task: null
|
|
||||||
total_tasks: null
|
|
||||||
status: paused
|
|
||||||
last_updated: 2026-07-02T06:21:28.260Z
|
|
||||||
---
|
|
||||||
|
|
||||||
# BLOCKING CONSTRAINTS — Read Before Anything Else
|
|
||||||
|
|
||||||
_Keine blocking constraints aus der Implementierung._
|
|
||||||
|
|
||||||
<current_state>
|
|
||||||
Phase 09 vollständig implementiert (6/6 Pläne, 27 API + 19 Web-Tests grün).
|
|
||||||
UAT gestartet (09-UAT.md) aber geblockt:
|
|
||||||
Docker API-Container läuft alten Build — CertManagerModule nicht deployed.
|
|
||||||
Keine cert-manager Routes, kein Seed. Marketplace zeigt nur 2 Module.
|
|
||||||
</current_state>
|
|
||||||
|
|
||||||
<completed_work>
|
|
||||||
|
|
||||||
- Wave 1 (09-01+02): API Foundation + Web Shell 4-Tabs
|
|
||||||
- Wave 2 (09-03): parseCert PEM/DER/PFX/P7B + InspectTab (TDD RED→GREEN)
|
|
||||||
- Wave 3 (09-04): splitCerts fullchain+P7B + SplitTab
|
|
||||||
- Wave 4 (09-05): convertCert PEM↔DER↔P7B + ConvertTab
|
|
||||||
- Wave 5 (09-06): mergeCerts PEM-Kette + Passwort-PFX + MergeTab
|
|
||||||
- 09-UAT.md: 8 Tests definiert, status: partial
|
|
||||||
</completed_work>
|
|
||||||
|
|
||||||
<remaining_work>
|
|
||||||
|
|
||||||
**Vor Resume (manuell):**
|
|
||||||
```bash
|
|
||||||
docker compose build api && docker compose up -d api
|
|
||||||
docker logs tessera-ctl-api-1 | grep "Cert-Manager"
|
|
||||||
```
|
|
||||||
Dann: Marketplace → cert-manager aktivieren (Tenant: Default)
|
|
||||||
Dann: `/gsd-verify-work 9`
|
|
||||||
</remaining_work>
|
|
||||||
|
|
||||||
<decisions_made>
|
|
||||||
|
|
||||||
- forge.pkcs12.toPkcs12Asn1(null, certs, password) funktioniert — null-key PFX OK (Open Question 1 resolved)
|
|
||||||
- DER: bytesToHex → Buffer.from(hex,'hex') → base64 (Pitfall 1 — nie utf-8)
|
|
||||||
- expect.extend(matchers) explizit in web vitest setup.ts (Vitest 4.x Bug)
|
|
||||||
</decisions_made>
|
|
||||||
|
|
||||||
<blockers>
|
|
||||||
|
|
||||||
- Docker-Build veraltet: `docker compose build api && docker compose up -d api` nötig
|
|
||||||
- Uncommitted files aus alten Sessions (auth, dashboard etc.) — NICHT committen
|
|
||||||
</blockers>
|
|
||||||
|
|
||||||
## Required Reading
|
|
||||||
1. `.planning/phases/09-cert-manager-module/09-UAT.md` — 8 Tests, alle pending
|
|
||||||
|
|
||||||
## Infrastructure State
|
|
||||||
- Docker: web (3000) OK; api (3001) läuft mit ALTEM Build (kein CertManagerModule)
|
|
||||||
- git: main, HEAD daff82e
|
|
||||||
- Uncommitted (ignorieren): .mcp.json, auth.service.ts, user.controller.ts, dashboard-*.tsx, widget-wrapper.tsx, account-settings-form.tsx, auth-actions.ts, dashboard-store.ts
|
|
||||||
|
|
||||||
<context>
|
|
||||||
Phase 09 code-seitig fertig. Einziger offener Punkt: Docker rebuild + UAT.
|
|
||||||
</context>
|
|
||||||
|
|
||||||
<next_action>
|
|
||||||
docker compose build api && docker compose up -d api — dann /gsd-verify-work 9
|
|
||||||
</next_action>
|
|
||||||
Reference in New Issue
Block a user