|
Download FEATURES.md from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 12.2 kB
-
https://huggingface.co/chenbhao/codev/resolve/e91c8197c9918ff9e5df3140e8c36282bb30e9a2/FEATURES.md
- Command line
-
hf download hf://chenbhao/codev@e91c8197c9918ff9e5df3140e8c36282bb30e9a2/FEATURES.md
-
curl -L -o FEATURES.md https://huggingface.co/chenbhao/codev/resolve/e91c8197c9918ff9e5df3140e8c36282bb30e9a2/FEATURES.md
12.2 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 | |
| - 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) | |