mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-15 12:55:51 +00:00
移除 TypeScript 代码和源码路径, 聚焦编译时求值的零运行时开销设计、三种使用模式 和死代码消除的打包体积优化。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
78 lines
3.7 KiB
Plaintext
78 lines
3.7 KiB
Plaintext
---
|
||
title: "Feature Flags"
|
||
description: "88+ 个构建时特性门控:理解 feature() 的编译时求值机制、死代码消除和 flags 的分类全景。"
|
||
keywords: ["feature flags", "特性标志", "构建时门控", "条件编译"]
|
||
---
|
||
|
||
## 核心机制
|
||
|
||
Claude Code 使用 Bun 打包器的编译时特性门控。代码中通过 `import { feature } from 'bun:bundle'` 导入 `feature()` 函数,在构建时被求值——返回 `true` 的代码保留,返回 `false` 的代码被**死代码消除(DCE)**彻底移除。
|
||
|
||
**设计洞察**:这不是运行时的 if-else——feature flag 在构建时就已经决定了哪些代码存在。外部构建中不存在的功能不是"被禁用",而是"从未编译进去"。这是一种零运行时开销的特性门控。
|
||
|
||
## 三种使用模式
|
||
|
||
### 1. 条件加载工具
|
||
|
||
当 flag 为 `false` 时,`require()` 调用被 DCE 移除,工具不会出现在可用工具列表中。不增加打包体积。
|
||
|
||
### 2. 条件注册命令
|
||
|
||
斜杠命令只在对应 flag 启用时注册。用户不会看到不可用的命令。
|
||
|
||
### 3. 条件启用 API 特性
|
||
|
||
控制发送给 API 的 beta header。未启用的功能不会向服务端声明能力。
|
||
|
||
## Flags 分类全景
|
||
|
||
<CardGroup cols={2}>
|
||
<Card title="Agent / 自动化" icon="robot">
|
||
**15 个 flags** — 控制 AI 的自主能力边界
|
||
|
||
`KAIROS` · `KAIROS_BRIEF` · `KAIROS_CHANNELS` · `KAIROS_DREAM` · `KAIROS_GITHUB_WEBHOOKS` · `KAIROS_PUSH_NOTIFICATION` · `PROACTIVE` · `COORDINATOR_MODE` · `FORK_SUBAGENT` · `AGENT_MEMORY_SNAPSHOT` · `AGENT_TRIGGERS` · `AGENT_TRIGGERS_REMOTE` · `VERIFICATION_AGENT` · `BUILTIN_EXPLORE_PLAN_AGENTS` · `MONITOR_TOOL`
|
||
</Card>
|
||
|
||
<Card title="基础设施" icon="server">
|
||
**10 个 flags** — 控制运行环境和连接方式
|
||
|
||
`DAEMON` · `BG_SESSIONS` · `BRIDGE_MODE` · `CCR_AUTO_CONNECT` · `CCR_MIRROR` · `CCR_REMOTE_SETUP` · `DIRECT_CONNECT` · `SSH_REMOTE` · `SELF_HOSTED_RUNNER` · `BYOC_ENVIRONMENT_RUNNER`
|
||
</Card>
|
||
|
||
<Card title="安全 / 分类" icon="shield-halved">
|
||
**6 个 flags** — 增强权限判断的智能性
|
||
|
||
`TRANSCRIPT_CLASSIFIER` · `BASH_CLASSIFIER` · `TREE_SITTER_BASH` · `TREE_SITTER_BASH_SHADOW` · `NATIVE_CLIENT_ATTESTATION` · `ABLATION_BASELINE`
|
||
</Card>
|
||
|
||
<Card title="工具 / 能力" icon="toolbox">
|
||
**10 个 flags** — 新增的 AI 能力
|
||
|
||
`WEB_BROWSER_TOOL` · `TERMINAL_PANEL` · `CONTEXT_COLLAPSE` · `HISTORY_SNIP` · `OVERFLOW_TEST_TOOL` · `WORKFLOW_SCRIPTS` · `VOICE_MODE` · `MCP_RICH_OUTPUT` · `MCP_SKILLS` · `UDS_INBOX`
|
||
</Card>
|
||
|
||
<Card title="UI / 体验" icon="palette">
|
||
**8 个 flags** — 界面和交互改进
|
||
|
||
`MESSAGE_ACTIONS` · `QUICK_SEARCH` · `HISTORY_PICKER` · `AUTO_THEME` · `STREAMLINED_OUTPUT` · `COMPACTION_REMINDERS` · `TEMPLATES` · `BUDDY`
|
||
</Card>
|
||
|
||
<Card title="平台 / 实验" icon="flask-vial">
|
||
**10+ 个 flags** — 实验性和平台级功能
|
||
|
||
`DUMP_SYSTEM_PROMPT` · `UPLOAD_USER_SETTINGS` · `DOWNLOAD_USER_SETTINGS` · `EXPERIMENTAL_SKILL_SEARCH` · `ULTRAPLAN` · `ULTRATHINK` · `TORCH` · `LODESTONE` · `PERFETTO_TRACING` · `SLOW_OPERATION_LOGGING` · `HARD_FAIL` · `ALLOW_TEST_VERSIONS`
|
||
</Card>
|
||
</CardGroup>
|
||
|
||
## 有趣的发现
|
||
|
||
- **KAIROS 家族**最庞大——6 个相关 flag 控制从核心功能到推送通知的方方面面
|
||
- **ABLATION_BASELINE** 是用于"科学对照实验"的——关闭 thinking、compaction、auto-memory 等高级功能,测量裸 API 调用的基线性能
|
||
- **BUDDY** 是一个 AI 吉祥物/精灵系统
|
||
- **ULTRAPLAN** 和 **ULTRATHINK** 暗示着比当前 extended thinking 更高级的推理模式
|
||
|
||
## 接下来
|
||
|
||
- **Ant 特权世界** — 理解 USER_TYPE 门控与 feature flags 的关系
|
||
- **Auto Mode** — 理解 TRANSCRIPT_CLASSIFIER flag 控制的自动权限分类
|