← Index
Source: docs/history/2026-07-22-rabbit-history.md (auto-generated by scripts/generate-docs-html.mjs — edit the .md, not this file)

2026-07-22 — rabbit history

Source: ad-hoc request from jay (no formal design doc) — "per-menu config for which top-menu items show on cloud; local always shows all." Branch: claude/work-2026-07-22 (today's shared branch, based on yesterday's unmerged claude/work-2026-07-21 / PR #21).

Feature: per-menu cloud visibility flags (ALLOW_<CODE>)

First cut used a single comma-list (CLOUD_HIDDEN_MENUS); jay found that error-prone, so switched to one boolean env flag per menu.

Fix: forward ALLOW_* menu flags to Cloud Run on deploy

Caught during a deploy question: .env.local is gitignored (not in the image), and scripts/deploy.sh's gcloud run deploy --set-env-vars did not include any ALLOW_*. With default-HIDE semantics that means every menu would be hidden on cloud. deploy.sh already source .env.local, so the flags are in the shell env — added a loop that collects all ALLOW_* vars and appends them to --set-env-vars, so a menu's flag (including any added later) auto-forwards to Cloud Run. Accumulator renamed ALLOW_ENVMENU_ENV so it doesn't match ^ALLOW_ and self-reference. Verified: forwarding string is clean (all 9 flags), bash -n passes. Nav reads process.env.ALLOW_* at request time (dynamic render via auth()), so Cloud Run runtime env applies. Same branch claude/work-2026-07-22.

Feature: two-target deploy (test = all menus, prod = filtered)

jay maintains two Cloud Run deployments — test (the run.app URL, e.g. rabbit-179807446244.asia-northeast3.run.app) showing all menus, and production (rabbit.jaylabs.xyz) showing the ALLOW_*-filtered subset. Since one Cloud Run service can't serve two menu configs, they must be separate services.

Deploy: test server to Cloud Run

Ran ./scripts/deploy.sh test — deployed the working tree (today's menu work + yesterday's trading panel) to Cloud Run service rabbit, revision rabbit-00012-sdd, 100% traffic. URL: https://rabbit-179807446244.asia-northeast3.run.app (MENU_SHOW_ALL=true, APP_MODE=cloud). Secrets refreshed (v8), AUTH_URL set to the run.app domain. Verified live: home renders and the nav shows all 8 menus, confirming the test-server show-all path works on real Cloud Run. (Not a git commit — --source . deploys the working tree directly.)

UI: remove home "jaylabs" section + vivid Verex nav CTA

UI: restyle top-right nav cluster (avatar dropdown + segmented toggles + wrap fix)

The 로그인/사용자 cluster looked bad (esp. 로그아웃 wrapping vertically). Reworked it:

Feature: language toggle + language-aware content on project pages

Project detail pages (app/home/[slug]/page.tsx) had no Nav (so no language toggle) and rendered a single markdown body. Fixed both:

Feature: home (main) page content language-aware

The home page chrome switched with the toggle but its content (heading, tagline, project titles/descriptions, "Projects", read time) stayed English. Made it bilingual:

Content: remove Uniswap project, sort newest-first, add Prediction Market (Nostra)

(Note: an earlier recurring TradePanel.tsx "Unexpected token div" console error was confirmed stale — leftover in a long-lived browser tab from yesterday's mid-edit saves; a fresh tab shows none, and /market renders fine.)