cb493010d0
- Append-only undo via correction transactions tied to cookingSessionId. - POST /v1/cooking-sessions/:id/undo with 24h UTC window (409 + i18n after expiry). - Complete undo scope: meals removed, meal boxes discarded, recipe_cooks deleted, cookCount decremented; activation milestones left intact. - Deterministic assumption-profile rollback via lastSessionAnswers.sessionId; profile deleted when observationCount reaches 0. - New status 'undone' as TEXT validated against COOKING_SESSION_STATUSES. - Analytics event cooking_session_undone + domain events MEAL_BOX_DISCARDED, MEAL_REMOVED, COOKING_SESSION_UNDONE. - Partial consumption uses actualPortionsEaten/plannedPortions factor. - i18n coverage for cooked.undoWindowExpired across all 12 locales + server. - Invariant tests: computeBalance(transactions) === item.quantity after complete, undo, and undo + new complete; transaction count increases on undo. - Migration 0014_expand_event_types.sql adds new enum values. - Updated FAS3-COOKING-SESSIONS-AUDIT.md with chosen semantics.
Dokumentation (arbetsnamn: se brand.config.json)
Dokumentationen följer master-specifikationens leveransstruktur (Del 1–20).
| Del | Dokument | Innehåll |
|---|---|---|
| 1 | 01-executive-summary.md | Kärnprodukt, målgrupper, differentiering, affärsvärde |
| 2 | 02-kritisk-bedomning.md | Styrkor, svagheter, risker, betalningsvilja, retention |
| 3 | 03-funktionskatalog.md | Launch Core / Advanced / Post-launch / Partnerships |
| 4 | 04-ux.md | Onboarding, navigation, skärmar, flöden, paywall |
| 5–6 | 05-arkitektur.md | Komponenter, dataflöden, repostruktur, paketansvar |
| 7 | 07-datamodell.md | Tabeller, relationer, constraints, index, migrationer |
| 8 | 08-api-referens.md | Samtliga endpoints per domän |
| 9 | 09-aamos-integration.md | Kontrakt, task types, routing, memory, feedback, evals |
| 10 | 10-ai-kostnad.md | Modeller, verifierade priser, kostnad per skala |
| 11 | 11-receptstrategi.md | Volym, rättigheter, redaktion, creators, moderering |
| 12 | 12-sakerhet-gdpr.md | Konkret checklista + implementationsstatus |
| 13 | 13-subscriptions.md | StoreKit, Play Billing, verifiering, trial, grace, offline |
| 14 | 14-infrastruktur.md | Befintlig server nu, Docker, DB, S3, migration senare |
| 15 | 15-utvecklingsfaser.md | Fas 1–10 med mål, test, exit criteria, rollback |
| 16 | 16-teststrategi.md | Unit, integration, AI-evals, allergier, load, release |
| 17 | 17-launch-checklista.md | App Store, Play, TestFlight, privacy, incident |
| 18 | 18-riskregister.md | Risk, sannolikhet, påverkan, åtgärd, ägare |
| 19 | 19-beslutslogg.md | Alla låsta beslut med motivering |
| 20 | STATUS.md | Vad som är byggt, stubbar, nästa steg |
| – | CHANGELOG.md | Ändringslogg |
| 21 | 21-lanseringsplan.md | Körbar runbook: namnbeslut → butik |
| 22 | 22-butiksmetadata.md | Store-listning sv/en + marknadsmatris (M8-utkast) |
| 23 | 23-juridik-utkast.md | Integritetspolicy/villkor – UTKAST, kräver jurist |
| 24 | 24-lasttest.md | Lasttestreferens + trösklar |
| 25 | 25-testguide.md | Testa API/admin/mobilapp i egen infra – före namn & butik |
| – | namnbyte.md | Namnstatus + runbook för namnbyte (spec §65) |
Levande dokument som ska uppdateras vid varje förändring (spec §63): STATUS.md, CHANGELOG.md, 19-beslutslogg.md, 05-arkitektur.md, samt migrationsloggen i 07-datamodell.md.