Zuletzt aktualisiert:

REPORT 07.06.2026 (Nacht-Session 06.→07.06.) — Einstieg für neue Sessions

Vorgänger: REPORT-2026-06-06.md · ADRs: app/ARCHITEKTUR.md 1–40 · Audit: UI-UX-AUDIT-2026-06-06.md · Benchmark: BENCHMARK-OPENROUTER-2026-06-06.md

§1 Was diese Session geliefert hat (alles live + committed)

UX-Audit → 4 Blöcke (ADR-33/34): Undo-Toast + ConfirmDialog + Submit-Locks + Pydantic-Validierung · display_name-Schicht (alle 1053 Artikel KI-poliert, polish_names.py) · Settings-Split (Verwaltung eingeklappt) · Frische-Refresh, clamp2, Non-Food-Gruppe · A11y (focus-visible, reduced-motion, Kontrast).

Feedback-Runde 1 (16 Punkte, ADR-35): Tagebuch komplett editierbar (Mahlzeit/Zeit/Quell-Badges) · Scan-Popup für unbekannte EANs · PVG-Packungsgewichte (--pack-Batch: 339 befüllt) + manueller Preis + store-Feld · Vorrats-Checkbox-Konzept (deplete_stock, Default AN; Gerichte anteilig) · Favoriten-Filter/Stern · Scroll-Restore + Sheet-Browser-Back · eGYM-Sync-Fix (Netpulse 403 = tote Session!) · Bon-Highlight bleibend · kJ→kcal.

OpenRouter (ADR-37, Go erteilt): Worker-LLM = google/gemini-3.1-flash-lite mit claude-CLI-Fallback (estimate E2E: 2,0 s statt 7–11 s; photo = echte Vision 3 s; insights bleibt CLI-agentic). Bild-KI = Nano Banana 2 via OR-Key: 🪄 am Gericht-Bild (generate/enhance), 512px-JPEG, Vorschau mit Verwerfen/Nochmal/Übernehmen.

HF-Kette (ADR-36/38/39 — die harten Nüsse): - Thermomix-Falle: öffentliche Rezeptseite redirected ALLE Varianten-IDs auf Thermomix → Rezepte NUR noch via GET /gw/api/recipes/{id} (Token); 19/19 Gerichte repariert (/api/admin/hf-repair, Audit /hf-audit = 0). - match_food war beidseitiges Substring („Wasser"→„Fruchtgummi Wassermelone") → exakt + Basics-Stopliste + Längen-Score. - Generika-Mapping: foods.hf_aliases (Stufe 0 im Matching) + dish_ingredients.hf_name; Zuordnen-Dialog v2 am Gericht: alle Zutaten (gemappte kompakt ✓, „ändern" lädt Gemini-Chips on-demand), Basics-Toggle, Kaskade Chips → lokale Suche → 🌐 OFF-Suche mit Anlage (Beispiel: HF „Kokosmilch" → Freshona, nie gekauft, per OFF angelegt). Einzelzutat-🔗 überall; Um-Zuordnung räumt Alias beim alten Artikel ab. - Artikel-Split (ADR-39): eine artId = mehrere Sorten (Fund #568 Pudding Vanille+Schoko) → ⚠️-Chip + Split-Dialog; Importer hat jetzt Namens-Präzedenz vor artId (sonst wachsen Splits wieder zusammen). Gesplittet: 568=Schoko, 1076=Vanille. Bon-Liste je Artikel aggregiert.

Gericht-Detail kann jetzt: Kosten je Zutat + Summe/Portion, Vorrats-Ampeln ●◐○ (auch im PVG), HF-Name → Artikel-Anzeige, Essen-Loggen mit Zutaten-Abzug.

§2 Hart erarbeitet (nicht neu entdecken!)

§3 Offene Punkte / Roadmap

  1. Jaqueline: Pocket-ID-User anlegen + Erstlogin + gemeinsame iPhone-Tour (Checklisten in den Chat-Berichten der Session).
  2. OFF-Write-Back (EANs/Makros zurückspenden) + USDA-FDC-Fallback-Stufe.
  3. 🤖 Woche füllen · Mehrfach-Scan (unverändert zurückgestellt).
  4. Klein: K-Classic Energy beim ersten Scan store=Kaufland geben · restliche „Sonstiges" (~21) · Spacing-Vollsweep (Tokens liegen) · ai-resolve/insights perspektivisch auch auf OR (agentic-Umbau nötig).
  5. Bild-KI: Batch „alle Gerichte ohne Foto" wäre ein 5-Zeiler im bestehenden Endpoint-Muster, wenn gewünscht.

§4 Betrieb unverändert

Cron-Worker laufen (ai-jobs 2-s-Loop, 07:45 Bons, 08:10 HF, 03:30 Backup). OPENROUTER_API_KEY jetzt auch in der Container-Env (compose). Neue Admin-Endpoints: hf-repair, hf-audit, backfill-diary-names. polish_names.py: --groups, --pack, Namen-Default; alle OR-beschleunigt.

§5 Tagessession 07.06. — Capacitor-Hülle + SideStore-MVP (LIVE) 📱

Der PWA-Kamera-Knoten ist durchschlagen: native Capacitor-Hülle läuft auf Dennis' iPhone, Live-Barcode-Scan funktioniert (erste echte Nutzung!). Spec/Plan: docs/superpowers/{specs,plans}/2026-06-07-capacitor-sidestore-mvp*.

Offen für die nächsten Sessions: 1. Jaqueline komplett: Pocket-ID-User + Erstlogin (§3.1) und SideStore auf ihrem iPhone (gleiche Apple-ID dfisch86@gmail.com, gleiche IPA, eigene Prozedur ~15 min, README in app/ios-shell). 2. 14.06. Refresh-Stichtag: Startet die App noch ohne manuellen Refresh? (= letztes MVP-Kriterium; erst danach 99-€-TestFlight-Frage.) 3. Spec-Checkliste in docs/superpowers/specs/ spiegelt den Live-Stand.