Skip to content

Latest commit

 

History

History
317 lines (284 loc) · 12 KB

File metadata and controls

317 lines (284 loc) · 12 KB

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