Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

附录 E:版本演化记录

本书核心分析基于 Claude Code v2.1.88(含完整 source map,可还原 4,756 个源文件)。本附录记录后续版本的关键变化及其对各章节的影响。

导航提示:每条变化链接到对应章节的版本演化小节,点击章节编号可跳转。

由于 v2.1.89 起 Anthropic 移除了 source map 分发,以下分析基于 bundle 字符串信号对比 + v2.1.88 源码辅助推断,深度有限。

v2.1.88 → v2.1.91

概览:cli.js +115KB | Tengu 事件 +39/-6 | 环境变量 +8/-3 | Source Map 移除

高影响变化

变化影响章节详情
Tree-sitter WASM 移除ch16 权限系统Bash 安全从 AST 分析退回 regex/shell-quote;因 CC-643 性能问题
"auto" 权限模式正式化ch16-ch17 权限/YOLOSDK 公开 API 新增 auto mode
冷压缩 + 对话框 + 快速回填熔断ch11 微压缩新增延迟压缩策略和用户确认 UI

中影响变化

变化影响章节详情
staleReadFileStateHintch09-ch10 上下文管理工具执行期间文件 mtime 变化检测
Ultraplan 远程多代理规划ch20 Agent 集群CCR 远程会话 + Opus 4.6 + 30min 超时
子代理增强ch20-ch21 多代理/Effort回合限制、精简 schema、成本引导

低影响变化

变化影响章节
hook_output_persisted + pre_tool_hook_deferredch19 Hooks
memory_toggled + extract_memories_skipped_no_prosech12 Token 预算
rate_limit_lever_hintch06 提示词行为引导
bridge_client_presence_enabledch22 技能系统
+8/-3 环境变量附录 B

v2.1.91 新功能详解

以下三个功能在 v2.1.88 源码中完全不存在,是 v2.1.91 新增的。分析基于 v2.1.91 bundle 逆向。

1. Powerup Lessons — 交互式功能教程系统

事件tengu_powerup_lesson_openedtengu_powerup_lesson_completed

v2.1.88 状态:不存在。restored-src/src/ 中无任何 powerup 或 lesson 相关代码。

v2.1.91 逆向发现

Powerup Lessons 是一个内置的交互式教程系统,包含 10 个课程模块,教用户如何使用 Claude Code 的核心功能。从 bundle 中提取到完整的课程注册表:

课程 ID标题涉及功能
at-mentionsTalk to your codebase@ 文件引用、行号引用
modesSteer with modesShift+Tab 模式切换、plan、auto
undoUndo anything/rewind、Esc-Esc
backgroundRun in the background后台任务、/tasks
memoryTeach Claude your rulesCLAUDE.md、/memory/init
mcpExtend with toolsMCP 服务器、/mcp
automateAutomate your workflowSkills、Hooks、/hooks
subagentsMultiply yourself子代理、/agents--worktree
cross-deviceCode from anywhere/remote-control/teleport
model-dialDial the model/model/effort/fast

技术实现(从 bundle 逆向):

// 课程打开事件
logEvent("tengu_powerup_lesson_opened", {
  lesson_id: lesson.id,           // 课程 ID
  was_already_unlocked: unlocked.has(lesson.id),  // 是否已解锁
  unlocked_count: unlocked.size   // 已解锁总数
})

// 课程完成事件
logEvent("tengu_powerup_lesson_completed", {
  lesson_id: id,
  unlocked_count: newUnlocked.size,
  all_unlocked: newUnlocked.size === lessons.length  // 是否全部完成
})

解锁状态通过 powerupsUnlocked 持久化到用户配置中。每个课程包含标题、标语(tagline)、富文本内容(含终端动画演示),UI 使用 ✓/○ 标记完成状态,全部完成后触发"彩蛋"动画。

本书关联:Powerup Lessons 的 10 个课程模块几乎覆盖了本书第二到六篇的所有核心主题——从权限模式(ch16-17)到子代理(ch20)到 MCP(ch22)。它是 Anthropic 官方对"用户应该掌握哪些功能"的优先级排序,可作为本书"用户能做什么"小节的参考。


2. Write Append Mode — 文件追加写入

事件tengu_write_append_used

v2.1.88 状态:不存在。v2.1.88 的 Write 工具只支持 overwrite(完整覆盖)模式。

v2.1.91 逆向发现

Write 工具的 inputSchema 新增了 mode 参数:

// v2.1.91 bundle 逆向
inputSchema: {
  file_path: string,
  content: string,
  mode: "overwrite" | "append"  // v2.1.91 新增
}

mode 参数描述(从 bundle 提取):

Write mode. 'overwrite' (default) replaces the file. Use 'append' to add content to the end of an existing file instead of rewriting the full content — e.g. for logs, accumulating output, or adding entries to a list.

Feature Gate:append mode 受 GrowthBook flag tengu_maple_forge_w8k 控制。当 flag 关闭时,schema 中的 mode 字段被 .omit() 移除,模型看不到该参数。

// v2.1.91 bundle 逆向
function getWriteSchema() {
  return getFeatureValue("tengu_maple_forge_w8k", false)
    ? fullSchema()           // 包含 mode 参数
    : fullSchema().omit({ mode: true })  // 隐藏 mode 参数
}

本书关联:影响 ch02(工具系统概览)和 ch08(工具提示词)。v2.1.88 中 Write 工具的提示词明确说"This tool will overwrite the existing file"——v2.1.91 的 append 模式改变了这个约束,模型现在可以选择追加而非覆盖。


3. Message Rating — 消息评分反馈

事件tengu_message_rated

v2.1.88 状态:不存在。v2.1.88 有 tengu_feedback_survey_* 系列事件(会话级反馈),但没有消息级别的评分。

v2.1.91 逆向发现

Message Rating 是一个消息级别的用户反馈机制,允许用户对单条 Claude 回复进行评分。从 bundle 逆向提取到的实现:

// v2.1.91 bundle 逆向
function rateMessage(messageUuid, sentiment) {
  const wasAlreadyRated = ratings.get(messageUuid) === sentiment
  // 再次点击同一评分 → 清除(toggle 行为)
  if (wasAlreadyRated) {
    ratings.delete(messageUuid)
  } else {
    ratings.set(messageUuid, sentiment)
  }

  logEvent("tengu_message_rated", {
    message_uuid: messageUuid,  // 消息唯一 ID
    sentiment: sentiment,       // 评分方向(如 thumbs_up/thumbs_down)
    cleared: wasAlreadyRated    // 是否为取消评分
  })

  // 评分后显示感谢通知
  if (!wasAlreadyRated) {
    addNotification({
      key: "message-rated",
      text: "thanks for improving claude!",
      color: "success",
      priority: "immediate"
    })
  }
}

UI 机制

  • 通过 React Context(MessageRatingProvider)在消息列表中注入评分功能
  • 评分状态以 Map<messageUuid, sentiment> 存储在内存中
  • 支持 toggle——再次点击同一评分会清除
  • 评分后弹出绿色通知"thanks for improving claude!"

本书关联:与 ch29(可观测性工程)相关。v2.1.88 的反馈系统是会话级的(tengu_feedback_survey_*),v2.1.91 新增消息级评分,将反馈粒度从"整个会话好不好"细化到"这条回复好不好"。这为 Anthropic 的 RLHF(人类反馈强化学习)提供了更细粒度的训练信号。


实验代码名事件

以下带随机代码名的事件属于 A/B 测试,用途未公开:

事件备注
tengu_garnet_plover未知实验
tengu_gleaming_fair未知实验
tengu_gypsum_kite未知实验
tengu_slate_finch未知实验
tengu_slate_reef未知实验
tengu_willow_prism未知实验
tengu_maple_forge_w与 Write Append mode 的 feature gate tengu_maple_forge_w8k 相关
tengu_lean_sub_pf可能与子代理精简 schema 相关
tengu_sub_nomdrep_q可能与子代理行为相关
tengu_noreread_q可能与 tengu_file_read_reread 文件重读跳过相关

v2.1.91 → v2.1.92(增量变化)

基于 v2.1.91 与 v2.1.92 bundle 信号差异提取。完整对比报告见 docs/version-diffs/v2.1.88-vs-v2.1.92.md

概览

指标v2.1.91v2.1.92增量
cli.js 大小12.5MB12.6MB+59KB
Tengu 事件860857+19 / -21(净 -3)
环境变量183186+3
seccomp 二进制arm64 + x64新增

关键新增

子系统新增信号影响章节分析
工具advisor_command, advisor_dialog_shown + 10 个 advisor_* 标识符ch04全新 AdvisorTool——第一个非执行类工具,有独立模型调用链
工具tool_result_dedupch04工具结果去重,与 v2.1.91 的 file_read_reread 构成输入/输出双侧去重
安全vendor/seccomp/{arm64,x64}/apply-seccompch16系统层 seccomp 沙箱,替代 v2.1.91 移除的 tree-sitter 应用层分析
Hookstop_hook_added, stop_hook_command, stop_hook_removedch18Stop Hook 运行时动态添加/移除——Hook 系统首次支持运行时管理
认证bedrock_setup_started/complete/cancelled, oauth_bedrock_wizard_launchedch05AWS Bedrock 引导式设置向导
认证oauth_platform_docs_openedch05OAuth 流程中打开平台文档
工具bash_rerun_usedch04Bash 命令重跑功能
模型rate_limit_options_menu_select_team限速时的 Team 选项

关键移除

移除信号分析
session_tagged, tag_command_*(5 个)Session 标签系统被完全移除
sm_compact旧压缩事件被清理(v2.1.91 已引入 cold_compact 替代)
skill_improvement_survey技能改进调查结束
pid_based_version_lockingPID 版本锁机制移除
compact_streaming_retry压缩流式重试被清理
ultraplan_modelUltraplan 模型事件重构
6 个随机代码名实验事件旧 A/B 测试结束(cobalt_frost, copper_bridge 等)

新增环境变量

变量用途
CLAUDE_CODE_EXECPATH可执行文件路径
CLAUDE_CODE_SIMULATE_PROXY_USAGE代理使用模拟(测试用)
CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK跳过 Fast Mode 组织级检查

设计趋势

v2.1.91→v2.1.92 的增量较小但方向明确:

  1. 安全策略从应用层下沉到系统层(tree-sitter → seccomp)
  2. 工具体系从纯执行扩展到建议(AdvisorTool)
  3. 配置管理从纯静态走向运行时可变(Stop Hook 动态管理)
  4. 企业接入门槛持续降低(Bedrock 向导化)

使用 scripts/cc-version-diff.sh 生成差异数据,docs/anchor-points.md 提供子系统锚点定位