12 KiB
Feature Flags Audit
Audit date: 2026-03-31
This repository currently references 88 feature('FLAG') compile-time flags.
I re-checked them by bundling the CLI once per flag on top of the current
external-build defines and externals. Result:
- 54 flags bundle cleanly in this snapshot
- 34 flags still fail to bundle
Important: "bundle cleanly" does not always mean "runtime-safe". Some flags
still depend on optional native modules, claude.ai OAuth, GrowthBook gates, or
externalized @ant/* packages.
Build Variants
bun run buildBuilds the regular external binary at./cli.bun run compileBuilds the regular external binary at./dist/cli.bun run build:devBuilds./cli-devwith a dev-stamped version and experimental GrowthBook key.bun run build:dev:fullBuilds./cli-devwith the entire current "Working Experimental Features" bundle from this document, minusCHICAGO_MCP. That flag still compiles, but the external binary does not boot cleanly with it because startup reaches the missing@ant/computer-use-mcpruntime package.
Default Build Flags
VOICE_MODEThis is now included in the default build pipeline, not just the dev build. It enables/voice, push-to-talk UI, voice notices, and dictation plumbing. Runtime still depends on claude.ai OAuth plus either the native audio module or a fallback recorder such as SoX.
Working Experimental Features
These are the user-facing or behavior-changing flags that currently bundle cleanly and should still be treated as experimental in this snapshot unless explicitly called out as default-on.
Interaction and UI Experiments
AWAY_SUMMARYAdds away-from-keyboard summary behavior in the REPL.HISTORY_PICKEREnables the interactive prompt history picker.HOOK_PROMPTSPasses the prompt/request text into hook execution flows.KAIROS_BRIEFEnables brief-only transcript layout and BriefTool-oriented UX without the full assistant stack.KAIROS_CHANNELSEnables channel notices and channel callback plumbing around MCP/channel messaging.LODESTONEEnables deep-link / protocol-registration related flows and settings wiring.MESSAGE_ACTIONSEnables message action entrypoints in the interactive UI.NEW_INITEnables the newer/initdecision path.QUICK_SEARCHEnables prompt quick-search behavior.SHOT_STATSEnables additional shot-distribution stats views.TOKEN_BUDGETEnables token budget tracking, prompt triggers, and token warning UI.ULTRAPLANEnables/ultraplan, prompt triggers, and exit-plan affordances.ULTRATHINKEnables the extra thinking-depth mode switch.VOICE_MODEEnables voice toggling, dictation keybindings, voice notices, and voice UI.
Agent, Memory, and Planning Experiments
AGENT_MEMORY_SNAPSHOTStores extra custom-agent memory snapshot state in the app.AGENT_TRIGGERSEnables local cron/trigger tools and bundled trigger-related skills.AGENT_TRIGGERS_REMOTEEnables the remote trigger tool path.BUILTIN_EXPLORE_PLAN_AGENTSEnables built-in explore/plan agent presets.CACHED_MICROCOMPACTEnables cached microcompact state through query and API flows.COMPACTION_REMINDERSEnables reminder copy around compaction and attachment flows.EXTRACT_MEMORIESEnables post-query memory extraction hooks.PROMPT_CACHE_BREAK_DETECTIONEnables cache-break detection around compaction/query/API flow.TEAMMEMEnables team-memory files, watcher hooks, and related UI messages.VERIFICATION_AGENTEnables verification-agent guidance in prompts and task/todo tooling.
Tools, Permissions, and Remote Experiments
BASH_CLASSIFIEREnables classifier-assisted bash permission decisions.BRIDGE_MODEEnables Remote Control / REPL bridge command and entitlement paths.CCR_AUTO_CONNECTEnables the CCR auto-connect default path.CCR_MIRROREnables outbound-only CCR mirror sessions.CCR_REMOTE_SETUPEnables the remote setup command path.CHICAGO_MCPEnables computer-use MCP integration paths and wrapper loading.CONNECTOR_TEXTEnables connector-text block handling in API/logging/UI paths.MCP_RICH_OUTPUTEnables richer MCP UI rendering.NATIVE_CLIPBOARD_IMAGEEnables the native macOS clipboard image fast path.POWERSHELL_AUTO_MODEEnables PowerShell-specific auto-mode permission handling.TREE_SITTER_BASHEnables the tree-sitter bash parser backend.TREE_SITTER_BASH_SHADOWEnables the tree-sitter bash shadow rollout path.UNATTENDED_RETRYEnables unattended retry behavior in API retry flows.
Bundle-Clean Support Flags
These also bundle cleanly, but they are mostly rollout, platform, telemetry, or plumbing toggles rather than user-facing experimental features.
ABLATION_BASELINECLI ablation/baseline entrypoint toggle.ALLOW_TEST_VERSIONSAllows test versions in native installer flows.ANTI_DISTILLATION_CCAdds anti-distillation request metadata.BREAK_CACHE_COMMANDInjects the break-cache command path.COWORKER_TYPE_TELEMETRYAdds coworker-type telemetry fields.DOWNLOAD_USER_SETTINGSEnables settings-sync pull paths.DUMP_SYSTEM_PROMPTEnables the system-prompt dump path.FILE_PERSISTENCEEnables file persistence plumbing.HARD_FAILEnables stricter failure/logging behavior.IS_LIBC_GLIBCForces glibc environment detection.IS_LIBC_MUSLForces musl environment detection.NATIVE_CLIENT_ATTESTATIONAdds native attestation marker text in the system header.PERFETTO_TRACINGEnables perfetto tracing hooks.SKILL_IMPROVEMENTEnables skill-improvement hooks.SKIP_DETECTION_WHEN_AUTOUPDATES_DISABLEDSkips updater detection when auto-updates are disabled.SLOW_OPERATION_LOGGINGEnables slow-operation logging.UPLOAD_USER_SETTINGSEnables settings-sync push paths.
Compile-Safe But Runtime-Caveated
These bundle today, but I would still treat them as experimental because they have meaningful runtime caveats:
VOICE_MODEBundles cleanly, but requires claude.ai OAuth and a local recording backend. The native audio module is optional now; on this machine the fallback path asks forbrew install sox.NATIVE_CLIPBOARD_IMAGEBundles cleanly, but only accelerates macOS clipboard reads whenimage-processor-napiis present.BRIDGE_MODE,CCR_AUTO_CONNECT,CCR_MIRROR,CCR_REMOTE_SETUPBundle cleanly, but are gated at runtime on claude.ai OAuth plus GrowthBook entitlement checks.KAIROS_BRIEF,KAIROS_CHANNELSBundle cleanly, but they do not restore the full missing assistant stack. They only expose the brief/channel-specific surfaces that still exist.CHICAGO_MCPBundles cleanly, but the runtime path still reaches externalized@ant/computer-use-*packages. This is compile-safe, not fully runtime-safe, in the external snapshot.TEAMMEMBundles cleanly, but only does useful work when team-memory config/files are actually enabled in the environment.
Broken Flags With Easy Reconstruction Paths
These are the failed flags where the current blocker looks small enough that a focused reconstruction pass could probably restore them without rebuilding an entire subsystem.
AUTO_THEMEFails on missingsrc/utils/systemThemeWatcher.js.systemTheme.tsand the theme provider already contain the cache/parsing logic, so the missing piece looks like the OSC 11 watcher only.BG_SESSIONSFails on missingsrc/cli/bg.js. The CLI fast-path dispatch insrc/entrypoints/cli.tsxis already wired.BUDDYFails on missingsrc/commands/buddy/index.js. The buddy UI components and prompt-input hooks already exist.BUILDING_CLAUDE_APPSFails on missingsrc/claude-api/csharp/claude-api.md. This looks like an asset/document gap, not a missing runtime subsystem.COMMIT_ATTRIBUTIONFails on missingsrc/utils/attributionHooks.js. Setup and cache-clear code already call into that hook module.FORK_SUBAGENTFails on missingsrc/commands/fork/index.js. Command slot and message rendering support are already present.HISTORY_SNIPFails on missingsrc/commands/force-snip.js. The surrounding SnipTool and query/message comments are already there.KAIROS_GITHUB_WEBHOOKSFails on missingsrc/tools/SubscribePRTool/SubscribePRTool.js. The command slot and some message handling already exist.KAIROS_PUSH_NOTIFICATIONFails on missingsrc/tools/PushNotificationTool/PushNotificationTool.js. The tool slot already exists insrc/tools.ts.MCP_SKILLSFails on missingsrc/skills/mcpSkills.js.mcpSkillBuilders.tsalready exists specifically to support that missing registry layer.MEMORY_SHAPE_TELEMETRYFails on missingsrc/memdir/memoryShapeTelemetry.js. The hook call sites are already in place insessionFileAccessHooks.ts.OVERFLOW_TEST_TOOLFails on missingsrc/tools/OverflowTestTool/OverflowTestTool.js. This appears isolated and test-only.RUN_SKILL_GENERATORFails on missingsrc/runSkillGenerator.js. The bundled skill registration path already expects it.TEMPLATESFails on missingsrc/cli/handlers/templateJobs.js. The CLI fast-path is already wired insrc/entrypoints/cli.tsx.TORCHFails on missingsrc/commands/torch.js. This looks like a single command entry gap.TRANSCRIPT_CLASSIFIERThe first hard failure is missingsrc/utils/permissions/yolo-classifier-prompts/auto_mode_system_prompt.txt. The classifier engine, parser, and settings plumbing already exist, so the missing prompt/assets are likely the first reconstruction target.
Broken Flags With Partial Wiring But Medium-Sized Gaps
These do have meaningful surrounding code, but the missing piece is larger than a single wrapper or asset.
BYOC_ENVIRONMENT_RUNNERMissingsrc/environment-runner/main.js.CONTEXT_COLLAPSEMissingsrc/tools/CtxInspectTool/CtxInspectTool.js.COORDINATOR_MODEMissingsrc/coordinator/workerAgent.js.DAEMONMissingsrc/daemon/workerRegistry.js.DIRECT_CONNECTMissingsrc/server/parseConnectUrl.js.EXPERIMENTAL_SKILL_SEARCHMissingsrc/services/skillSearch/localSearch.js.MONITOR_TOOLMissingsrc/tools/MonitorTool/MonitorTool.js.REACTIVE_COMPACTMissingsrc/services/compact/reactiveCompact.js.REVIEW_ARTIFACTMissingsrc/hunter.js.SELF_HOSTED_RUNNERMissingsrc/self-hosted-runner/main.js.SSH_REMOTEMissingsrc/ssh/createSSHSession.js.TERMINAL_PANELMissingsrc/tools/TerminalCaptureTool/TerminalCaptureTool.js.UDS_INBOXMissingsrc/utils/udsMessaging.js.WEB_BROWSER_TOOLMissingsrc/tools/WebBrowserTool/WebBrowserTool.js.WORKFLOW_SCRIPTSFails first onsrc/commands/workflows/index.js, but there are more gaps:tasks.tsalready expectsLocalWorkflowTask, andtools.tsexpects a realWorkflowToolimplementation while onlyWorkflowTool/constants.tsexists in this snapshot.
Broken Flags With Large Missing Subsystems
These are the ones that still look expensive to restore because the first missing import is only the visible edge of a broader absent subsystem.
KAIROSMissingsrc/assistant/index.jsand much of the assistant stack with it.KAIROS_DREAMMissingsrc/dream.jsand related dream-task behavior.PROACTIVEMissingsrc/proactive/index.jsand the proactive task/tool stack.
Useful Entry Points
- Feature-aware build logic: scripts/build.ts
- Feature-gated command imports: src/commands.ts
- Feature-gated tool imports: src/tools.ts
- Feature-gated task imports: src/tasks.ts
- Feature-gated query behavior: src/query.ts
- Feature-gated CLI entry paths: src/entrypoints/cli.tsx