Files
Cibello-app/docs/PRE-LAUNCH-READINESS.md
T
2026-08-11 07:40:00 +07:00

4.5 KiB
Raw Blame History

Cibello Pre-launch readiness report

Genererad 2026-08-11 efter slutförande-audit. Repo: /home/dator_ubuntujpb/.openclaw/workspace/cibello-work/cibello HEAD: 63d83e0d7cebf12fce8573f54f828cd4dc2167aa


Vad som är grönt

Kontroll Resultat
Branch / repo-kontroll HEAD stämmer, trädet rent
pnpm typecheck 19/19 paket gröna
pnpm test --force 34/34 tasks, 328 tester gröna (kört 2× på färsk DB)
pnpm build @app/admin, @app/api, @app/worker byggda
brand-guard.sh OK varumärket lever endast i brand.config.json
Databas cibello_test färskt skapad med DROP DATABASE + CREATE DATABASE … OWNER app_user, migrerad + seedad med 254 recept/102 ingredienser/76 tabeller
Allergen-invariant @app/recipe-generation/test/allergen-invariant.test.ts grön varje seedat recept har allergens som matchar färsk derivering från canonical_ingredients
Safety canary Worker-testet grön; canary-kontraktet är {allergen_invariant_brott, overifierade_visade, food_safety_lint_avvisade_7d}
GDPR-radering DELETE /v1/me tömmer memory_items, taste_signals, feedback, ai_corrections, ai_training_bank, scan_jobs och tillhörande bilder (residual-test grön)
i18n-paritet ×12 Tester för locale-preferenser, minnesrendering och enhetsetiketter gröna
Consent-grindar Ingen personalisering/impact utan personalization=granted (recommendations + memory-impact tester gröna)
Integritetsspärrar Impact för användare A returnerar aldrig användare B:s data
Ops-kontraktet /ops/v1/summary har 14 toppnycklar + wall med 6 tiles; /ops/v1/health svarar {"ok":true,"app":"cibello"}; tester gröna

Ändringar i denna runda

  1. cleanup(memory): impact läser bara egen userPreferences-rad

    • computeMemoryImpact hämtar nu endast den anropande användarens fulla user_preferences-rad.
    • Andra hushållsmedlemmars personliga preferenser läcker inte in; endast de begränsande fälten (allergens, avoidIngredientIds, spiceLevelMax) läses för säkerhetsfiltrering.
  2. docs(status): uppdatera till nuläge (S1S6, 254 recept, ops+wall, EOC)

    • docs/STATUS.md speglar nu 19 paket, 328 tester, 254 recept, S1S6, ops + wall, EOC.
  3. docs(security): genomgång av hardening-checklist inför prod

    • infrastructure/security/hardening-checklist.md har kryssats av efter faktiskt läge; återstående gap listade (se nedan).
  4. ops(api): lägg till /ops/v1/health för EOC

    • Fanns inte i koden trots att EOC-panelen förväntas anropa den.
    • Endpointen är token-skyddad och svarar med det frysta kontraktet.

Hardening-gaps inför produktion ⚠️

Baserat på genomgång av infrastructure/security/hardening-checklist.md:

  • Server

    • Dedikerad Linux-användare <slug> utan sudo är inte provisionerad (/opt är tom).
    • Secrets i /opt/<slug>-platform/secrets/*.env är inte på plats.
    • Dockerfile.admin saknar USER-direktiv och kör som root api/worker har redan USER app.
    • Reverse proxy + TLS är inte uppsatt i denna miljö.
    • Brandvägg och automatiska säkerhetsuppdateringar är ej verifierade.
  • AWS

    • IAM-roll <slug>-app är inte provisionerad.
    • S3-bucket med block public access / SSE-S3 / lifecycle är inte provisionerad.
    • create-database.sql finns för begränsad DB-roll, men faktisk RDS-instans är inte provisionerad här.
    • Secrets Manager/SSM för produktionshemligheter är inte provisionerad.
  • GDPR

    • Personuppgiftsbiträdesavtal med AWS + AAMOS-drift saknas.

Jordnötssmör-beslutet 🥜

  • Nollcellen för jordnötssmör har fortfarande 0 recept i seed (kandidaterna i förra rundan var för enkla och underkändes).
  • Beslut: lämnat medvetet ofyllt i denna runda för att undvika bred skalning/generering nu.
  • Rekommendation: vid lansering eller strax innan, kör en riktad omkörning för satay, jordnötsnudlar, afrikansk jordnötsgryta etc. (≥3 ingredienser) genom samma verifieringspipelin + import som 254-setet.

Leverans

  • Git bundle: /mnt/c/Users/Public/cibello-63d83e0d7cebf12fce8573f54f828cd4dc2167aa.bundle
  • Storlek: 2.6M
  • git bundle verify: OK, complete history, sha1
  • HEAD: 63d83e0d7cebf12fce8573f54f828cd4dc2167aa

Sammanfattning

Kodbasen är funktionellt klar och alla automatiska grindar är gröna på färsk DB. Återstående arbete inför produktion är uteslutande infrastruktur/provisionering, avtal och den valfria jordnötssmör-cellen inga blockeras av kod.