Migrate shared_db (sellers/market_comps) from SQLite to Postgres
Wire Peregrine to cf-orch coordinator (CF_ORCH_URL) for stress test readiness
Wire Peregrine to cf-orch coordinator (CF_ORCH_URL) for stress test readiness
Wire Snipe to cf-orch coordinator (CF_ORCH_URL) for stress test readiness
feat: YAMNet acoustic event classifier — queue/environ/speaker type
Expiry system deep-dive: secondary use windows and ingredient-specific post-date behavior
All work shipped in commits 8fd77bd, b2c546e, e7ba305 on main:
- Secondary-use window hints wired into recipe engine + API + frontend
- Recipe browser
_allunfiltered option added - Full…
Expiry system deep-dive: secondary use windows and ingredient-specific post-date behavior
Easter egg: BotW-style cooking animation for secondary-state items
UX: Review and expand alt-use ingredient definitions (secondary window coverage)
Recipe browser shows confusing zero-count categories with no explanation
nginx strips port from 307 redirect Location header on no-trailing-slash requests
MEDIUM: Frontend JS errors on load — e.value.filter/find/map is not a function
add_inventory_item returns null product_name in create response
CRITICAL: Cloud JWT validation broken — DIRECTUS_JWT_SECRET missing base64 padding