Data Studio
Data Studio (chat-built live-data dashboards)
Read by src/data-studio/config.ts dsConfig(). Most are read at call time, so toggles take effect without a restart; MAX_PAGE_BYTES and MAX_VERSIONS are read at startup (page-write tool + store wiring), so changing them needs a restart. These values are also surfaced in Settings → Preferences under Data Studio so local operators can tune the dashboard runtime without editing the env file directly.
DATA_STUDIO_ENABLED
DATA_STUDIO_ENABLED
- What it controls: the whole Data Studio module. When off, every /v1/data-studio/* route, the /studio/p/* hosted pages, and the data proxy go dark (503 / 404) and the nav entry is inert.
- Consumed by: src/gateway/api.ts (routeDataStudio, handleDataStudioHost, handleDataStudioProxy).
- Default: true (enabled).
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PROXY_ENABLED
DATA_STUDIO_PROXY_ENABLED
- What it controls: the public data proxy that injects provider keys server-side and meters calls. When off the proxy returns 503 and dashboards show a "data paused" state; hosting + authoring still work.
- Consumed by: src/gateway/api.ts handleDataStudioProxy.
- Default: true (enabled).
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PUBLISH_ENABLED
DATA_STUDIO_PUBLISH_ENABLED
- What it controls: whether a dashboard can be published to a public shareable link. When off, publishing is refused (403) and only in-app private pages exist. Already-public pages keep resolving.
- Consumed by: src/gateway/api.ts routeDataStudio (publish route).
- Default: true (enabled).
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_ALLOW_PUBLIC_CUSTOM_SOURCES
DATA_STUDIO_ALLOW_PUBLIC_CUSTOM_SOURCES
- What it controls: whether published (public) pages may use a project's own custom external data sources. Stays OFF until full SSRF hardening ships; project-custom sources are not wired yet, so this is inert.
- Consumed by: src/data-studio/config.ts (reserved gate).
- Default: false.
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PKG_MANAGER
DATA_STUDIO_PKG_MANAGER
- What it controls: which package manager bootstraps the shared Vite/React toolchain that compiles dashboards. Auto-detected by default (pnpm, then npm, yarn, bun); set this to force one.
- Consumed by: src/app.ts (build runner), src/data-studio/build-runner.ts.
- Default: empty (auto-detect).
- Format: one of pnpm | npm | yarn | bun.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_BUILD_TIMEOUT_MS
DATA_STUDIO_BUILD_TIMEOUT_MS
- What it controls: the time limit for one dashboard compile (
vite build). A build that exceeds this is killed and reported as a build error. - Consumed by: src/data-studio/build-runner.ts (via dsConfig at boot).
- Default: 90000 (90s).
- Format: positive integer (milliseconds), minimum 1000.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_MAX_WATCHERS
DATA_STUDIO_MAX_WATCHERS
- What it controls: how many live-preview build watchers run at once (LRU; idle projects are evicted). A resource cap on long-lived build processes.
- Consumed by: src/data-studio/build-runner.ts (via dsConfig at boot).
- Default: 3.
- Format: positive integer.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_MAX_CONCURRENT_BUILDS
DATA_STUDIO_MAX_CONCURRENT_BUILDS
- What it controls: the maximum number of production dashboard builds that may run for different projects at once. Same-project work remains FIFO and identical builds are coalesced.
- Consumed by: src/data-studio/build-scheduler.ts via dsConfig at Gateway boot.
- Default: auto: clamp(floor((availableParallelism - 2) / 2), 1, 3).
- Format: positive integer; leave unset for automatic desktop sizing.
- Setting home: Not a user-facing setting
DATA_STUDIO_MAX_CONCURRENT_VERIFICATIONS
DATA_STUDIO_MAX_CONCURRENT_VERIFICATIONS
- What it controls: the number of headless browser verification runs allowed at once. It is clamped to the production-build limit and never above 2.
- Consumed by: src/data-studio/build-scheduler.ts via dsConfig at Gateway boot.
- Default: 1.
- Format: positive integer; effective range 1-2.
- Setting home: Not a user-facing setting
DATA_STUDIO_MIN_POLL_INTERVAL_SEC
DATA_STUDIO_MIN_POLL_INTERVAL_SEC
- What it controls: the floor on how often a dashboard may refresh a metered data source. Faster bindings are clamped to this and flagged so the user is told they refresh often.
- Consumed by: src/tools/data-studio.ts, src/data-studio/host.ts (the injected window.STUDIO config the data SDK reads).
- Default: 5.
- Format: positive integer (seconds).
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PROXY_RATE_PER_MIN
DATA_STUDIO_PROXY_RATE_PER_MIN
- What it controls: per-page-token proxy requests allowed per minute. The token is public (written into the page), so this caps abuse. Cache hits do not count.
- Consumed by: src/data-studio/config.ts ProxyRateLimiter.
- Default: 120.
- Format: positive integer.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PROXY_DAILY_CAP
DATA_STUDIO_PROXY_DAILY_CAP
- What it controls: per-page-token proxy requests allowed per day.
- Consumed by: src/data-studio/config.ts ProxyRateLimiter.
- Default: 5000.
- Format: positive integer.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PROXY_CACHE_TTL_SEC
DATA_STUDIO_PROXY_CACHE_TTL_SEC
- What it controls: how long the proxy serves an identical (source + path + params) read from memory before refetching upstream. Cuts provider load + quota for busy or widely-shared dashboards.
- Consumed by: src/data-studio/config.ts ProxyCache.
- Default: 5.
- Format: positive integer (seconds); 0 disables caching.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_VERIFY_PREVIEW
DATA_STUDIO_VERIFY_PREVIEW
- What it controls: whether Data Studio runs a headless browser preview verification automatically after a successful build at desktop and mobile sizes. When enabled, a dashboard is not considered done until build passes and the hosted preview loads without page errors, unhandled promise rejections, application console.error entries, chart or visual errors, page-level overflow, or fresh runtime-log errors.
- Consumed by: src/tools/data-studio.ts data_studio_build and data_studio_verify_preview.
- Default: true.
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_VERIFY_BASE_URL
DATA_STUDIO_VERIFY_BASE_URL
- What it controls: gateway origin used by headless preview verification. Leave empty to infer http://127.0.0.1:$\{GATEWAY_PORT:-8080\}.
- Consumed by: src/data-studio/config.ts dataStudioVerifyBaseUrl.
- Default: empty (infer local gateway URL).
- Format: absolute HTTP(S) origin, no path.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_VERIFY_TIMEOUT_MS
DATA_STUDIO_VERIFY_TIMEOUT_MS
- What it controls: Playwright navigation timeout for one preview verify run.
- Consumed by: src/data-studio/runtime-verify.ts.
- Default: 10000.
- Format: positive integer (milliseconds), minimum 1000.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_VERIFY_SETTLE_MS
DATA_STUDIO_VERIFY_SETTLE_MS
- What it controls: extra time after DOMContentLoaded for async app errors to surface before the preview verification verdict is returned.
- Consumed by: src/data-studio/runtime-verify.ts.
- Default: 1500.
- Format: integer milliseconds, 0 or greater.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_RUNTIME_FIX_MAX_ATTEMPTS
DATA_STUDIO_RUNTIME_FIX_MAX_ATTEMPTS
- What it controls: default number of build -> verify -> fix rounds the agent should attempt before returning remaining runtime errors.
- Consumed by: src/tools/data-studio.ts data_studio_verify_preview result.
- Default: 6.
- Format: positive integer; clamped by DATA_STUDIO_RUNTIME_FIX_ATTEMPT_HARD_CAP.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_RUNTIME_FIX_ATTEMPT_HARD_CAP
DATA_STUDIO_RUNTIME_FIX_ATTEMPT_HARD_CAP
- What it controls: operator hard cap for runtime-fix loops, preventing a bad prompt or app from running unbounded verification cycles.
- Consumed by: src/data-studio/config.ts dsConfig().
- Default: 10.
- Format: positive integer.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_POLISH_REVISION_BUDGET
DATA_STUDIO_POLISH_REVISION_BUDGET
- What it controls: how many further passes the agent makes on a dashboard that already passed verification, before the build result tells it to deliver. Counted per user message; a new request starts over.
- Consumed by: src/tools/data-studio.ts data_studio_build result.
- Default: 2.
- Format: integer, 0 or greater; 0 delivers on the first passing build.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_RUNTIME_LEARNING_ENABLED
DATA_STUDIO_RUNTIME_LEARNING_ENABLED
- What it controls: whether Data Studio records preview runtime failures and recoveries into the Data Studio runtime lesson store.
- Consumed by: src/data-studio/runtime-verify.ts and prompt assembly.
- Default: true.
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_RUNTIME_LESSON_INJECT_LIMIT
DATA_STUDIO_RUNTIME_LESSON_INJECT_LIMIT
- What it controls: max Data Studio runtime lessons injected into generation prompts. Active lessons outrank recent candidates.
- Consumed by: src/data-studio/project-store.ts prompt rendering.
- Default: 5.
- Format: integer, 0 or greater.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_RUNTIME_LESSON_PROMOTE_SUCCESSES
DATA_STUDIO_RUNTIME_LESSON_PROMOTE_SUCCESSES
- What it controls: number of successful recoveries for the same runtime fingerprint before a candidate lesson auto-promotes to active.
- Consumed by: src/data-studio/project-store.ts markRuntimeRecovered.
- Default: 2.
- Format: positive integer.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PREFERENCE_LEARNING_ENABLED
DATA_STUDIO_PREFERENCE_LEARNING_ENABLED
- What it controls: whether Data Studio observes user dashboard wording, component choices, visualization habits, and data habits for future prompts.
- Consumed by: src/app/plugins.ts and prompt assembly.
- Default: false.
- Format: 1/true/yes/on to enable, 0/false/no/off to disable.
- Setting home: Settings → Preferences (schema key)
DATA_STUDIO_PREFERENCE_INJECT_LIMIT
DATA_STUDIO_PREFERENCE_INJECT_LIMIT
- What it controls: max Data Studio preference memories injected before a new dashboard generation, ranked by relevance, recency, and active status.
- Consumed by: src/data-studio/project-store.ts prompt rendering.
- Default: 6.
- Format: integer, 0 or greater.
- Setting home: Settings → Preferences (schema key)
BEHAVIOR_MEMORY_ENABLED / BEHAVIOR_MEMORY_CAPTURE_ENGAGEMENT / BEHAVIOR_MEMORY_CAPTURE_FEATURE_USAGE / BEHAVIOR_MEMORY_CAPTURE_CONFIGURATION / BEHAVIOR_MEMORY_CAPTURE_AUTOMATION / BEHAVIOR_MEMORY_CAPTURE_STRATEGY / BEHAVIOR_MEMORY_CAPTURE_FINANCIAL_CONTEXT / BEHAVIOR_MEMORY_CAPTURE_TRANSACTION / BEHAVIOR_MEMORY_CAPTURE_CONVERSATION / BEHAVIOR_REFLECTION_ENABLED / BEHAVIOR_REFLECTION_INCLUDE_IN_MEMORY / BEHAVIOR_REFLECTION_CUSTOM_PROMPT / BEHAVIOR_MEMORY_RAW_RETENTION_DAYS / BEHAVIOR_MEMORY_MAX_MB / BEHAVIOR_MEMORY_BATCH_SIZE / BEHAVIOR_MEMORY_BATCH_KB / BEHAVIOR_MEMORY_FLUSH_MS / BEHAVIOR_MEMORY_QUEUE_MAX / BEHAVIOR_MEMORY_PRESSURE_FREE_MB / BEHAVIOR_MEMORY_CRITICAL_FREE_MB / BEHAVIOR_MEMORY_DISK_CHECK_MS
Behavior memory (local, coarse-grained product usage telemetry). Master switch is off by default. Sensitive capture classes remain off even after the master switch is enabled unless explicitly opted in.
- Setting home: Settings → Preferences (schema key)