Vue SPA: demo mode support #46
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/peregrine#46
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The Streamlit app has full demo mode support (
DEMO_MODE=true): pre-seeded read-only data, LLM blocked, no auth required. The Vue SPA currently has none of this.At present,
sync_ui_cookie()inui_switcher.pyexplicitly blocks Vue navigation in demo mode (added 2026-03-24) so Caddy never routes demo visitors to the Vue container. The demo instance correctly stays on Streamlit.This ticket tracks adding first-class demo mode support to the Vue SPA so that
demo.circuitforge.tech/peregrinecan eventually serve the Vue experience.Required work
Backend
/api/demo-modeor similar endpoint (or embed in/api/session) that signalsdemo: trueto the SPAVITE_DEMO_MODE=trueas a build-time env var into the demo Docker image (compose.demo.yml)Vue SPA
Infra
sync_ui_cookie()demo guard inui_switcher.pyonce the Vue SPA handles demo mode nativelycompose.demo.ymlto build/pull the Vue SPA image with demo mode enabledprgn_ui=vuecookie on the demo subdomain routes to the demo Vue container (may need a separate nginx/vue container for demo vs. cloud)Out of scope
PEREGRINE_VUE_URLenv var and direct port access. No additional work needed.Notes
demo/config/anddemo/data/— the Vue SPA will need to read from the same Streamlit backend APIs (which already gate onDEMO_MODE) or have its own data fixtures.