diff --git a/docs/zh/architecture-deep-dive.md b/docs/zh/architecture-deep-dive.md
new file mode 100644
index 00000000..834d665d
--- /dev/null
+++ b/docs/zh/architecture-deep-dive.md
@@ -0,0 +1,831 @@
+# Claude Code v2.1.88 源码深度分析
+
+> 基于 2026-03-31 泄露的 TypeScript 源码,从产品设计和技术原理两个维度逐模块分析。
+> 源码来自 `sanbuphy/claude-code-source-code`,版本 v2.1.88。
+
+---
+
+## 目录
+
+1. [架构总览](#架构总览)
+2. [核心引擎](#核心引擎)
+ - [query/ — LLM 查询引擎](#query--llm-查询引擎)
+ - [tools/ — 工具系统](#tools--工具系统)
+ - [coordinator/ — 多 Agent 编排](#coordinator--多-agent-编排)
+ - [hooks/ — Hook 系统](#hooks--hook-系统)
+ - [state/ — 状态管理](#state--状态管理)
+ - [tasks/ — 任务系统](#tasks--任务系统)
+3. [UI 与交互](#ui-与交互)
+ - [ink/ — 自定义终端渲染引擎](#ink--自定义终端渲染引擎)
+ - [components/ — React 终端 UI 组件](#components--react-终端-ui-组件)
+ - [screens/ — 屏幕/页面](#screens--屏幕页面)
+ - [commands/ — 斜杠命令系统](#commands--斜杠命令系统)
+ - [keybindings/ — 快捷键系统](#keybindings--快捷键系统)
+ - [vim/ — Vim 模式](#vim--vim-模式)
+ - [outputStyles/ — 输出样式](#outputstyles--输出样式)
+ - [voice/ — 语音模式](#voice--语音模式)
+4. [服务与基础设施](#服务与基础设施)
+ - [services/api — API 通信层](#servicesapi--api-通信层)
+ - [services/mcp — MCP 协议客户端](#servicesmcp--mcp-协议客户端)
+ - [services/oauth — OAuth 认证](#servicesoauth--oauth-认证)
+ - [services/compact — 上下文压缩](#servicescompact--上下文压缩)
+ - [services/lsp — 语言服务器协议](#serviceslsp--语言服务器协议)
+ - [services/extractMemories — 自动记忆提取](#servicesextractmemories--自动记忆提取)
+ - [services/teamMemorySync — 团队记忆同步](#servicesteammemorysync--团队记忆同步)
+ - [services/SessionMemory — 会话记忆](#servicessessionmemory--会话记忆)
+ - [services/AgentSummary — 子 Agent 进度摘要](#servicesagentsummary--子-agent-进度摘要)
+ - [services/PromptSuggestion + speculation — 推测执行](#servicespromptsuggestion--speculation--推测执行)
+ - [services/policyLimits — 企业策略限制](#servicespolicylimits--企业策略限制)
+ - [services/compact 其他子系统](#servicescompact-其他子系统)
+ - [services/autoDream — 后台记忆整合](#servicesautodream--后台记忆整合)
+ - [services/MagicDocs — 自动文档维护](#servicesmagicdocs--自动文档维护)
+ - [services/tips — 提示调度](#servicestips--提示调度)
+ - [bridge/ — IDE 集成桥接](#bridge--ide-集成桥接)
+ - [server/ — Direct Connect 服务端](#server--direct-connect-服务端)
+ - [remote/ — 远程会话管理](#remote--远程会话管理)
+ - [plugins/ — 插件系统](#plugins--插件系统)
+ - [skills/ — 技能系统](#skills--技能系统)
+ - [schemas/ — Schema 定义](#schemas--schema-定义)
+ - [entrypoints/ — 入口点](#entrypoints--入口点)
+5. [辅助模块](#辅助模块)
+ - [bootstrap/ — 启动引导](#bootstrap--启动引导)
+ - [cli/ — CLI 框架](#cli--cli-框架)
+ - [constants/ — 常量与 Feature Flags](#constants--常量与-feature-flags)
+ - [context/ — React 上下文](#context--react-上下文)
+ - [types/ — 类型系统](#types--类型系统)
+ - [utils/ — 工具函数](#utils--工具函数)
+ - [migrations/ — 迁移系统](#migrations--迁移系统)
+ - [memdir/ — 记忆目录](#memdir--记忆目录)
+ - [native-ts/ — 原生 TS 实现](#native-ts--原生-ts-实现)
+ - [upstreamproxy/ — 上游代理](#upstreamproxy--上游代理)
+ - [buddy/ — 宠物伴侣系统](#buddy--宠物伴侣系统)
+ - [assistant/ — 远程会话历史](#assistant--远程会话历史)
+6. [系统提示词组装](#系统提示词组装)
+7. [Feature Flags 完整列表](#feature-flags-完整列表)
+8. [跨模块依赖图](#跨模块依赖图)
+9. [核心设计理念总结](#核心设计理念总结)
+
+---
+
+## 架构总览
+
+| 维度 | 数据 |
+|------|------|
+| 代码量 | ~1,900 文件,512K+ 行 TypeScript |
+| 运行时 | Bun |
+| 终端 UI | React + 深度定制 Ink |
+| CLI 框架 | Commander.js |
+| Schema | Zod v4 |
+| 布局引擎 | 自研 Yoga-layout TS 移植 |
+| Feature Flag | GrowthBook(89 个编译时开关) |
+| 认证 | OAuth 2.0 + JWT + macOS Keychain |
+| 遥测 | OpenTelemetry + gRPC + BigQuery |
+| 协议 | MCP SDK、LSP |
+
+**技术栈选择的核心逻辑**:Bun 提供快速启动和编译时特性门控(`feature()` → dead code elimination);React + Ink 让终端 UI 达到 Web 级组件化;Zod 统一输入验证和 SDK 类型生成。
+
+---
+
+## 核心引擎
+
+### query/ — LLM 查询引擎
+
+**产品设计意图**:解决"一次用户输入到完整任务完成"的全生命周期管理。用户说一句话,后面可能经历 LLM 响应 → 工具调用 → 再响应 → 再调用,循环数十次。query 模块是这个循环的心脏。
+
+**技术架构**:
+
+核心是 `query.ts` 里的 `queryLoop()` —— 一个 `while(true)` 的 AsyncGenerator 循环,每次迭代代表一次"LLM 请求 + 工具执行"。
+
+关键数据结构:
+- **`State`** — 每次循环迭代的可变状态包(messages、toolUseContext、autoCompactTracking 等)
+- **`QueryConfig`** (`config.ts`) — 入口快照一次的不可变配置(sessionId、feature gates)
+- **`QueryDeps`** (`deps.ts`) — 依赖注入容器(callModel、microcompact、autocompact、uuid)
+- **`BudgetTracker`** (`tokenBudget.ts`) — token 预算追踪器
+
+**单次迭代的完整流程**:
+
+```
+1. applyToolResultBudget → 压缩历史工具输出
+2. snipCompact → 裁剪超长历史
+3. microcompact → 微压缩
+4. contextCollapse → 上下文折叠
+5. autocompact → 自动压缩(token 超阈值时)
+6. callModel (streaming) → 调 Claude API
+7. 收集 assistantMessages 和 toolUseBlocks
+8. StreamingToolExecutor 并行执行工具
+9. handleStopHooks → 执行停止钩子
+10. 决定 continue/return
+```
+
+**Continue 状态机** —— 7+ 种 continue 原因:
+
+| 原因 | 含义 |
+|------|------|
+| `reactive_compact_retry` | prompt 太长,压缩后重试 |
+| `collapse_drain_retry` | context collapse 释放空间后重试 |
+| `max_output_tokens_recovery` | 输出截断,注入续写 prompt |
+| `max_output_tokens_escalate` | 从 8k 升级到 64k 重试 |
+| `stop_hook_blocking` | stop hook 报错,注入错误让模型修正 |
+| `token_budget_continuation` | 还有预算,nudge 让模型继续 |
+
+**有趣的设计决策**:
+- `feature('XXX')` 来自 `bun:bundle`,是编译时常量,用于 dead code elimination
+- Memory prefetch 在迭代开始时 fire-and-forget,在工具执行后 consume —— 利用模型流式输出的时间窗口做预加载
+- `QueryEngine` 类是 SDK/headless 路径的封装,拥有完整对话生命周期
+
+---
+
+### tools/ — 工具系统
+
+**产品设计意图**:将"Claude 能做什么"具象化为结构化的工具定义。每个工具 = 一个独立能力单元。
+
+**核心类型 `Tool`**(约 700 行,35+ 方法/属性):
+
+```typescript
+type Tool = {
+ name: string
+ inputSchema: ZodType // 输入验证
+ call() // 执行逻辑
+ checkPermissions() // 权限检查
+ description() // 给模型看的描述
+ prompt() // 工具的 system prompt 部分
+ isConcurrencySafe() // 能否并行执行
+ isReadOnly() // 是否只读
+ isDestructive() // 是否不可逆
+ shouldDefer? // 是否延迟加载 schema
+ renderToolUseMessage() // UI:工具调用
+ renderToolResultMessage() // UI:工具结果
+ // ... 更多
+}
+```
+
+**60+ 工具分类**:
+
+| 类别 | 工具 |
+|------|------|
+| 文件操作 | Read、Edit、Write、Glob、Grep、NotebookEdit |
+| 执行 | Bash、REPL(ant-only) |
+| 网络 | WebFetch、WebSearch |
+| Agent | AgentTool、SendMessage、TaskCreate/Update/Get/List/Stop |
+| 团队 | TeamCreate/Delete |
+| MCP | MCPTool(动态代理 MCP server 工具) |
+| 元工具 | ToolSearch(延迟加载 schema)、EnterPlanMode、ExitPlanMode、Skill |
+
+**工具执行编排**(`toolOrchestration.ts`):
+- `partitionToolCalls()` 将调用分批:连续的 `isConcurrencySafe=true` 工具并行,其他串行
+- 默认并发上限 10
+
+**StreamingToolExecutor**:在模型流式输出时就开始执行工具(不等流完),通过 TrackedTool 队列管理。
+
+**ToolSearch 延迟加载**:标记 `shouldDefer: true` 的工具初始 prompt 只发名称不发 schema,模型通过 ToolSearch 搜索获取完整 schema 后才能调用,节省 prompt token。
+
+---
+
+### coordinator/ — 多 Agent 编排
+
+**产品设计意图**:让 Claude Code 从"一个 agent"升级为"一个协调者 + N 个 worker 并行"。
+
+**核心设计**:只有 `coordinatorMode.ts` 一个文件(~370 行),**协调逻辑完全通过 system prompt 注入,不是硬编码的编排引擎**。
+
+```
+协调者模式 = 特殊 system prompt + 工具限制 + worker 上下文注入
+```
+
+`getCoordinatorSystemPrompt()` 返回 ~300 行详细 prompt,教模型如何做协调者:
+- 任务工作流:Research → Synthesis → Implementation → Verification
+- Worker prompt 写作规范(自包含、写清 "done" 标准)
+- 并发管理(只读任务并行,写任务按文件区域串行)
+- Continue vs Spawn 决策矩阵
+
+**设计哲学**:没有状态机、没有 DAG、没有 workflow engine —— 全靠 prompt engineering 驱动编排。Worker 结果通过 XML `` 注入为 user message。
+
+---
+
+### hooks/ — Hook 系统
+
+**产品设计意图**:让用户和插件能在生命周期关键点注入自定义逻辑。
+
+**两层架构**:
+
+**A. 生命周期 Hook**(20+ 种事件):
+
+| 事件 | 时机 |
+|------|------|
+| PreToolUse / PostToolUse | 工具执行前/后 |
+| Stop / SubagentStop | 模型停止响应 |
+| SessionStart / SessionEnd | 会话开始/结束 |
+| PreCompact / PostCompact | 压缩前/后 |
+| PermissionDenied / PermissionRequest | 权限被拒/请求 |
+| UserPromptSubmit | 用户提交输入 |
+| FileChanged / CwdChanged | 文件/目录变更 |
+| TaskCreated / TaskCompleted | 任务创建/完成 |
+
+Hook 是用户定义的 shell 命令,通过 spawn 执行,stdin 传入 JSON,stdout 返回 JSON。支持 matcher 模式匹配(如 `Bash(git *)`)和异步模式。
+
+**B. 权限决策系统**(`useCanUseTool`):
+
+决策链:规则匹配 → handler 分派(interactive/coordinator/swarmWorker)→ ML 分类器(auto-mode)→ PreToolUse hook
+
+**有趣细节**:
+- Bash 工具在权限请求前预先启动分类器检查(speculative),利用等待时间并行化
+- 多个决策来源(hook、分类器、UI)race,谁先到用谁
+
+---
+
+### state/ — 状态管理
+
+**产品设计意图**:在高度异步的系统中维护一致的全局状态。
+
+**Store** — 35 行的极简状态容器(`Object.is` 判等 + `Set` 通知),没有 middleware、没有 devtools。
+
+**AppState** — ~450 行的巨型状态类型,用 `DeepImmutable<>` 包裹,涵盖:权限规则、后台任务、MCP 连接、插件状态、推测执行、团队上下文、消息收件箱、Computer Use 状态、UI 状态等。
+
+**设计决策**:
+- 巨型单 store 而非拆分 —— 简化跨切面读取
+- 子 agent 的 `setAppState` 可设为 no-op(防污染),但 `setAppStateForTasks` 始终连接根 store
+- function updater 模式强制不可变更新
+
+---
+
+### tasks/ — 任务系统
+
+**产品设计意图**:让后台工作可见、可管理。
+
+**7 种任务类型**:
+
+| 类型 | 用途 |
+|------|------|
+| `LocalShellTask` | 后台 shell 命令 |
+| `LocalAgentTask` | 子 agent |
+| `RemoteAgentTask` | 远程 agent(CCR) |
+| `InProcessTeammateTask` | 进程内 teammate |
+| `LocalWorkflowTask` | 工作流任务 |
+| `MonitorMcpTask` | MCP 监控 |
+| `DreamTask` | 记忆整理(auto-dream) |
+
+**LocalMainSessionTask**:用户 Ctrl+B 后台化当前查询时创建,有独立 transcript 文件,实时更新 progress,完成后通过 `` 通知。
+
+---
+
+## UI 与交互
+
+### ink/ — 自定义终端渲染引擎
+
+**产品设计意图**:在终端实现类浏览器的渲染引擎,支持全屏、文本选择、鼠标交互、硬件滚动。
+
+**这不是对 Ink 库的简单使用,而是深度 fork/重写的终端渲染引擎。**
+
+**渲染管线**:
+
+```
+React 组件树 → reconciler.ts (React Reconciler) → dom.ts (自定义 DOM)
+ → Yoga 布局引擎 (layout/) → renderer.ts → render-node-to-output.ts
+ → screen.ts (字符级缓冲区) → log-update.ts (diff 算法)
+ → optimizer.ts (patch 合并) → terminal.ts (ANSI 写入)
+```
+
+**关键技术**:
+- **双缓冲帧系统** — frontFrame/backFrame,16ms/帧(60fps 目标)
+- **字符级 Screen 缓冲区** — 每 cell 存储字符、样式、宽度、超链接。`CharPool`/`StylePool`/`HyperlinkPool` 做字符串 interning,节省内存并加速 diff(整数比较替代字符串比较)
+- **自定义 DOM** — 7 种节点类型,每个带 Yoga 布局节点、scroll 状态、事件处理器
+- **DECSTBM 硬件滚动** — ScrollBox 只滚动时用终端硬件指令替代重绘,一条指令替代 O(rows×cols) 重写
+- **Alt Screen 模式** — 进入备用屏幕缓冲区,退出时恢复主屏幕(ctrl+o 看 transcript 时主对话不丢失的原因)
+- **文本选择系统** — 鼠标拖拽选择,支持 word/line 模式(双击/三击),处理滚动时选区超出视口的边界
+- **光标声明系统** — 组件可声明光标位置,用于 CJK IME 预编辑文本显示
+- **帧性能追踪** — 每帧记录各阶段耗时和 yoga 缓存命中次数
+
+---
+
+### components/ — React 终端 UI 组件
+
+**核心组件**:
+- **FullscreenLayout** — 三区布局:可滚动区(消息) + 底部固定区(prompt) + 模态层
+- **VirtualMessageList** — 虚拟滚动,只渲染可见区域
+- **PromptInput/** — 20+ 文件:输入框、footer、模式指示器、自动补全、语音指示器
+- **StructuredDiff** — 文件编辑 diff 可视化
+- **design-system/** — Dialog、Pane、Tabs、ProgressBar 等基础 UI 原语
+
+所有组件经过 **React Compiler** 编译,自动细粒度 memoization。
+
+---
+
+### screens/ — 屏幕/页面
+
+三个独立应用模式:
+
+1. **REPL.tsx** — 主交互界面(~700+ 行导入),管理对话流、权限、命令队列、成本追踪、语音集成、团队协作
+2. **Doctor.tsx** — 诊断屏幕,检查环境、keybinding、MCP、沙盒、版本(类似 `flutter doctor`)
+3. **ResumeConversation.tsx** — 会话恢复,支持跨项目恢复、worktree 状态恢复
+
+---
+
+### commands/ — 斜杠命令系统
+
+**四种命令来源**:bundled skills → builtin plugin skills → skill dir → workflows → plugin → COMMANDS()
+
+**命令类型**:`prompt`(注入对话)、`local`(本地执行)、`local-jsx`(渲染 React UI)
+
+**完整命令分类(~80+ 命令)**:
+
+| 类别 | 命令 |
+|------|------|
+| 会话管理 | /clear, /compact, /resume, /session, /rename, /export, /copy, /rewind, /tag |
+| 开发工具 | /commit, /diff, /review, /ultrareview, /security-review, /bughunter, /plan, /autofix-pr, /pr_comments, /issue |
+| 配置 | /config, /model, /theme, /color, /output-style, /vim, /keybindings, /permissions, /hooks, /sandbox-toggle, /effort, /fast |
+| MCP/插件 | /mcp, /plugin, /reload-plugins, /skills |
+| 认证 | /login, /logout, /oauth-refresh, /install-github-app, /install-slack-app |
+| 诊断 | /doctor, /help, /cost, /usage, /stats, /status, /context, /files |
+| 实验性 | /bridge, /voice, /buddy, /workflows, /proactive, /ultraplan |
+| 内部 | /good-claude, /btw, /stickers, /ant-trace, /debug-tool-call |
+
+**有趣细节**:
+- `/insights` 命令用 lazy shim(113KB 3200 行,实际调用才 import)
+- `getDynamicSkills()` 在文件操作过程中发现新 skill(匹配 `paths` glob 后才可见)
+
+---
+
+### keybindings/ — 快捷键系统
+
+完整可自定义快捷键系统,支持:
+- **17 个上下文**(Global/Chat/Autocomplete/Settings/Confirmation 等)
+- **Chord 序列**(如 `ctrl+x ctrl+k`,1 秒超时)
+- **热重载**(`~/.claude/keybindings.json` 文件监听)
+- **平台自适应**(Windows 无 VT mode 时降级绑定)
+- **保留键**(`ctrl+c`/`ctrl+d` 用时间双击检测,不可重绑)
+
+---
+
+### vim/ — Vim 模式
+
+教科书级有限状态机实现:
+- 4 个纯函数文件:`transitions.ts`(状态转移表)、`motions.ts`(光标移动)、`operators.ts`(delete/change/yank)、`textObjects.ts`(iw/aw/i"/a( 等)
+- 支持:操作符+motion 组合、计数前缀、文本对象、f/F/t/T、dot repeat、寄存器、缩进、替换
+- `MAX_VIM_COUNT = 10000` 防止 `99999dd`
+
+---
+
+### outputStyles/ — 输出样式
+
+极简实现(98 行):扫描 `.claude/output-styles/*.md`,解析 frontmatter,文件内容作为 system prompt 注入。`keep-coding-instructions` 标志控制是否保留默认编码规范。
+
+---
+
+### voice/ — 语音模式
+
+**Hold-to-talk 语音输入**,需 `VOICE_MODE` feature flag。
+
+**架构**:
+- WebSocket 连接 Anthropic `voice_stream` 端点(Deepgram 后端)
+- 二进制音频帧 + JSON 控制消息
+- Hold 检测:bare-char 绑定需 5 次连续快速按键才激活(避免误触),修饰键组合首次即可
+- 三级超时 finalize:正常 → 1.5s 无数据 → 5s 兜底
+- 支持 20+ 种语言,可从系统 locale 自动检测
+- Feature flag 做编译时 DCE:外部构建不含语音代码
+
+---
+
+## 服务与基础设施
+
+### services/api — API 通信层
+
+封装与 Anthropic API 的所有交互。`queryModelWithStreaming` 是核心函数。`withRetry` 提供指数退避重试。`errors.ts` 解析 `prompt_too_long` 错误中的 token gap 数值,用于 compact 的精确裁剪。
+
+---
+
+### services/mcp — MCP 协议客户端
+
+完整 MCP 客户端,支持 4 种传输层:Stdio、SSE、StreamableHTTP、WebSocket。
+
+**关键组件**:
+- `client.ts` — 核心,100+ imports
+- `MCPConnectionManager.tsx` — React Context,管理所有连接生命周期
+- `xaa.ts` — Cross-App Access,实现 RFC 8693 Token Exchange + RFC 7523 JWT Bearer Grant
+- 二进制 blob 自动持久化到磁盘、图片自动缩放下采样
+
+---
+
+### services/oauth — OAuth 认证
+
+处理 Claude.ai 和 Console 两套 OAuth 流程,支持 PKCE (S256)、本地回调监听。URL 参数 `code=true` 触发 Claude Max 升级提示——产品增长策略直接写在代码里。
+
+---
+
+### services/compact — 上下文压缩
+
+Claude Code 能处理超长会话的核心能力。**五层压缩体系**:
+
+| 层级 | 机制 | 说明 |
+|------|------|------|
+| 1. API Microcompact | 服务端 | `clear_tool_uses` 清除旧工具结果、`clear_thinking` 清除旧思考块 |
+| 2. Client Microcompact | 时间维度 | 只清除可压缩工具(Read/Bash/Grep/Glob)的输出 |
+| 3. Context Collapse | 上下文折叠 | 折叠冗余上下文 |
+| 4. Auto Compact | 全量压缩 | fork 子 agent 生成摘要替换原始消息 |
+| 5. Reactive Compact | PTL 重试 | 按 API round group 从头部丢弃 |
+
+**自动触发**:阈值 = 有效窗口 - 13000 buffer tokens。连续失败 3 次后 circuit breaker(BQ 数据:曾有 session 连续失败 3272 次浪费 250K API 调用/天)。
+
+**Post-compact 恢复**:最多恢复 5 个最近读过的文件(各限 5000 token),Skill 重注入有独立预算(25000 token,每个限 5000)。
+
+---
+
+### services/lsp — 语言服务器协议
+
+连接外部 LSP 服务器(TypeScript、Python 等),获取代码诊断信息。`passiveFeedback.ts` 将诊断转换为 attachment 被动注入上下文。
+
+---
+
+### services/extractMemories — 自动记忆提取
+
+每次对话结束(无工具调用的最终响应)时,fork 主对话(共享 prompt cache),以子 agent 身份运行,自动提取记忆写入 `~/.claude/projects//memory/`。
+
+工具限制:只能用 Read/Grep/Glob/只读Bash + Edit/Write(限 memory 目录)。
+
+---
+
+### services/teamMemorySync — 团队记忆同步
+
+按 git repo 隔离的组织级记忆同步。Pull: server wins per-key。Push: 增量上传(content hash diff)。删除不传播。上传前 `secretScanner.ts` 扫描敏感信息。
+
+---
+
+### services/SessionMemory — 会话记忆
+
+后台周期性运行的 markdown 文件,记录当前会话关键信息。forked subagent 模式,GrowthBook feature gate 控制。与 compact 协作:压缩时同步 last summarized message id。
+
+---
+
+### services/AgentSummary — 子 Agent 进度摘要
+
+coordinator 模式下,每 30 秒 fork 子 agent 生成 3-5 词进度摘要(如 "Reading runAgent.ts")。工具全部 deny 但不清空数组(否则 bust prompt cache)。
+
+---
+
+### services/PromptSuggestion + speculation — 推测执行
+
+用户还没输入时,预测下一步并提前在 overlay 文件系统上执行。最多 20 轮、100 条消息。写入工具在 overlay 目录执行,读工具访问真实文件系统。
+
+---
+
+### services/policyLimits — 企业策略限制
+
+从 API 获取组织级策略限制。**Fail-open 设计**:API 挂了不阻塞用户。ETag 缓存 + 每小时后台轮询。
+
+---
+
+### services/autoDream — 后台记忆整合
+
+类似"做梦"——累积足够会话后自动整合记忆。三级门控:① 时间门(≥24h)② 会话门(≥5 个 session)③ 锁(无其他进程在整合)。
+
+---
+
+### services/MagicDocs — 自动文档维护
+
+检测到 `# MAGIC DOC: [title]` 标记的 markdown 后,后台自动用对话内容更新。
+
+---
+
+### services/tips — 提示调度
+
+spinner 等待时显示使用提示。LRU 策略(选最久没显示的),支持 context-aware 过滤。
+
+---
+
+### bridge/ — IDE 集成桥接(Remote Control)
+
+让用户通过 `claude remote-control` 从 Claude.ai Web UI 远程操作本地 CLI。
+
+**两代架构并存**:
+1. **Env-based (v1)** — 通过 Environments API poll/dispatch
+2. **Env-less (v2)** — 直连 session-ingress 层(无环境 API 开销)
+
+默认 32 个 session 的 spawn 池。SIGTERM→SIGKILL 30 秒宽限期。JWT 自动刷新 + Trusted Device Token。
+
+---
+
+### server/ — Direct Connect 服务端
+
+允许外部客户端通过 WebSocket 直连 Claude Code 实例(不经 CCR 基础设施)。
+
+---
+
+### remote/ — 远程会话管理
+
+CCR 远程会话的客户端。WebSocket 订阅 + HTTP POST 发送。5 次重连,4001 (session not found) 有限重试(compaction 期间可能暂时找不到),4003 (unauthorized) 立即放弃。
+
+---
+
+### plugins/ — 插件系统
+
+内置插件定义层。ID 格式 `{name}@builtin`,可提供 skills + hooks + MCP servers。`bundled/index.ts` 当前为空(为将来迁移的脚手架)。
+
+---
+
+### skills/ — 技能系统
+
+**三种来源**:
+
+| 来源 | 说明 |
+|------|------|
+| Bundled Skills | 编译到二进制,所有用户可用 |
+| Disk Skills | `~/.claude/skills/` + `.claude/skills/` + plugin 目录 |
+| MCP Skills | MCP 服务器提供 |
+
+Bundled skills 支持 `files` 属性(首次调用时解压到磁盘),memoize Promise 确保并发安全。
+
+---
+
+### schemas/ — Schema 定义
+
+提取 hook 相关 Zod schema 到独立文件,打破循环依赖。四种 hook 类型:Command、Prompt、HTTP、Agent。25 种事件类型。
+
+---
+
+### entrypoints/ — 入口点
+
+**cli.tsx** — bootstrap 入口,按顺序检查快速路径:
+1. `--version` → 零 import 直接打印
+2. `--dump-system-prompt` → 输出渲染后的 system prompt(ant-only)
+3. `remote-control` → bridge 模式
+4. `daemon` → daemon 主进程
+5. `ps`/`logs`/`attach`/`kill` → 后台 session 管理
+
+**`ABLATION_BASELINE`**:内部实验用,一键关闭所有增强功能用于 A/B 对比。
+
+**mcp.ts** — Claude Code 自身作为 MCP 服务器运行(服务名 `claude/tengu`),暴露内置工具给外部客户端。
+
+---
+
+## 辅助模块
+
+### bootstrap/ — 启动引导
+
+**Import DAG 叶节点** —— 不允许导入其他业务模块(ESLint 规则 `bootstrap-isolation` 强制),所有模块反向依赖它。
+
+~80 个字段的 `State` 单例,包含会话标识、成本计量、模型控制、遥测实例。
+
+**Prompt cache 优化**:`afkModeHeaderLatched`、`fastModeHeaderLatched` 等全部采用 **sticky-on latch** 模式——一旦触发就保持,避免 beta header 翻转导致 prompt cache 失效。
+
+---
+
+### cli/ — CLI 框架
+
+| 组件 | 职责 |
+|------|------|
+| `print.ts` | `--print` 非交互式单次查询 |
+| `structuredIO.ts` | SDK/JSON 模式 I/O 桥接 |
+| `handlers/` | 子命令处理器 |
+| `transports/` | HybridTransport、SSE、WebSocket、CCR Client |
+
+---
+
+### constants/ — 常量与 Feature Flags
+
+**Beta Headers**(16 个):
+
+| 常量 | 用途 |
+|------|------|
+| `INTERLEAVED_THINKING_BETA_HEADER` | 交错思考 |
+| `CONTEXT_1M_BETA_HEADER` | 1M 上下文 |
+| `CONTEXT_MANAGEMENT_BETA_HEADER` | 上下文管理 |
+| `WEB_SEARCH_BETA_HEADER` | 网页搜索 |
+| `FAST_MODE_BETA_HEADER` | 快速模式 |
+| `TOKEN_EFFICIENT_TOOLS_BETA_HEADER` | 工具 token 压缩 |
+| `ADVISOR_BETA_HEADER` | Advisor 工具 |
+| ... | ... |
+
+完整 Feature Flags 见[下文](#feature-flags-完整列表)。
+
+**系统提示词组装**(`prompts.ts`)见[下文](#系统提示词组装)。
+
+---
+
+### context/ — React 上下文
+
+React Context Provider 集合:消息邮箱(Agent 间通信)、语音状态、帧率追踪、模态框、通知系统等。
+
+---
+
+### types/ — 类型系统
+
+**Permission Modes**:`acceptEdits` | `bypassPermissions` | `default` | `dontAsk` | `plan` | `auto` | `bubble`
+
+**Permission 决策三态**:`allow`(可携带 `updatedInput`)、`ask`(可携带 `pendingClassifierCheck`)、`deny`(必须含 `decisionReason`)
+
+**Yolo Classifier** 结果含两阶段:`stage1` (fast XML) 和 `stage2` (thinking),各有独立 usage/duration。
+
+---
+
+### utils/ — 工具函数
+
+最大模块(400+ 文件),按子目录组织:
+
+| 子目录 | 职责 |
+|--------|------|
+| `bash/` | Shell 命令解析(tree-sitter AST、heredoc) |
+| `model/` | 模型配置、别名、Bedrock/Vertex 适配 |
+| `permissions/` | 权限实现(YOLO 分类器、路径校验) |
+| `settings/` | 分层设置(user/project/local/flag/policy/MDM) |
+| `hooks/` | Hook 执行引擎 |
+| `plugins/` | 插件系统(marketplace、版本、block list) |
+| `swarm/` | Agent Swarm(tmux/iTerm/in-process 后端) |
+| `computerUse/` | Computer Use |
+| `secureStorage/` | macOS Keychain / fallback |
+| `telemetry/` | OTel、BigQuery、Perfetto |
+
+---
+
+### migrations/ — 迁移系统
+
+9 个幂等迁移函数,主要是模型名称迁移链:
+
+```
+Fennec → Opus → Opus[1m]
+Sonnet[1m] → Sonnet 4.5 → Sonnet 4.6
+```
+
+---
+
+### memdir/ — 记忆目录
+
+**四类记忆**:`user`(用户画像)、`feedback`(行为反馈)、`project`(项目状态)、`reference`(外部资源指针)
+
+**路径**:`~/.claude/projects/{sanitized-git-root}/memory/`
+
+**关键机制**:`findRelevantMemories()` 用 Sonnet 侧查询从 frontmatter 描述中选择最多 5 个相关记忆——不暴力加载全部,平衡上下文消耗和相关性。
+
+安全性:`autoMemoryDirectory` 不接受 `projectSettings` 来源(防恶意仓库指定 `~/.ssh`)。
+
+---
+
+### native-ts/ — 原生 TS 实现
+
+三个原本依赖 Rust/C++ NAPI 模块的纯 TS 重写:
+
+| 模块 | 替代 | 说明 |
+|------|------|------|
+| yoga-layout | Yoga (C++) | Flexbox 引擎 TS 移植,覆盖 Ink 使用的子集 |
+| color-diff | syntect (Rust) | highlight.js 替代,延迟加载(190+ 语言 ~50MB) |
+| file-index | nucleo (Rust) | fzf-v2 风格评分(边界加分、驼峰加分、连续加分),4ms 时间片异步索引构建 |
+
+---
+
+### upstreamproxy/ — 上游代理
+
+**专为 CCR 容器设计**。启动流程:读 session token → `prctl` 禁止 ptrace → 下载 CA 证书 → 启动 CONNECT→WebSocket relay → 删除 token 文件。
+
+Relay 实现:本地 TCP → HTTP CONNECT → protobuf → WebSocket tunnel(因 GKE L7 不支持原生 CONNECT)。
+
+**Fail-open**:任何步骤出错降级为禁用代理。
+
+---
+
+### buddy/ — 宠物伴侣系统
+
+彩蛋功能,需 `feature('BUDDY')` 启用。18 种物种、6 种眼睛、帽子、5 种稀有度。Mulberry32 伪随机生成。物种名用 `String.fromCharCode` 编码——因为有物种名与模型代号碰撞,构建流程会 grep 检查代号泄露。
+
+---
+
+### assistant/ — 远程会话历史
+
+远程会话历史拉取(CCR 场景),通过 OAuth 认证访问 `/v1/sessions/{id}/events`,分页获取。
+
+---
+
+## 系统提示词组装
+
+`getSystemPrompt()` 是核心入口,分静态/动态两段:
+
+**静态部分**(跨组织可缓存,`scope: 'global'`):
+
+| 顺序 | Section | 内容 |
+|------|---------|------|
+| 1 | Intro | 身份声明 + 安全指令 |
+| 2 | System | 系统行为(Markdown、权限模式、hook) |
+| 3 | DoingTasks | 编码规范(最小复杂度、安全) |
+| 4 | Actions | 可逆/不可逆操作风险控制 |
+| 5 | UsingYourTools | 工具使用指南(优先专用工具、并行) |
+| 6 | ToneAndStyle | 风格约束 |
+| 7 | OutputEfficiency | 输出效率 |
+
+**`SYSTEM_PROMPT_DYNAMIC_BOUNDARY`** — 静态/动态分隔标记
+
+**动态部分**(session-specific,registry 管理):
+
+| Section | 内容 |
+|---------|------|
+| session_guidance | Ask 工具、Agent 工具、Skill、验证代理 |
+| memory | MEMORY.md 内容 |
+| env_info | OS、shell、git、日期 |
+| language | 语言偏好 |
+| output_style | 自定义样式 |
+| mcp_instructions | MCP 服务器指令(**uncached**,因可热连接) |
+| token_budget | Token 预算提示 |
+| brief | Brief 模式(Kairos) |
+
+---
+
+## Feature Flags 完整列表
+
+共 **89 个**编译时开关,按领域分类:
+
+### 核心功能
+`BASH_CLASSIFIER`, `TRANSCRIPT_CLASSIFIER`, `TREE_SITTER_BASH`, `TOKEN_BUDGET`, `FORK_SUBAGENT`, `VERIFICATION_AGENT`, `BUILTIN_EXPLORE_PLAN_AGENTS`, `COORDINATOR_MODE`, `ULTRAPLAN`, `ULTRATHINK`
+
+### 上下文管理
+`CACHED_MICROCOMPACT`, `REACTIVE_COMPACT`, `CONTEXT_COLLAPSE`, `HISTORY_SNIP`, `COMPACTION_REMINDERS`
+
+### 记忆系统
+`EXTRACT_MEMORIES`, `TEAMMEM`, `MEMORY_SHAPE_TELEMETRY`, `AGENT_MEMORY_SNAPSHOT`
+
+### 自治/主动模式
+`PROACTIVE`, `KAIROS`, `KAIROS_BRIEF`, `KAIROS_CHANNELS`, `KAIROS_DREAM`, `KAIROS_GITHUB_WEBHOOKS`, `KAIROS_PUSH_NOTIFICATION`, `BG_SESSIONS`
+
+### 远程/桥接
+`BRIDGE_MODE`, `CCR_AUTO_CONNECT`, `CCR_MIRROR`, `CCR_REMOTE_SETUP`, `DIRECT_CONNECT`, `SSH_REMOTE`, `BYOC_ENVIRONMENT_RUNNER`, `SELF_HOSTED_RUNNER`
+
+### UI/交互
+`BUDDY`, `VOICE_MODE`, `AUTO_THEME`, `TERMINAL_PANEL`, `HISTORY_PICKER`, `MESSAGE_ACTIONS`, `QUICK_SEARCH`, `NATIVE_CLIPBOARD_IMAGE`, `STREAMLINED_OUTPUT`
+
+### 技能/插件
+`EXPERIMENTAL_SKILL_SEARCH`, `SKILL_IMPROVEMENT`, `WORKFLOW_SCRIPTS`, `MCP_SKILLS`, `MCP_RICH_OUTPUT`, `HOOK_PROMPTS`, `RUN_SKILL_GENERATOR`
+
+### 安全/合规
+`NATIVE_CLIENT_ATTESTATION`, `ANTI_DISTILLATION_CC`, `POWERSHELL_AUTO_MODE`
+
+### 遥测/内部
+`SLOW_OPERATION_LOGGING`, `ENHANCED_TELEMETRY_BETA`, `PERFETTO_TRACING`, `SHOT_STATS`, `DUMP_SYSTEM_PROMPT`, `ABLATION_BASELINE`, `PROMPT_CACHE_BREAK_DETECTION`
+
+### 平台/环境
+`DAEMON`, `NEW_INIT`, `LODESTONE`, `TORCH`, `CHICAGO_MCP`, `UDS_INBOX`, `AGENT_TRIGGERS`, `AGENT_TRIGGERS_REMOTE`
+
+### 设置同步
+`DOWNLOAD_USER_SETTINGS`, `UPLOAD_USER_SETTINGS`, `FILE_PERSISTENCE`
+
+### 其他
+`AWAY_SUMMARY`, `BUILDING_CLAUDE_APPS`, `WEB_BROWSER_TOOL`, `MONITOR_TOOL`, `REVIEW_ARTIFACT`, `TEMPLATES`, `HARD_FAIL`, `UNATTENDED_RETRY`, `SUMMARIZE_CONNECTOR_TEXT`
+
+---
+
+## 跨模块依赖图
+
+```
+用户输入 → QueryEngine.submitMessage()
+ ↓
+ query.ts queryLoop() ← BudgetTracker
+ ↓
+ ┌─── callModel (streaming) ──── services/api ──── Anthropic API
+ │ ↓
+ │ StreamingToolExecutor
+ │ ↓
+ │ toolOrchestration.ts ──── partitionToolCalls()
+ │ ↓
+ │ useCanUseTool ──── hooks/toolPermission ──── ML Classifier
+ │ ↓
+ │ Tool.call() ──── 60+ 具体工具实现
+ │ ↓
+ │ PostToolUse hooks
+ │
+ └── handleStopHooks()
+ ↓
+ extractMemories (fork) ──── memdir/
+ ↓
+ SessionMemory (fork) ──── services/SessionMemory
+ ↓
+ PromptSuggestion/speculation (fork)
+ ↓
+ AppState ──── state/store.ts
+ ↓
+ tasks/ ──── 7 种后台任务类型
+ ↓
+ UI: ink/ → components/ → screens/REPL.tsx
+
+entrypoints/cli.tsx
+ ├→ bootstrap/state.ts (DAG leaf)
+ ├→ init.ts → services/{analytics, oauth, policyLimits, lsp, mcp}
+ ├→ bridge/ → remote/ → server/
+ └→ main.tsx → screens/REPL.tsx
+```
+
+---
+
+## 核心设计理念总结
+
+1. **AsyncGenerator everywhere** — query、工具执行、hook 执行全部用 AsyncGenerator,统一流式处理和中断语义
+
+2. **编译时特性门控** — 89 个 `feature()` 开关 + Bun 的 dead code elimination,外部构建物理不含内部代码
+
+3. **协调不靠代码靠 prompt** — coordinator 模式没有编排引擎,全靠精心设计的 ~300 行 system prompt
+
+4. **fail-closed 默认** — 工具默认不并发安全、不只读、不安全,需要显式声明
+
+5. **五层压缩体系** — snip → microcompact → context collapse → autocompact → reactive compact,保证 context 不溢出
+
+6. **Forked Agent 模式** — compact、extractMemories、SessionMemory、AgentSummary、speculation 全部 fork 主对话共享 prompt cache
+
+7. **bootstrap isolation** — 全局状态是 import DAG 叶节点,ESLint 规则强制,杜绝循环依赖
+
+8. **Prompt cache 是一等公民** — 系统提示词静态/动态分段、beta header sticky latch、工具 schema 延迟加载,所有设计围绕减少 cache bust
+
+9. **性能是一等公民** — 字符串 interning、DECSTBM 硬件滚动、blit 优化、帧时间追踪、yoga 缓存命中追踪
+
+10. **React 渲染终端** — 不是"使用 Ink",而是自定义终端渲染引擎,保留 React reconciler 接口但重写了整个管线