cards/apps/web
Till JS 2b36990e43 feat(cards): multiple-choice Card-Type mit dynamischen Distractors
- CardTypeSchema: 'multiple-choice' (Felder: front + answer, distractor_pool optional)
- subIndexCount: 'multiple-choice' → 1
- GET /api/v1/decks/:deckId/distractors: N zufällige Feldwerte anderer Karten
  im Deck; field-Allowlist (front/back/answer/question); RANDOM() ORDER; Fallback
  auf distractor_pool wenn Deck < 4 Karten
- fetchDistractors(): Frontend-Client-Funktion
- MultipleChoiceView.svelte: lädt Distractors on mount, shuffelt 4 Optionen,
  zeigt Sofort-Feedback (correct/wrong/neutral), Keyboard 1–4 + Space;
  auto-grade correct→good, wrong→again
- Study-Page: isMultipleChoice + multipleChoiceData derived, Action-Bar
  ausgeblendet, onKey delegiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 15:28:37 +02:00
..
src feat(cards): multiple-choice Card-Type mit dynamischen Distractors 2026-05-10 15:28:37 +02:00
static Phase 8c: Anki-Import via portiertem Parser 2026-05-08 17:43:12 +02:00
tests Phase 9k: Media-Upload via MinIO-Container 2026-05-08 18:42:56 +02:00
Dockerfile fix(dockerfiles): copy tsconfig.base.json into build context 2026-05-08 20:12:01 +02:00
package.json feat(decks): Deck-Kategorien über den ganzen Stack 2026-05-09 20:24:47 +02:00
svelte.config.js Phase 0+1: Repo-Skelett für Cards-Greenfield 2026-05-08 14:08:41 +02:00
tsconfig.json Phase 3 follow-up: type-check + tests grün, ts-fsrs v5 API 2026-05-08 14:41:04 +02:00
vite.config.ts dev: dev:full + cards-dev-Alias + lokale mana-auth-Pipeline 2026-05-09 12:38:51 +02:00