Menu Rush personalization
Menu Rush uses real (or demo) food-truck menu labels so processing-speed scores reflect meaningful visual search — not generic placeholders.
Today (MVP)
-
User picks a demo truck (Taco Titan, BBQ Bus, Waffle Wheels) before playing.
-
Rounds use that truck’s item names + emoji fallback icons.
-
Session stores
truckIdlocally with the gameplay score — never uploaded as a cognitive profile. -
Code:
lib/services/menu_rush_assets_service.dart,lib/screens/menu_rush_screen.dart.
Roadmap: owner’s menu → game assets
| Step | Detail |
|---|---|
Menu source |
Owner-submitted menus (Gemini parse on Convex), Square sync ( |
Extract |
Structured |
Cartoonify |
AI generates simple sticker-style icon per item (generic cartoon food — no trademarked studio styles) |
Store |
Convex + R2: |
Cache |
Device cache keyed by |
Picker |
Followed / nearby trucks instead of demo list only |
Menu extraction (backend)
Owner/fan menu photos are parsed with Gemini in ftn-site (convex/lib/geminiMenuParse.ts). Requires GEMINI_API_KEY on the Convex deployment (not Vercel).
After unlock Bitwarden in the same terminal (desktop unlock is not enough for bw CLI):
pwsh -NoProfile -File "$env:USERPROFILE\unlock_bitwarden_gui.ps1" -PersistUserEnv
bw status
cd ftn-site/site-nextjs
./scripts/sync-google-cloud-env-from-bw.ps1 -PushConvex
-PushConvex targets production Convex (--prod, e.g. content-bird-939 from NEXT_PUBLIC_CONVEX_URL). No gcloud or Composio required — create the API key in AI Studio and store in Bitwarden (item name Gemini API key or custom field GEMINI_API_KEY / Gemini API key).
If the item is in the ryan@foodtrucknerdz.com org, run bw sync after unlock so the CLI sees workspace items.
Composio cannot unlock Bitwarden CLI or push Convex env vars.
API placeholder
Mobile will call GET /api/food-trucks/{truckId}/menu-rush-items when shipped (returns labels + optional cartoonUrl). Until then, demo trucks and generic fallback apply.
COPPA & guardrails
-
Game scores and
truckIdfor the session stay on device (secure storage via calm-access profile). -
Cartoon assets are public menu art, not user selfies.
-
No health or neurotype labels derived from Menu Rush performance.
-
See Ads & ad-free —
cognitive_guardrails.dart.