/boot.
Appearance
- Set branding, copy tone, and install metadata from Dashboard -> Customize.
- Keep the public install snippet stable. Runtime behavior should change through tenant config, not by editing the script tag on every deploy.
Consent
always_opt_out(light notice plus opt-out) is the default launch mode.- Choose between
always_opt_in,always_opt_out, anddisclosure_onlyfrom Dashboard -> Privacy. - Restrictive modes require the same-request legal acknowledgment in the dashboard.
Voice
- Voice is optional per tenant.
- Touch-primary devices fall back to the bubble experience instead of the desktop cursor metaphor.
Feature flags
GP_KILLSWITCH=truemakes/bootreturn503, and the embed silently no-ops.GP_PRODUCTION_TENANTSgates which tenants are allowed to boot or chat in production rollout mode.
Observability
- Dashboard errors and route traces use
@sentry/nextjs@10.56.0withsendDefaultPii: false; browser and server events stay scrubbed before they leave the app. SENTRY_DSN_DASHBOARDfeeds the server and edge bundles;NEXT_PUBLIC_SENTRY_DSN_DASHBOARDfeeds the browser bundle.- Breadcrumbs stay on,
tracesSampleRatestays at0.1, and raw request bodies, visitor data, and prompt text are not captured by default. - To disable Sentry quickly, blank both DSNs and redeploy.
- Langfuse Cloud Hobby stays worker-side only for model traces, sampled replays, and eval plumbing. The dashboard does not emit browser-side Langfuse traces.
- Langfuse Cloud Hobby has a 50,000 units/month hard cap and 30-day retention, so watch worker usage before the trace pipe goes quiet.
- Langfuse sampling stays conservative and tenant-isolated, so operator traces never become a second copy of raw visitor data.
- AI Gateway logs, guardrail calls, and Promptfoo/eval traces stay worker-side and tenant-isolated; the dashboard only renders the redacted summaries surfaced by the worker API.