File size: 12,245 Bytes
064bfd6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 | # 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 build`
Builds the regular external binary at `./cli`.
- `bun run compile`
Builds the regular external binary at `./dist/cli`.
- `bun run build:dev`
Builds `./cli-dev` with a dev-stamped version and experimental GrowthBook key.
- `bun run build:dev:full`
Builds `./cli-dev` with the entire current "Working Experimental Features"
bundle from this document, minus `CHICAGO_MCP`. That flag still compiles,
but the external binary does not boot cleanly with it because startup
reaches the missing `@ant/computer-use-mcp` runtime package.
## Default Build Flags
- `VOICE_MODE`
This 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_SUMMARY`
Adds away-from-keyboard summary behavior in the REPL.
- `HISTORY_PICKER`
Enables the interactive prompt history picker.
- `HOOK_PROMPTS`
Passes the prompt/request text into hook execution flows.
- `KAIROS_BRIEF`
Enables brief-only transcript layout and BriefTool-oriented UX without the
full assistant stack.
- `KAIROS_CHANNELS`
Enables channel notices and channel callback plumbing around MCP/channel
messaging.
- `LODESTONE`
Enables deep-link / protocol-registration related flows and settings wiring.
- `MESSAGE_ACTIONS`
Enables message action entrypoints in the interactive UI.
- `NEW_INIT`
Enables the newer `/init` decision path.
- `QUICK_SEARCH`
Enables prompt quick-search behavior.
- `SHOT_STATS`
Enables additional shot-distribution stats views.
- `TOKEN_BUDGET`
Enables token budget tracking, prompt triggers, and token warning UI.
- `ULTRAPLAN`
Enables `/ultraplan`, prompt triggers, and exit-plan affordances.
- `ULTRATHINK`
Enables the extra thinking-depth mode switch.
- `VOICE_MODE`
Enables voice toggling, dictation keybindings, voice notices, and voice UI.
### Agent, Memory, and Planning Experiments
- `AGENT_MEMORY_SNAPSHOT`
Stores extra custom-agent memory snapshot state in the app.
- `AGENT_TRIGGERS`
Enables local cron/trigger tools and bundled trigger-related skills.
- `AGENT_TRIGGERS_REMOTE`
Enables the remote trigger tool path.
- `BUILTIN_EXPLORE_PLAN_AGENTS`
Enables built-in explore/plan agent presets.
- `CACHED_MICROCOMPACT`
Enables cached microcompact state through query and API flows.
- `COMPACTION_REMINDERS`
Enables reminder copy around compaction and attachment flows.
- `EXTRACT_MEMORIES`
Enables post-query memory extraction hooks.
- `PROMPT_CACHE_BREAK_DETECTION`
Enables cache-break detection around compaction/query/API flow.
- `TEAMMEM`
Enables team-memory files, watcher hooks, and related UI messages.
- `VERIFICATION_AGENT`
Enables verification-agent guidance in prompts and task/todo tooling.
### Tools, Permissions, and Remote Experiments
- `BASH_CLASSIFIER`
Enables classifier-assisted bash permission decisions.
- `BRIDGE_MODE`
Enables Remote Control / REPL bridge command and entitlement paths.
- `CCR_AUTO_CONNECT`
Enables the CCR auto-connect default path.
- `CCR_MIRROR`
Enables outbound-only CCR mirror sessions.
- `CCR_REMOTE_SETUP`
Enables the remote setup command path.
- `CHICAGO_MCP`
Enables computer-use MCP integration paths and wrapper loading.
- `CONNECTOR_TEXT`
Enables connector-text block handling in API/logging/UI paths.
- `MCP_RICH_OUTPUT`
Enables richer MCP UI rendering.
- `NATIVE_CLIPBOARD_IMAGE`
Enables the native macOS clipboard image fast path.
- `POWERSHELL_AUTO_MODE`
Enables PowerShell-specific auto-mode permission handling.
- `TREE_SITTER_BASH`
Enables the tree-sitter bash parser backend.
- `TREE_SITTER_BASH_SHADOW`
Enables the tree-sitter bash shadow rollout path.
- `UNATTENDED_RETRY`
Enables 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_BASELINE`
CLI ablation/baseline entrypoint toggle.
- `ALLOW_TEST_VERSIONS`
Allows test versions in native installer flows.
- `ANTI_DISTILLATION_CC`
Adds anti-distillation request metadata.
- `BREAK_CACHE_COMMAND`
Injects the break-cache command path.
- `COWORKER_TYPE_TELEMETRY`
Adds coworker-type telemetry fields.
- `DOWNLOAD_USER_SETTINGS`
Enables settings-sync pull paths.
- `DUMP_SYSTEM_PROMPT`
Enables the system-prompt dump path.
- `FILE_PERSISTENCE`
Enables file persistence plumbing.
- `HARD_FAIL`
Enables stricter failure/logging behavior.
- `IS_LIBC_GLIBC`
Forces glibc environment detection.
- `IS_LIBC_MUSL`
Forces musl environment detection.
- `NATIVE_CLIENT_ATTESTATION`
Adds native attestation marker text in the system header.
- `PERFETTO_TRACING`
Enables perfetto tracing hooks.
- `SKILL_IMPROVEMENT`
Enables skill-improvement hooks.
- `SKIP_DETECTION_WHEN_AUTOUPDATES_DISABLED`
Skips updater detection when auto-updates are disabled.
- `SLOW_OPERATION_LOGGING`
Enables slow-operation logging.
- `UPLOAD_USER_SETTINGS`
Enables 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_MODE`
Bundles 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 for `brew install sox`.
- `NATIVE_CLIPBOARD_IMAGE`
Bundles cleanly, but only accelerates macOS clipboard reads when
`image-processor-napi` is present.
- `BRIDGE_MODE`, `CCR_AUTO_CONNECT`, `CCR_MIRROR`, `CCR_REMOTE_SETUP`
Bundle cleanly, but are gated at runtime on claude.ai OAuth plus GrowthBook
entitlement checks.
- `KAIROS_BRIEF`, `KAIROS_CHANNELS`
Bundle cleanly, but they do not restore the full missing assistant stack.
They only expose the brief/channel-specific surfaces that still exist.
- `CHICAGO_MCP`
Bundles cleanly, but the runtime path still reaches externalized
`@ant/computer-use-*` packages. This is compile-safe, not fully
runtime-safe, in the external snapshot.
- `TEAMMEM`
Bundles 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_THEME`
Fails on missing `src/utils/systemThemeWatcher.js`. `systemTheme.ts` and the
theme provider already contain the cache/parsing logic, so the missing piece
looks like the OSC 11 watcher only.
- `BG_SESSIONS`
Fails on missing `src/cli/bg.js`. The CLI fast-path dispatch in
`src/entrypoints/cli.tsx` is already wired.
- `BUDDY`
Fails on missing `src/commands/buddy/index.js`. The buddy UI components and
prompt-input hooks already exist.
- `BUILDING_CLAUDE_APPS`
Fails on missing `src/claude-api/csharp/claude-api.md`. This looks like an
asset/document gap, not a missing runtime subsystem.
- `COMMIT_ATTRIBUTION`
Fails on missing `src/utils/attributionHooks.js`. Setup and cache-clear code
already call into that hook module.
- `FORK_SUBAGENT`
Fails on missing `src/commands/fork/index.js`. Command slot and message
rendering support are already present.
- `HISTORY_SNIP`
Fails on missing `src/commands/force-snip.js`. The surrounding SnipTool and
query/message comments are already there.
- `KAIROS_GITHUB_WEBHOOKS`
Fails on missing `src/tools/SubscribePRTool/SubscribePRTool.js`. The command
slot and some message handling already exist.
- `KAIROS_PUSH_NOTIFICATION`
Fails on missing `src/tools/PushNotificationTool/PushNotificationTool.js`.
The tool slot already exists in `src/tools.ts`.
- `MCP_SKILLS`
Fails on missing `src/skills/mcpSkills.js`. `mcpSkillBuilders.ts` already
exists specifically to support that missing registry layer.
- `MEMORY_SHAPE_TELEMETRY`
Fails on missing `src/memdir/memoryShapeTelemetry.js`. The hook call sites
are already in place in `sessionFileAccessHooks.ts`.
- `OVERFLOW_TEST_TOOL`
Fails on missing `src/tools/OverflowTestTool/OverflowTestTool.js`. This
appears isolated and test-only.
- `RUN_SKILL_GENERATOR`
Fails on missing `src/runSkillGenerator.js`. The bundled skill registration
path already expects it.
- `TEMPLATES`
Fails on missing `src/cli/handlers/templateJobs.js`. The CLI fast-path is
already wired in `src/entrypoints/cli.tsx`.
- `TORCH`
Fails on missing `src/commands/torch.js`. This looks like a single command
entry gap.
- `TRANSCRIPT_CLASSIFIER`
The first hard failure is missing
`src/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_RUNNER`
Missing `src/environment-runner/main.js`.
- `CONTEXT_COLLAPSE`
Missing `src/tools/CtxInspectTool/CtxInspectTool.js`.
- `COORDINATOR_MODE`
Missing `src/coordinator/workerAgent.js`.
- `DAEMON`
Missing `src/daemon/workerRegistry.js`.
- `DIRECT_CONNECT`
Missing `src/server/parseConnectUrl.js`.
- `EXPERIMENTAL_SKILL_SEARCH`
Missing `src/services/skillSearch/localSearch.js`.
- `MONITOR_TOOL`
Missing `src/tools/MonitorTool/MonitorTool.js`.
- `REACTIVE_COMPACT`
Missing `src/services/compact/reactiveCompact.js`.
- `REVIEW_ARTIFACT`
Missing `src/hunter.js`.
- `SELF_HOSTED_RUNNER`
Missing `src/self-hosted-runner/main.js`.
- `SSH_REMOTE`
Missing `src/ssh/createSSHSession.js`.
- `TERMINAL_PANEL`
Missing `src/tools/TerminalCaptureTool/TerminalCaptureTool.js`.
- `UDS_INBOX`
Missing `src/utils/udsMessaging.js`.
- `WEB_BROWSER_TOOL`
Missing `src/tools/WebBrowserTool/WebBrowserTool.js`.
- `WORKFLOW_SCRIPTS`
Fails first on `src/commands/workflows/index.js`, but there are more gaps:
`tasks.ts` already expects `LocalWorkflowTask`, and `tools.ts` expects a
real `WorkflowTool` implementation while only `WorkflowTool/constants.ts`
exists 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.
- `KAIROS`
Missing `src/assistant/index.js` and much of the assistant stack with it.
- `KAIROS_DREAM`
Missing `src/dream.js` and related dream-task behavior.
- `PROACTIVE`
Missing `src/proactive/index.js` and the proactive task/tool stack.
## Useful Entry Points
- Feature-aware build logic:
[scripts/build.ts](/Users/paolo/Repos/claude-code/scripts/build.ts)
- Feature-gated command imports:
[src/commands.ts](/Users/paolo/Repos/claude-code/src/commands.ts)
- Feature-gated tool imports:
[src/tools.ts](/Users/paolo/Repos/claude-code/src/tools.ts)
- Feature-gated task imports:
[src/tasks.ts](/Users/paolo/Repos/claude-code/src/tasks.ts)
- Feature-gated query behavior:
[src/query.ts](/Users/paolo/Repos/claude-code/src/query.ts)
- Feature-gated CLI entry paths:
[src/entrypoints/cli.tsx](/Users/paolo/Repos/claude-code/src/entrypoints/cli.tsx)
|