diff --git a/STATUS.md b/STATUS.md index 8ecfc28..849d18b 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,6 +1,6 @@ # Cards — Projekt-Status & Onboarding -**Letztes Update:** 2026-05-08 (Phase 8) +**Letztes Update:** 2026-05-08 (Phase 8 + Phase 9 Polish-Welle) **Wenn du gerade neu bist (Mensch oder KI):** dieses Dokument soll dir in 5 Minuten den vollen Kontext geben. Lies es vor allem anderen. @@ -13,15 +13,25 @@ in 5 Minuten den vollen Kontext geben. Lies es vor allem anderen. Code-Übernahme aus dem alten `mana-monorepo`, sauber neu gebaut — mit einer dokumentierten Ausnahme für den Anki-Format-Parser (Phase 8c, standalone Parser-Logik). -- **11 saubere Commits** auf `main`. Type-check 4/4 grün, **92 Tests - grün** (41 Domain + 46 API + 5 Web), lokaler E2E-Smoke (Postgres → - API → Frontend → Föderations-Endpunkte → Cloze-Card mit 2-Cluster- - Sub-Index) durch. -- **Phasen 0, 1, 3, 4, 5, 8 sind durch** und verifiziert. Phase 2 - (Auth-Föderation) ist auf user-side Pre-Flight blockiert. +- **17 saubere Commits** auf `main`. Type-check 4/4 grün, **94 Tests + grün** (41 Domain + 48 API + 5 Web), lokaler E2E-Smoke (Postgres → + API → Frontend → Föderations-Endpunkte → Cloze-Card → /stats → + /me/export) durch. +- **Phasen 0, 1, 3, 4, 5, 8 vollständig durch.** **Phase 9 Polish- + Welle teilweise** (Card-Edit, Cloze-Editor, Inbox-Banner, Account- + /DSGVO-Self-Service, Statistik-Dashboard) — i18n + Image-Occlusion + + Hint-Anzeige bei Cloze stehen noch offen. Phase 2 (Auth- + Föderation) ist auf user-side Pre-Flight blockiert. +- **Pre-Flight teilweise abgeräumt (Sprint 8d):** Verdaccio-Token + produktiv via npm.mana.how, lokaler Protocol-Mirror durch + Re-Exports aus `@mana/shared-share-protocol` ersetzt, Spec-Drift + `mana/url` → `mana/link` gefixt. Verbleibend Pre-Flight: DNS, + GitHub-Repo, mana-auth-App-Reg, mana-share-Manifest-Reg. - Cards läuft lokal, ist im Browser benutzbar, hat alle Föderations- Endpoints aus dem `app-manifest.json` implementiert. Anki-Decks - können importiert werden (Cloze first-class). + können importiert werden (Cloze first-class), Karten manuell + editiert, Statistiken angeschaut, Daten via DSGVO-Self-Service + exportiert/gelöscht. ``` ┌─────────────────────────────────┐ @@ -78,8 +88,8 @@ Vollständiger Plan: [`mana/docs/playbooks/CARDS_GREENFIELD.md`](../mana/docs/pl | 5 | Föderations-Endpunkte (share, tools, search, dsgvo) | ✅ | 70 Tests grün, E2E-Smoke (Quote→Inbox→Search→DSGVO-Roundtrip) | | 6 | Subscriptions/Credits via mana-credits | ⏸ offen | autonom möglich | | 7 | AI/MCP-Integration | ⏸ offen | braucht laufende mana-mcp | -| 8 | Anki-Import (.apkg-Parser, Cloze-Support) | ✅ | 92 Tests grün, /import-Route benutzbar, Cloze als 3. MVP-Card-Type. Media + Editor-UI bewusst out-of-scope | -| 9 | Polish (DSGVO-UI, Settings, Account, Statistik, i18n, A11y) | ⏸ offen | breite Polish-Phase | +| 8 | Anki-Import (.apkg-Parser, Cloze-Support) | ✅ | 92 Tests grün, /import-Route benutzbar, Cloze als 3. MVP-Card-Type | +| 9 | Polish (DSGVO-UI, Settings, Account, Statistik, i18n, A11y) | 🟡 läuft | Card-Edit + Cloze-Editor + Inbox-Banner + Account/DSGVO + Statistik durch (9a-9f). i18n, A11y-Pass, Hint-Anzeige bei Cloze, Image-Occlusion und manuelle Cloze-Hint-UI offen | | 10 | Production-Deploy (Mac Mini, Cloudflare-Tunnel) | ⏸ offen | braucht DNS + Tunnel-Config | | 11 | Decommission Cards-Modul aus mana-monorepo | ⏸ offen | erst nach Phase 10 | @@ -221,6 +231,13 @@ Volle Konventionen: [`CLAUDE.md`](CLAUDE.md) ## Git-Historie ``` +6db6dc3 Phase 9f: Statistik-Dashboard +03117d5 Phase 9e: Account-Page mit DSGVO-Self-Service +aff4d95 Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt +47419b3 Phase 9c: Inbox-Banner auf /decks und /study +35366ed Phase 9b: Cloze-Editor in /cards/new +0a40367 Phase 9a: Card-Edit-Page für alle 3 CardTypes +9da10b3 Phase 8d: STATUS.md auf Phase-8-Stand aktualisiert 2ca09fe Phase 8c: Anki-Import via portiertem Parser 0b609c4 Phase 8b: Cloze-Render im Study-View 553a78d Phase 8a: Cloze als MVP-Card-Type, Cluster-Counter @@ -262,9 +279,24 @@ mit angelegt — siehe `apps/api/src/routes/cards.ts` POST-Handler. Typen. Für Cloze siehe Subtilität #6 — `subIndexCountForCloze(text)` ist die SoT, weil die Anzahl text-abhängig ist. -### 3. Lokales Protocol-Mirror +### 3. Protocol-Mirror auf upstream umgestellt (Sprint 8d, 2026-05-08) -`packages/cards-domain/src/protocol/` enthält eine **TEMPORARY**- +`packages/cards-domain/src/protocol/` war ursprünglich ein lokaler +Mirror, ist seit Sprint 8d ein dünner Re-Export von +`@mana/shared-share-protocol@0.1.0` aus Verdaccio (npm.mana.how). Die +gemeinsamen Schemas (Envelope, Search, Quote/Link/Text-Payloads) kommen +direkt aus dem Föderations-Vertrag, nur die Cards-spezifische +Akzeptanz-Map (`PAYLOAD_SCHEMAS`, `validatePayloadForType`) bleibt +lokal. Drift-Risiko ist damit beseitigt — `pnpm update` zieht +automatisch nach. + +**Repo-`.npmrc` zeigt auf `npm.mana.how`** (nicht `pkg.mana.how` wie +zuvor — der Tunnel wurde am 2026-05-07 zurückgerollt). NPM_AUTH_TOKEN +muss als env-var oder im Shell-Profile vor `pnpm install` gesetzt sein. + +### 3-historisch. Lokales Protocol-Mirror (vor Sprint 8d) + +`packages/cards-domain/src/protocol/` enthielt eine **TEMPORARY**- Kopie der Schemas aus `@mana/shared-share-protocol`. Solange Verdaccio nicht offen ist (kein `NPM_AUTH_TOKEN`), halten wir sie hier lokal. @@ -365,20 +397,22 @@ diskutiert worden. In Reihenfolge meiner Empfehlung: -1. **Card-Edit-Page + Inbox-Banner im Frontend** — 1–2 Tage Polish. - Schließt die augenfälligste UI-Lücke (Karten kann man anlegen aber - nicht editieren). Cloze-Editor wäre sinnvoll mitzuziehen. -2. **Pre-Flight aktiv abräumen** — Mana-Plattform-Stack + mana-auth - live, dann Cards als App registrieren (Phase 2). NPM_AUTH_TOKEN - für Verdaccio liegt laut Memory bereits vor — der Protocol-Mirror- - Swap auf `@mana/shared-share-protocol` ist eine 1-2h-Arbeit. -3. **Phase 6 (Subscriptions)** — braucht laufende mana-credits. -4. **Phase 9 (Polish)** — Settings, Account, DSGVO-UI, Statistik, - i18n, Hint-Anzeige bei Cloze, Media-Upload für Anki-Import - (additiv zu Phase 8c). +1. **Phase 9 weiter ausbauen** — i18n DE/EN-Pass über alle Routes, + A11y-Pass, Hint-Anzeige bei Cloze (`{{c1::a::hint}}`), Media- + Upload für Anki-Import (additiv via lokalem cards-api-Endpoint). + Re-Import-Dedupe wäre nice. ~3–5 Tage. +2. **Pre-Flight Restklemmen abräumen** — DNS, GitHub-Repo + `mana-ev/cards`, mana-auth-App-Reg (Service-Key + Public-Key), + mana-share-Manifest-Reg. Verdaccio + Protocol-Swap durch + (Sprint 8d). Hängt an User-Aktion + laufender Plattform. +3. **Phase 6 (Subscriptions)** — braucht laufende mana-credits + + Phase 2 Auth-Föderation. +4. **Phase 7 (AI/MCP)** — braucht laufende mana-mcp. +5. **Phase 10 (Production-Deploy)** — Mac Mini + Cloudflare-Tunnel, + nach allen Pre-Flight-Items. -Was nicht autonom geht: Phase 2 (Auth-Föderation), Phase 7 (mana-mcp- -Live), Phase 10 (Mac-Mini-Deploy) — alle hängen an Pre-Flight-Items. +Was nicht autonom geht: Phase 2, 6, 7, 10 — alle hängen an Pre-Flight +oder Plattform-Diensten. Phase 9 weiter ist autonom möglich. ---