Reference
Feature flags (P12-J)
FluxyChat evaluates [Cloudflare Flagship](https://developers.cloudflare.com/flagship/) flags via `env.FLAGS` when bound, with legacy env fallbacks for local dev
FluxyChat evaluates Cloudflare Flagship flags via env.FLAGS when bound, with legacy env fallbacks for local dev.
Flags
| Key | Gates | Env fallback |
|---|---|---|
voice_messages | POST /messages/voice | FEATURE_VOICE_MESSAGES / VOICE_MESSAGES_ENABLED (default on) |
reply_suggestions | POST /messages/suggest-replies | FEATURE_REPLY_SUGGESTIONS (default on) |
embed_widget | /embed.js, embed guest sessions | EMBED_WIDGET_ENABLED (default on) |
reconnect_backoff_fluxy | SDK reconnect curve (1s/8s) | FEATURE_RECONNECT_BACKOFF_FLUXY (default off) |
Dashboard console (PL-5)
Incomplete lab and preview routes are hidden from console nav unless enabled via env:
| Key | Gates | Env fallback |
|---|---|---|
dashboard_labs | “Labs & demos” nav group (stream, game, IoT, fleet showcase, …) | NEXT_PUBLIC_DASHBOARD_LABS=1 (default off) |
dashboard_preview | Preview dev tools (marketplace, web3, cross-channel, agent platform, …) | NEXT_PUBLIC_DASHBOARD_PREVIEW=1 (default off) |
Routes remain reachable by direct URL for internal QA; only sidebar / command palette entries are filtered.
# .env.local — show all experimental console pages
NEXT_PUBLIC_DASHBOARD_LABS=1
NEXT_PUBLIC_DASHBOARD_PREVIEW=1See apps/dashboard/lib/dashboard-feature-flags.ts.
API
GET /client/feature-flags — public; pass Authorization: Bearer … for user/project targeting.
{
"flags": {
"voice_messages": true,
"reply_suggestions": true,
"embed_widget": true,
"reconnect_backoff_fluxy": false
},
"flagship": true,
"reconnectBackoff": { "baseBackoffMs": 500, "maxBackoffMs": 20000 }
}SDK: client.getFeatureFlags() — applied automatically on room session connect for backoff.
Wrangler
[[flagship]]
binding = "FLAGS"
app_id = "<FLAGSHIP_APP_ID>"See apps/worker/.dev.vars.example for env-only fallbacks.
Message middleware (inbound pipeline)
FluxyChat runs every inbound chat message through a shared pipeline before it is stored or broadcast (WebSocket `type: "message"` and `POST /messages`).
Observability — OpenTelemetry (self-host)
FluxyChat ships lightweight telemetry hooks in the SDK and Worker. Export to console for local dev, or OTLP HTTP for self-hosted backends — no SaaS requ