wordeck/apps/web
Till JS 823560900c
Some checks are pending
CI / validate (push) Waiting to run
feat(web): event-sync migration L-1f Phase B — anonymous-mode + lokal-first CRUD
L-1f Phase B von mana/docs/playbooks/LOCAL_FIRST_LOGIN_OPTIONAL.md:

apps/web:
- neue Foundation: lib/sync.svelte.ts mit @mana/event-sync v0.5.0,
  Vault-Crypto via createMasterKeyProviderFromVault, anonymous-Mode
  aktiv (getToken returnt null bis Login)
- lib/api/event-adapters.ts: konvertiert WordeckDeckState/CardState/
  ReviewState (camelCase, event-sourced) → Deck/Card/Review
  (snake_case, @wordeck/domain), stable aggregate-id-Helpers
- lib/api/event-builder.ts: baut EventEnvelope mit aktuellem
  attributedToUserId (real-user-id wenn signed-in, anon:<ulid> sonst)
- lib/api/decks.ts: list/get/create/update/delete/archive auf event-sync.
  Marketplace-Source, duplicate, AI-generate bleiben HTTP (cross-user
  bzw. Tier-gated, Server-AI-Calls)
- lib/api/cards.ts: list/get/create/update/delete auf event-sync,
  Review-Init-Events beim CardCreate (basic-reverse → 2 Reviews),
  content_hash client-side via @wordeck/domain
- lib/api/reviews.ts: listDueReviews via aggregateList, gradeReview
  rechnet FSRS client-side via @wordeck/domain.gradeReview, emittet
  ReviewGraded mit prevSnapshotJson für undo
- routes/+page.svelte: kein redirect-to-/login mehr — direkt /decks
  (anonymous-Mode trägt's)
- routes/auth/callback: ruft onSignedIn(realUserId) für anonyme→real
  Re-Tagging der Outbox + EventLog

shared-schemas/wordeck:
- CardType-Korrektur: 'type-in' → 'typing' (matched @wordeck/domain
  CardType-Schema). Schema-Hash neu: da67d23cf100…, re-published auf
  sync2.mana.how + @mana/shared-schemas@0.1.10

Verbleibend für L-1f Phase C (nächste Session):
- Wordeck-API server-seitige Routes auf Read-Only-Projektion umstellen
  (heute noch Read+Write, wir lassen es da bis wir sicher sind dass
  event-sync stabil läuft)
- /api/v1/public/feed Endpoint (oder Marketplace-Alias)
- DSE-Update (lokale Speicherung, anonyme Nutzung erwähnen)
- Live-Smoke auf wordeck.com

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 21:37:34 +02:00
..
src feat(web): event-sync migration L-1f Phase B — anonymous-mode + lokal-first CRUD 2026-05-20 21:37:34 +02:00
static feat(web): PWA-Setup über @mana/shared-pwa (Adoption #9) 2026-05-19 00:44:38 +02:00
tests feat(text-only): Wordeck-Cutoff für Image-Occlusion + Audio + MinIO 2026-05-17 21:23:30 +02:00
Dockerfile fix(dockerfiles): packages/cards-domain → wordeck-domain 2026-05-17 22:40:31 +02:00
package.json feat(web): event-sync migration L-1f Phase B — anonymous-mode + lokal-first CRUD 2026-05-20 21:37:34 +02:00
svelte.config.js Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
tsconfig.json feat(web): PWA-Setup über @mana/shared-pwa (Adoption #9) 2026-05-19 00:44:38 +02:00
vite.config.ts feat(web): PWA-Setup über @mana/shared-pwa (Adoption #9) 2026-05-19 00:44:38 +02:00