Cardecky — föderierte Spaced-Repetition-App des Vereins mana e.V.
Find a file
Till JS d7c7c9772e
Some checks are pending
CI / validate (push) Waiting to run
Phase 7a: cards.create-Tool für Cloze + Image-Occlusion + content_hash
Tool-Pfad in /api/v1/tools/cards.create war nicht konvergent zum
REST-Pfad in /api/v1/cards POST:
  - subIndexCount(type) crashte bei type='cloze' und 'image-occlusion'
    (beide werfen seit Sprint 8a/9l, weil Sub-Index-Anzahl text-abhängig)
  - content_hash wurde nicht geschrieben (war seit Sprint 9j auf REST-Pfad)

Fix: identische Branching-Logik wie cards.ts POST. Cloze ohne {{cN::…}}
und image-occlusion ohne valides mask_regions-JSON liefern 422.
content_hash wird mit cardContentHash beim Insert geschrieben.

Damit ist der Tool-Pfad voll-konvergent — mana-mcp und Persona-Runner
können jeden Card-Type via cards.create anlegen, sobald die Plattform-
Services (mana-share + mana-mcp) deployed sind.

Phase-7-Plumbing:
  ✓ Cards-Tools (cards.create + cards.search) sind konvergent zum
    REST-Pfad und end-to-end via Bearer-JWT verifiziert
  ✓ App-Manifest deklariert beide Tools (input_schema + output_schema)
  ✓ Service-Key in mana-auth registriert (Phase 2)
  ✗ mana-mcp + mana-share Container sind auf Mac Mini NICHT deployed
    → Tool-Discovery + Routing aus Claude Desktop / Persona-Runner
    bleiben offen, bis die Plattform-Services hochgezogen werden.
    Das ist Plattform-Scope, nicht Cards-Scope.

56 API-Tests grün, type-check sauber.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 20:48:39 +02:00
.github/workflows Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
apps Phase 7a: cards.create-Tool für Cloze + Image-Occlusion + content_hash 2026-05-08 20:48:39 +02:00
docs docs: SMOKE_TEST.md — verifizierter E2E-Lauf gegen lokale Postgres 2026-05-08 16:43:07 +02:00
infrastructure fix(prod-compose): pass MANA_AUTH_URL/MANA_CREDITS_URL/SERVICE_KEY/DEV_STUB into cards-api container 2026-05-08 20:45:55 +02:00
packages/cards-domain Phase 9l: Image-Occlusion als 4. MVP-CardType 2026-05-08 18:50:45 +02:00
.env.example Phase 5: Föderations-Endpunkte — Cards ist föderierter Peer 2026-05-08 17:10:35 +02:00
.gitignore Phase 10a: Production-Deploy-Stack (Mac Mini) 2026-05-08 20:09:19 +02:00
.npmrc Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt 2026-05-08 18:00:56 +02:00
.prettierrc.json Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
app-manifest.json Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt 2026-05-08 18:00:56 +02:00
CLAUDE.md docs: STATUS.md als Single Source of Truth für Cards-Onboarding 2026-05-08 17:18:16 +02:00
package.json Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
pnpm-lock.yaml Phase 2a: Cards-API JWT-Verify (additiv zum Dev-Stub) 2026-05-08 20:41:09 +02:00
pnpm-workspace.yaml Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
README.md docs: STATUS.md als Single Source of Truth für Cards-Onboarding 2026-05-08 17:18:16 +02:00
STATUS.md docs: Phase 10 LIVE — cardecky.mana.how + cardecky-api.mana.how 2026-05-08 20:19:59 +02:00
tsconfig.base.json Phase 3 follow-up: type-check + tests grün, ts-fsrs v5 API 2026-05-08 14:41:04 +02:00
turbo.json Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00

Cards

Eigenständige Spaced-Repetition-App des Vereins mana e.V.

Cards ist eine föderierte Peer-App im mana-Ökosystem. Sie verwaltet Karteikarten, plant Wiederholungen mit dem FSRS-Algorithmus und empfängt Inhalte aus anderen Verein-Apps (z.B. Zitate aus Memoro, Notizen aus Mana, Web-Schnipsel aus dem Browser-Plugin).

→ Live (geplant): https://cardecky.mana.how

Aktueller Stand und Pickup-Onboarding: STATUS.md.

Stack

  • Frontend: SvelteKit 2 + Svelte 5 (runes-only)
  • Backend: Hono + Bun + Drizzle ORM
  • Datenbank: Postgres mit Schema-Isolation (pgSchema('cards'))
  • Auth: föderiert über mana-auth (EdDSA JWT, JWKS-Cache)
  • Subscriptions: mana-credits (zentral pro Verein-Account)
  • AI-Tools: über mana-mcp Claude Desktop / persona-runner verfügbar
  • i18n: DE / EN / FR / ES / IT
  • Build: Turborepo + pnpm 9

Status

Phase 0 (Repo-Skeleton) — siehe mana/docs/playbooks/CARDS_GREENFIELD.md für den vollständigen Plan.

Lokal entwickeln

pnpm install
pnpm docker:up          # Postgres in Docker
pnpm db:push            # Drizzle-Schema
pnpm dev                # api + web parallel

→ API auf http://localhost:3081, Web auf http://localhost:3082 (oder Vite-Dev-Default 5173).

Voraussetzung: Mana-Plattform-Stack (mana-auth, evtl. Föderations-Services) muss lokal laufen, sonst greift Auth-Login nicht.

Lizenz

Mana-Verein-intern, MIT (siehe mana/docs/COMPLIANCE.md für Details zur Verein-Lizenzpolitik).