BLOCKING: recipe corpus not seeded in cloud per-user DBs — all recipe features return 0 results
OCR approval fails: receipt_ocr not valid for inventory_items.source constraint
bulk-add-by-name fails: source=shopping violates DB CHECK constraint
add_inventory_item returns null product_name in create response
feat: anonymous guest mode — grocery list without account (affiliate revenue)
Partial complete (2026-04-18): Per-session guest DB isolation is now live in cloud.
- Anonymous visitors get a
kiwi_guest_idUUID cookie (90-day, HttpOnly, Secure) - Each visitor gets an…
MEDIUM: POST /recipes/saved/collections returns 500 — missing member_count in INSERT RETURNING
MEDIUM: GET /recipes/saved/collections missing tier gate — free users can list paid feature
MEDIUM: community/posts response shape inconsistent — total field missing in normal path
MEDIUM: Build Your Own recipe templates render as blank cards in cloud UI
MEDIUM: Frontend JS errors on load — e.value.filter/find/map is not a function
HIGH: _auth_label() reports anonymous guest sessions as "authed"
HIGH: Receipt OCR background task uses store closed by FastAPI dependency
HIGH: export/json calls get_saved_recipes(1000, 0) with wrong argument types
HIGH: household create_invite opens Store but never closes it — connection leak
CRITICAL: Cloud JWT validation broken — DIRECTUS_JWT_SECRET missing base64 padding
CRITICAL: bulk-add-by-name always fails — source="shopping" violates DB CHECK constraint
Rival pair detection + special event when both rivals are caught
easter egg: BotW-style cooking animation on community meal post confirmation
feat: structured auth logging for log-based analytics
feat: cf_core.audio — shared PCM/audio utility module (cf-voice + Sparrow dedup)