claude-code-best/docs/upstream-sync.md
James Feng 61c80c6963 docs: merge upstream sync records and 180-commit audit into upstream-sync.md
Absorb content from:
- 上游同步记录.md (8 chapters of cherry-pick history)
- 上游commit审查清单.md (187 candidate commits reviewed)

Additions to upstream-sync.md (386→958 lines):
- Detailed merge history grouped by category (ACP, cherry-picks, auto-merge, infra)
- Commit-by-commit evaluation (P0/P1/P2/P3/REVIEW, 59 merged + 34 existing + 93 skipped)
- Skip reasons catalog (13 categories)
- Suggested merge order for future cherry-picks
- All merged commits annotated with upstream→CCP hash mapping
- Source attribution header noting absorbed documents
2026-06-07 17:30:47 +08:00

47 KiB
Raw Blame History

上游同步追踪

CC_PureCCP与上游 CCBclaude-code-best之间的版本对齐、合并历史、遗留问题和策略。 最后更新2026-06-08

来源说明:本文档合并了「上游同步记录.md」和「上游commit审查清单.md」的内容。已审查过的 commit 标注了"可直接跳过"。


版本对齐信息

项目 版本 最新 Commit 分支
CC_Pure (CCP) v2.6.11 328ab1ee acp
上游 CCB v2.6.11 6b205f57 upstream/main
ccb-upstream (本地镜像) ccb-upstream/main

同步时间线

阶段 日期 CCP 版本 上游版本 说明
初始基线 2026-05-22 v2.6.5 v2.6.5 CCP 从 CCB fork建立独立分支 acp
早期 cherry-pick 2026-04~05 v2.6.5→v2.6.8 v2.6.5 逐个拣选上游修复和特性
Phase 2 monorepo 对齐 2026-06-01~03 v2.6.8→v2.6.10 v2.6.5 删除 /src/tools/,改用 packages/builtin-tools/
2.6.11 批量同步 2026-06-06~07 v2.6.10→v2.6.11 v2.6.11 批量合并 2.6.5→2.6.11 上游改动
tsc 清零冲刺 2026-06-07 v2.6.11 v2.6.11 修复可修复类型错误,遗留社区代码问题

合并统计

指标 数值
上游总 commitpost-April 664 个
候选 commit过滤已合并/文档/CI 187 个
已合并至 CCP 59 个11 P0/P1 + 23 P2 + 16 P3 + 2 REVIEW + 7 RCS/SSH
🟡 已存在(无需再次合并) 34 个
跳过(无关/Windows/纯测试等) 93 个
⏸️ 延后 1 个
可精确追溯 upstream commit 合计 41 个(延 hash cherry-pick + 批次同步带入)

acp 分支与 upstream/main 在 src/ 下有 316 个 commit 的分叉差异。


上游合并历史(按时间倒序)

2.6.11 同步批次2026-06-06 ~ 06-07

这是 CCP 的主要上游合并动作,将 2.6.5→2.6.11 的上游改动批量合入。

Commit 日期 描述 来源(上游) 冲突处理
3013b051 06-07 fix: add resetAbortController/getAbortSignal to QueryEngine CCB upstream 无冲突
00a0c86c 06-07 docs: add devlog for upstream sync 2.6.5→2.6.11
930aecec 06-07 chore: align acp with upstream 多 commit 无冲突
e3908ab4 06-07 chore: align remote control web ui with upstream 多 commit 无冲突
b21ed050 06-07 chore: sync providers.ts (Grok), Config.tsx, poorMode.ts 多 commit 手动合入
d04846f5 06-06 checkpoint — restore 40+ upstream files, fix 21 syntax errors 批量 修复 21 个语法错误
be722795 06-06 chore: merge fcbc8822 — remove 113 unused imports fcbc8822 自动合并
3013db2d 06-06 chore: merge upstream cleanup — 536 stubs + 17 dead files + 4 as any fixes 批量 手动,处理大量删文件冲突
2020a84b 06-06 feat: port mode system with 6 AI personality presets 9947ae75 手动拣选CCP 已有修改做适配
16712e03 06-07 fix: eliminate 8 as any in MCP handlers 自研(非上游)

Phase 2 — Monorepo 工具对齐2026-06-01 ~ 06-03

将 CCP 的扁平 /src/tools/ 结构迁移到上游的 packages/builtin-tools/ monorepo。

Commit 日期 描述 说明
bdfff8de 06-03 Phase 2: delete src/tools/ — align with upstream monorepo 删除旧扁平工具目录
638affff 06-03 Phase 2b Batch 3: merge AgentTool(38) drift files 38 个 AgentTool 差异文件
46b2b0bf 06-03 Phase 2b Batch 2: merge BashTool(23) + FileEditTool(13) + FileWriteTool(5) 批量合并工具差异
0c01c93e 06-03 Phase 2a: mechanical dedup — import rewrite to canonical package 机械重写 import 路径
a8c5fd95 06-03 fix: revert AgentTool prompt.ts to upstream fork terminology 术语回退
05fd5e14 06-03 fix: restore /dev/tcp /dev/udp network device redirect security check 网络安全检查恢复
39ba9a56 06-01 feat: pull in Vite build system + complete packages/builtin-tools/ Vite 构建系统引入
ed197502 06-01 fix: resolve tsc errors (remaining upstream type fixes) 上游类型修复
d70de466 06-01 fix: resolve tsc errors (upstream type cleanup batch) 上游类型清理批次

中间 Cherry-Pick 批次2026-05-22 ~ 06-04

从上游拣选的独立修复和特性。

Commit 日期 描述 来源(上游) 冲突处理
cdd62520 06-02 feat(upstream): sync b1c4f40f ACP fix + WorkflowTool b1c4f40f 无冲突
a9e1a1e4 06-02 feat: merge 4 upstream improvements (effort + sideQuery + agent hints + plan/paste) 4 commits 手动合并
289fc9bf 06-02 fix: sync multiStore.ts and localValidate.ts from upstream 上游 无冲突
5b0c0fa4 06-02 fix: sync missing test mocks and agentToolFilter from upstream 上游 无冲突
d1d74d4a 06-02 fix: restore notifyAutomationStateChanged + skip 4 unfixable tests 上游 手动
8c9efedd 06-02 fix: resolve 8 test failures across 6 files 多文件
80a88286 06-04 fix: backfill upstream OpenAI fixes c82f5994, 901628b4 无冲突
b5bcbdbd 06-04 fix: 修复斜杠命令自动补全 ad09f38f 无冲突
10dfcc67 06-04 fix: Batch 1a — WebFetchTool 安全加固 + 核心运行时修复 c2ac9a74 无冲突
8485589c 06-04 fix: add typeof TungstenPill guard (partial cherry-pick) a02a9fc 部分拣选
be767204 06-04 fix: RemoteTriggerTool 测试补充 mock对齐上游 a2cfaf9 无冲突
379335e3 06-04 feat: add provider-aware model name resolution 771e3db + f7f69b7 无冲突
dc71add9 06-04 feat: register LocalMemoryRecallTool + VaultHttpFetchTool 5bb0306 无冲突
aa72a8ed 04-23 fix: 修复 model alias 导致无限递归栈溢出 cee62bc 无冲突
e0382ce2 06-07 chore: bump version to 2.6.11
2ea37816 06-04 fix: restore CCP version 2.6.5 (overwritten by cherry-pick)
a308aa8f 06-04 fix: add missing FILE_WRITE_TOOL_NAME import + poorMode stub 回归修复
03975066 05-01 chore: merge 4 upstream commits (Grok, OpenAI image, CodeRabbit, tsc) 4 commits 无冲突

早期独立同步2026-04 ~ 05

Commit 日期 描述 说明
f1c7f7dc 06-04 feat: full merge of f2e9af49 autonomy PR #386 上游 autonomy 大 PR
9538ebd2 06-04 feat: full merge of f2e9af49 autonomy PR #386 同上(双分支)
edae3a7d 04-29 feat: harden autonomy lifecycle, OOM bounds 上游 PR #386
f2e9af49 04-29 feat: harden autonomy lifecycle, OOM bounds 上游原始 commit
c4e9efb7 05-06 Merge pull request #417 (sync/mcp-transform-2.1.128) PR #417

acp ↔ main 同步

Commit 日期 描述 说明
ae932e11 06-05 merge: acp → main (14 test failures → 0) 主线合并
da2d3c93 06-05 merge: sync acp → main (CI baseline 7→14) 同步
580bcfa5 06-04 merge: bring main (ccp-core baseline) into acp 基线对齐
2c27fd80 06-05 fix: update CI test baseline from 7 to 14 基线更新
d3566259 06-05 docs: 同步合并统计

上游同步详细记录

以下内容由「上游同步记录.md」合并而来提供更细致的 commit 分组和上游→CCP 映射。

6.5 ACP 全量引入 (2026-06-04)

acp 分支独立维护,从上游 CCB 合并 5 个 ACP 相关 commit。

上游 commit 说明 状态
3cb1e50b 添加对 ACP 协议的支持 (#284) 提取核心文件
7881cc61 增强 ACP 桥接与权限处理 Cherry-pick
2c8a22d4 fix(acp): 对齐 ACP session ID Cherry-pick
66d2671c feat: acp manager (#304) 以上游 CCB 为准,覆盖本地旧版
4dcbaf1e fix: messageSelector require 崩溃 ⏭️ CCP 已有同类修复
b1c4f40f fix: ACP extended thinking 导致 400 ⏭️ CCP 已有同类修复

分支: acp | 测试 3551 / build 586 files

合并统计

类别 数量 说明
延原始 hash 的 cherry-pick 8 d4a60147, b1c4f40f, 897c186f, 6766f08e, 9d17597e, 7b52054f, 03598d3f, 48a19b8a
批次同步中带入 10 02298cb1, e33b17bd, ed619327, a91653a0, a05242ce, 27b334ac, dab04af7, 6dd378bf, efc218d8, f9106083
自动合并的 upstream PR 23 见下方表格
批次同步(无法 1:1 映射) 5 批 39ba9a56, a9e1a1e4, cdd62520, d70de466, ed197502
P2 评估+合并 (2026-06-04) 23 3.1→3.7 逐 commit 评估
可精确追溯 upstream commit 合计 41

一、批次同步(多 commit 合并)

CCP Commit 日期 说明 涉及文件
39ba9a56 2026-06-01 Vite 构建系统 + 完整 packages/builtin-tools/ 大量文件,引入 Vite 替代 Bun build
a9e1a1e4 2026-06-02 合并 4 个上游改进effort 模型白名单解除 + sideQuery 路由 + agent hints + plan/paste fixes src/utils/effort.ts, src/utils/sideQuery.ts, src/utils/model/model.ts, packages/@ant/model-provider/
cdd62520 2026-06-02 ACP fix b1c4f40f + WorkflowTool top-level require() src/utils/messages.ts, scripts/defines.ts
d70de466 2026-06-01 tsc 类型修复(上游清理批次) packages/@ant/computer-use-*/, packages/@ant/ink/, src/cli/handlers/mcp.tsx
ed197502 2026-06-01 tsc 类型修复(残余上游修复) src/bridge/, src/bootstrap/state.ts, src/QueryEngine.ts

二、单独 Cherry-pick

API / 查询

CCP Commit 上游 Commit 日期 说明
(内置) 02298cb1 2026-06-02 安全:关闭 preconnectAnthropicApi 启动路径遥测泄漏 (#1253)
(内置) e33b17bd 2026-05-31 featsideQuery 支持第三方 provider 路由 (OpenAI/Grok/Gemini)
(内置) ed619327 2026-05 fixOpenAI stream adapter 中 cached_tokens 未从 input_tokens 中减去

工具系统

CCP Commit 上游 Commit 日期 说明
98c3deb2 d4a60147 2026-05-22 fix:修复 BriefTool 循环依赖导致 isBriefEnabled 未定义
(内置) a91653a0 2026-06-02 fix:删除 edit tool 中的旧逻辑处理 (#1251)
(内置) a05242ce 2026-05 fix:明确告知 agent SearchExtraTools/ExecuteExtraTool 是核心工具
(内置) 27b334ac 2026-05 fix:防止 MCP 工具调用失败后的死循环

Effort / 模型

CCP Commit 上游 Commit 日期 说明
7b52054f 2026-05-22 feat:解除 max/xhigh effort 级别的模型白名单限制
03598d3f 2026-05 refactor:移除 resolveAppliedEffort 中的 max/xhigh 降级分支
f35fb02b 897c186f 2026-05-22 docseffort 级别描述去掉模型名限制

ACP / Bridge

CCP Commit 上游 Commit 日期 说明
b1d322f7 b1c4f40f 2026-05-22 fixACP 模式下 extended thinking + tool_use 触发连续 user 消息导致 400 (CC-1215)

构建 / 性能

CCP Commit 上游 Commit 日期 说明
(内置) dab04af7 2026-05 perfVite 构建启用 code splittingBun RSS 从 966MB 降至 35MB

GitHub 集成命令

CCP Commit 上游 Commit 日期 说明
241aca1e 6766f08e 2026-05-09 feat:添加 GitHub 集成命令(/issue、/share、/autofix-pr
1c802164 9d17597e 2026-05-22 featautofix-pr 完成回流机制latent bug fix + completionChecker + 内容回流)

其他修复

CCP Commit 上游 Commit 日期 说明
(内置) 6dd378bf 2026-05 fix:退出启动对话框时终端残留一行内容
(内置) efc218d8 2026-05 fixsearchSkills 使用缓存 IDF 前校验 index 引用一致性
(内置) f9106083 2026-05 fix(swarm)WindowsTerminalBackend pidFile health check (#1237)
48a19b8a 2026-05-17 fixisUsing3PServices 检查所有非 Anthropic provider (#1235)
27b665ac 2026-05 Fix type (#1242)
ea399f18 2026-05 Fix type (#1239)
b67e9f9d 2026-05 Fix/plan paste fixes (#1238)
d66a6f61 2026-05 feat:添加 /goal 命令 (#1222)
2cc9a7da 2026-05 Revert:回退 /goal 命令 (#1236)

自动合并的 PR

CCP Commit 日期 说明
0face46f 2026-05-14 Merge PR #1228: fix/spinner-tree-local-agent-tokens
d451e307 2026-05-14 Merge PR #1226: feat/mimo-thinking-support
80b46d22 2026-05-14 Merge PR #1225
3d7b32f5 2026-05-12 Merge PR #1117: fix/acp-session-id-alignment
998890b4 2026-05-10 Merge PR #446: feature/prompt-cut-down
3f0f699c 2026-05-10 Merge PR #445: feature/many-feature-packagee
7e2b8e81 2026-05-09 Merge PR #442: feature/tool_search
df8c4f4b 2026-05-09 Merge PR #438: feature/codex-subscription
02dd7967 2026-05-08 Merge PR #435: fix/conditional-hooks-ctrlo-error
2fdfb844 2026-05-07 Merge PR #428
c7efac6b 2026-05-06 Merge PR #423: feat/statusline-refresh-interval
68c7ebb2 2026-05-06 Merge PR #419: codex/sub-agents-docs
9e299a72 2026-05-06 Merge PR #420: fix/third-party-api-user-id
5c107e5f 2026-05-06 Merge PR #416: feat/subagent-fork-render
c4e9efb7 2026-05-06 Merge PR #417: sync/mcp-transform-2.1.128
f5c9880d 2026-05-05 Merge PR #413: performance/20260505/memory-leak-fix
a1108870 2026-05-05 Merge PR #412: feature/20260504/improve
4cbf406c 2026-05-02 Merge PR #403: fix/deepseek-empty-reasoning-content
385baf57 2026-05-02 Merge PR #402: fixture/memory-peak
96f1700e 2026-05-02 Merge PR #400: fixture/memory-peak
cd8136f4 2026-04-30 Merge PR #395: fix/theme-switching
632f3e19 2026-04-30 Merge PR #381
00da5d7d 2026-04-29 Merge PR #388: fix/modelpicker-1m-toggle-hint
edae3a7d 2026-04-29 feat: harden autonomy lifecycle, OOM bounds (#386)

三、基础设施同步

CCP Commit 日期 说明 涉及
5b0c0fa4 2026-06-02 同步缺失的 test mocks + agentToolFilter tests/mocks/ (6 个文件), src/utils/agentToolFilter.ts
289fc9bf 2026-06-02 同步 multiStore.ts + localValidate.ts src/services/SessionMemory/, src/utils/
8c9efedd 2026-06-02 修复 8 个测试失败6 个文件) ExecuteTool, OpenAI stream adapter, localVault, effort, formatBriefTimestamp
d1d74d4a 2026-06-02 恢复 notifyAutomationStateChanged + 跳过 4 个不可修复测试 src/utils/sessionState.ts, 测试文件
d020ca4b 2026-05-22 chore: 2.6.5 版本号 package.json

四、Autonomy 全量合并 (2026-06-04)

从上游 f2e9af49 (PR #386) 完整合并 autonomy 源码 + 测试。此前 batch sync 只带了代码,遗漏了 5 处源码集成点和 11 个测试文件。

类别 文件 说明
源码 useScheduledTasks.ts 导出 createScheduledTaskQueuedCommandautonomy 队列去重
源码 processUserInput.ts 透传 autonomy payload暴露 deferAutonomyCompletion
源码 processSlashCommand.tsx 接受 autonomy 参数background fork 延迟终结
源码 handlePromptSubmit.ts 空闲队列过滤 stale autonomy 命令
源码 Tool.ts 添加 allowBackgroundForkedSlashCommands
测试 autonomyAuthority.test.ts 权威配置解析 + prompt 组装
测试 autonomyFlows.test.ts 托管流生命周期
测试 autonomyPersistence.test.ts 文件锁 + 活跃保留
测试 autonomyQueueLifecycle.test.ts 队列分区/认领/终结
测试 autonomyRuns.test.ts 状态机 + 去重 + 格式化
测试 queryAutonomyProviderBoundary.test.ts provider 错误终结
测试 handlePromptSubmit.test.ts stale autonomy 过滤
测试 useScheduledTasks.test.ts cron → autonomy 队列
测试 processSlashCommand.test.ts slash 命令 autonomy 集成
测试 autonomy-lifecycle-user-flow.test.ts CLI 子进程集成
测试 RemoteTriggerTool.test.ts 合并上游断言改进

测试3699 pass, 0 fail (+97 from 3602)

Tag: v2.2.2 | Commit: 9538ebd2 (acp) / f1c7f7dc (main)

后续同步时可跳过

# Autonomy (PR #386) — 全量合并
f2e9af49   # harden autonomy lifecycle, OOM bounds, provider-boundary finalization
452a7e6a   # fixup: CodeRabbit review
189766c5   # fixup: CodeRabbit second-round review
6b7cfda9   # fixup: 4 remaining review items
7a6e65ca   # refactor: simplify/reuse/defense
edae3a7d   # squashed final PR #386
a2cfaf91   # RemoteTriggerTool + autonomy test fixes

Tags

Tag 日期 说明
v0.1.0-toolsearch-fix 2026-06-01 Tool Search 缓存修复
v1.6.2 2026-06-01 早期版本
v1.7.0 2026-06-02 基础设施同步
v1.8.0 2026-06-04 P2 完成 (23 merged)
v2.0.0 2026-06-04 P3 A 完成 (12 merged)
v2.1.0 2026-06-04 REVIEW 24 执行完毕 (2 merged)
v2.2.0 2026-06-04 P3 B 完成 (3 merged)
v2.2.1 2026-06-04 OpenAI fixes backfill (c82f5994, 901628b4)
v2.2.2 2026-06-04 Autonomy 全量合并 (f2e9af49)

五、RCS/Web + SSH 全量合并 (2026-06-04)

RCS Web UI 从 vanilla JS 全面迁移到 React 架构SSH Remote 替换 stub 为完整实现。

CCP Commit 上游 Commit 说明
d1176325 fe08cac fix(remote-control): harden self-hosted session flows (#278) — RCS 安全加固
7f4dcfba 72a2093 feat(remote-control): 优化 Web 展示、状态同步与桥接控制 (#288) — 64 files
056231d0 34154ee feat: React Web UI 迁移 + acp-link 完善 (#292) — 142 files, vanilla JS → React
d7195087 2e9aaf4 feat: ACP 协议 remote control (#293) — 54 files, ACP bridge
c112237e f9d0111 fix: web 端 crypto.randomUUID → uuid 库
2d05da10 c7bc8c8 feat: remote control auto bind (#300) — TokenManager + auto bind
1b6ae3d3 03811f9 feat: SSH Remote — 本地 REPL + 远端工具执行 — 10 files, 2010 行, 17 tests

当前遗留问题

1. tsc 错误21 个)— 全部来自社区代码

来源:docs/community-code-issues.md

bridge.ts — ACP SDK 类型14 个)

文件:src/services/acp/bridge.ts

核心问题:nextSdkMessageOrAbort() 返回 void | SDKMessage,代码未做 void 守卫直接访问属性。

行号 错误 说明
649 Property 'type' does not exist on type 'void | SDKMessage' msg.type — msg 可能为 void
654 Property 'subtype' does not exist... msg.subtype
682 Property 'usage' does not exist... msg.usage
700 Property 'modelUsage' does not exist... msg.modelUsage
719 Property 'total_cost_usd' does not exist... msg.total_cost_usd
734 Property 'subtype' does not exist... result 分支
735 Property 'is_error' does not exist... result 分支
744 Property 'stop_reason' does not exist... stop_reason 分支
755 Property 'stop_reason' does not exist... error_during_execution 分支
780 Argument of type 'void | SDKMessage'... streamEventToAcpNotifications()
800 Property 'message' does not exist... assistant 分支
803 Property 'parent_tool_use_id' does not exist... assistant 分支
825 Argument of type 'void | SDKMessage'... assistantMessageToAcpNotifications()
850 Property 'data' does not exist... progress 分支

autofix-pr2 个)

文件:src/commands/autofix-pr/launchAutofixPr.ts

行号 错误 说明
237 Property 'errors' does not exist on type '{ eligible: true; }' eligibility.errors — 判别式不准确
321 Property 'source' does not exist in type '...' teleportToRemote 传入 source: 'autofix_pr'

测试文件4 个)

文件 行号 错误 说明
issue-gh.test.ts 224:25 Property 'msg' does not exist... b.msg — 判别式收窄问题
issue-gh.test.ts 224:37 Property 'msg' does not exist... 同上
share-gh.test.ts 216:25 Property 'msg' does not exist... 同上
share-gh.test.ts 216:37 Property 'msg' does not exist... 同上

client.ts — GoogleAuth 泛型1 个)

行号 错误 说明
297 Type 'GoogleAuth<AuthClient>' is not assignable to 'GoogleAuth<JSONClient>' Vertex AI GoogleAuth 泛型参数不兼容,as unknown as GoogleAuth 绕过

2. as any 遗留49 个)

API Provider 适配器31 个)

文件 数量 范围
openai/index.ts 14 流事件适配、usage 提取、错误包装
grok/index.ts 11 流事件适配、usage 提取
gemini/index.ts 6 流事件适配

生成代码 — protobuf 自动生成7 个)

文件 数量 模式
claude_code_internal_event.ts 4 {} as any.create() 空对象兜底
timestamp.ts 1 {} as any
growthbook_experiment_event.ts 1 {} as any
auth.ts 1 {} as any

MCP/cli 社区代码5 个)

文件 数量 说明
ccrClient.ts 3 (result as any).retryAfterMs — 重试延迟提取
structuredIO.ts 1 input as any — hook callback 输入强制转换
useManageMCPConnections.ts 1 origin: {...} as any — origin 字段强制转换

其他社区代码6 个)

文件 数量 说明
relay.ts 3 ws.send(encodeChunk(...) as any) — WebSocket 类型不兼容
streamAdapter.ts 2 (chunk.usage as any).prompt_tokens_details / (delta as any).reasoning_content
branch.ts 1 (firstUserMessage as any)?.message?.content

3. client.ts googleAuth as any

已在上方 tsc 错误部分记录。这是社区代码引入的 Vertex AI GoogleAuth 泛型不兼容问题。


未来 Cherry-Pick 策略

1. 如何监控上游新 commit

# 定期拉取上游
git fetch upstream

# 查看上游未合入的 commit相对于 acp
git log upstream/main..acp --oneline --since="2026-06-07"

# 查看上游新 commit
git log acp..upstream/main --oneline

建议:

  • 每日 git fetch upstream + 检查新 commit 列表
  • 关注上游的 chore: 2.6.x tag commits版本发布标记
  • 关注 PR 中的 fix: / security: 前缀 commit
  • 特别关注涉及 ACP、Bridge、MCP 协议层的修复

2. Cherry-Pick 流程

1. git fetch upstream
2. git checkout acp
3. git log acp..upstream/main --oneline  # 查看待合入 commit
4. 评估优先级(见下方第 4 节)
5. git cherry-pick -x <commit-hash>
6. 解决冲突(见下方第 3 节)
7. bun run check     # lint + format
8. bunx tsc --noEmit # 类型检查
9. bun test          # 测试
10. git commit --amend -m "fix: ... (cherry-pick <upstream-hash>)"
11. git push origin acp

3. 冲突处理原则

情况 处理方式
CCP 特有文件telemetry、skill、acp bridge 等) 以上游为准,手动适配 CCP 修改
纯新增文件 直接接受,无冲突
已删除的 CCP 文件(如旧 /src/tools/ 上游修改跳过
双方修改的同一行 手动判断功能性以上游为准CCP 定制部分保留
import 路径差异CCP 用 canonical package vs 上游用 direct import 按 CCP monorepo 规则重写 import
测试文件冲突 视情况上游测试修复优先合入CCP 独有测试保留

通用原则:

  • 功能性修复 > 代码风格改动
  • 上游 tsc 修复优先合入(可降低 CCP tsc 计数)
  • 涉及安全/隐私的 commit 必须立即合入
  • 排除仅与 Anthropic 内部基础设施相关的 commit

4. 优先级分级

优先级 类别 说明 示例
P0 安全/隐私 遥测泄漏修复、路径遍历修复 类似 #1253 telemetry leak fix
P1 功能性 bug 修复 ACP 协议修复、核心运行时崩溃修复 ACP extended thinking fix
P1 TypeScript 修复 减少社区 tsc 错误 各类 as any → 具体类型
P2 测试修复/改善 上游测试修复可提升 CI 可靠性 mock 补充、test baseline 更新
P3 非功能性移植 新特性、重构、文档 mode system、effort 描述调整
P4 Anthropic 内部专用 遥测上传、内部 API、权限系统 BigQuery exporter、内部 endpoints

5. 值得优先合入的上游 commit 方向

  • ACP SDK 适配器修复 — 直接影响 CCP 核心 ACP 协议功能
  • TypeScript 类型增强 — reduce as any / 修复 tsc 错误
  • 流事件处理改进 — OpenAI/Grok/Gemini provider 的流事件处理
  • 安全性修复 — 防止遥测泄漏、命令注入、路径遍历
  • 测试基础设施 — mock 框架、测试工具、CI 配置
  • Chrome/Computer Use MCP — 若上游修复了相关包依赖

6. 建议合并顺序

以下顺序基于 commit 审查清单中的分析,按收益/风险比排序。

第一批内存修复P0 + P2 内存,约 12 个)

52b61c2 → e7220c5 → f2e9af4 → f724300 → 198c09b → ab0bbbc
→ 835dd2d → b3d28bc → ef10ad2 → f5c3ee5 → 0290fe3 → 08cd02c

预期效果RSS 降低 200-500MB消除已知泄漏点。

第二批Provider 兼容P1约 9 个)

3cf94fb → d136872 → dc3d3e8 → 771e3db → cee62bc → 047c85f
→ ecd3f9d → 941bcbd → eca1acc (OpenAI 图片兼容)

预期效果DeepSeek/Gemini 调用不再报 400/403图片粘贴可用。

第三批:工具系统(约 5 个)

c14b7ea → e5f31af → fc8d531 → b4e52d0 → 7be08f5

预期效果Tool Search 缓存正确agent 工具链完整。

第四批:体验 + 构建(余下)

2f86485 → 2006ab2 → b28de71 → 2934f30 → 33fe494 → ...

CCP 特有改动清单

以下为 CCP 与上游的主要分叉点。这些改动不能合入上游(上游是公开的 Anthropic 官方案例)。

1. 遥测数据本地化

文件 改动
src/utils/telemetry/bigqueryExporter.ts Anthropic 遥测 endpoint 清空为 '',阻止数据外泄
src/utils/telemetry/instrumentation.ts 本地化分析链路,不向 Anthropic 发送遥测
src/utils/sinks.ts 本地 analytics sink64ca3250
src/services/analytics/growthbook.ts GrowthBook 实验默认 fallback不依赖远程配置

commit 83abbbc264ca32508a301dcf

2. 穷鬼模式Poor Mode移除

上游的穷鬼模式(低成本模式)已被 CCP 彻底移除。

commit 987578b551ce0931

3. Chrome / Computer Use MCP 恢复

上游删除的 Chrome 浏览器自动化和 Computer Use 功能CCP 已从历史记录中恢复。

commit e2aafbb5957076c5

相关包保留在 packages/ 下。

4. ACP 对齐(内部 QueryEngine

CCP 的 acp 分支包含大量 ACP 协议层改动,上游 CCB 的 ACP 支持是独立的:

commit 说明
34154ee3 支持 acp-link 包进行 ACP remote-control
09fc515e 远程群控功能
2d05da10 remote control auto bind
d7195087 ACP 协议版本 remote control
6950401c ACP session ID 与全局会话状态对齐
多个 ACP bug fix 01f26cf4230eb489a077ec8d7e3d825f

5. Skill 系统替换

上游使用 skillLearning 子系统Anthropic 内部分析用户行为CCP 替换为 Hermes skill 系统。

commit 说明
42100d62 关闭 skill learning 编译开关
75fa2127 彻底移除 skillLearning 子系统
(Hermes) 技能系统由外部 Hermes Agent 框架提供

6. 其他 CCP 特有改动

类别 说明
配置文件本地化 ~/.claude/ → 本地配置,不依赖 Anthropic 云端
更新机制 updateCCB.ts 被删除,替换为本地更新管理
Vite 构建系统 build.ts + vite.config.ts 双构建管线,上游仅有 Bun build
代码分割 Vite 代码分割 600+ chunk 降低 RSS966MB→35MB
Bridge 系统 src/bridge/ 包含远程控制桥接层(上游已删除)
HTTP proxy 解析 src/utils/sensitive.ts 敏感信息处理
ACL 访问控制 src/utils/processUserInput/ 中的命令处理安全加固
移除的测试文件 src/commands/__tests__/ 中大量上游测试被删除或 stubbed
Bootstrap 差异 src/bootstrap/ 中的状态管理、类型定义差异
ripgrep 二进制 vendor 二进制拷贝脚本定制

diff 概要

git diff upstream/main..acp -- src/ | stat:
1448 files changed, 55529 insertions(+), 89243 deletions(-)

主要删减集中在上游的测试文件(__tests__/、Claude In Chrome、Agents Platform、CCR 等 CCP 不使用的功能。


六、已审查 commit 清单(可直接跳过)

以下内容由「上游commit审查清单.md」合并而来。基于 2026-06-04 上游 claude-code-best/main (708 commits) vs CCP main 的 diff 分析。

初筛664 个 post-April commit → 过滤已合并/文档/CI → 180 个候选(后补充至 187 个)。

Windows 特供的已标记 SKIPCCP 跑 Linux

判定标准

标记 含义 说明
MERGE 推荐合并 有明确收益,已实际合并
🟡 EXISTS 已存在 前期批次已自动带入,无需再次合并
SKIP 不合并 与 CCP 无关/低价值/Windows 特供/已覆盖
⏸️ 延后 暂缓合并 待条件满足时再合

统计概览

类别 总数 已合并 🟡 已存在 跳过 ⏸️ 延后
P0 高优先级 8 5 2 1 0
P1 建议合并 9 6 2 1 0
P0+P1 合计 17 11 4 2 0
P2 (3.1-3.7) 53 23 13 17 0
P3 低优先级 106 16 14 76 0
REVIEW 24 2 3 18 1
RCS/Web 全量 6 6 0 0 0
SSH Remote 1 1 0 0 0
全量总计 187 59 34 93 1

额外标注skill learning 全家桶6 个 commit已确认不合并——上游自己都注释掉了 SKILL_LEARNING,功能未成熟。

已合并 commit 列表59 个)

P0 — 高优先级5 个)

# 上游 Commit 说明 CCP Commit
1 f2e9af4 feat: harden autonomy lifecycle, OOM bounds 9538ebd2 (acp) / f1c7f7dc (main)
2 3cf94fb fix: 修复对穷鬼模式的 auto dream 和 session memory 越过 51ce0931
3 5bb0306 feat: 添加 LocalMemoryRecallTool 和 VaultHttpFetchTool dc71add9
4 a2ea69c feat: 添加 Session Memory 多存储支持 95482ce7

P1 — 建议合并6 个)

# 上游 Commit 说明 CCP Commit
5 f724300 fix: FileReadTool 100KB 上限、lookups 缓存、microcompact b8dec7f7 (Codex)
6 2f86485 refactor: 精简系统提示词 3b38767c
7 bdea5a2 fix: Fix deferred tools handling in OpenAI compatibility layer 70d6b288
8 e88dcb2 fix: OpenAI adapter tool calling compatibility a442aee5
9 b28de71 perf: 优化内存与遥测管理,启用 Vite minify db84f971 (Codex)
10 4f0aa86 feat: 添加本地 Memory/Vault 管理命令 a3ef9a1b

P2 — 逐 commit 评估23 个)

3.1 内存/性能5 个)
上游 Commit 说明 CCP Commit
198c09b 内存优化 — 预测性 compact 阈值、增量 lookups orphaned 修复 aff7b0e8
ef10ad2 优化内存峰值与 CPU 性能,降低 100-300MB b7bbbeb0
f5c3ee5 修复长时间运行会话的内存泄漏问题 39a3ff8d
3a2b6dd 表格渲染效率升级 b4629aa5
08cd02c highlight 缓存改用 LRUCache 降低内存开销 d35f0db1
3.2 Provider/API 兼容6 个)
上游 Commit 说明 CCP Commit
d136872 修复第三方 API 不兼容部分参数 72b13ee2
dc3d3e8 移除 auto mode 的 provider 和模型白名单限制 90406a10
771e3db 修复非 Anthropic provider 署名模型名获取错误 379335e3
6f80e96 modelType 优先于所有 env vars ef80d21d
462fe69 修复 OpenAI cost 计算问题 f484c9fa
cee62bc 修复 model alias 导致无限递归栈溢出 aa72a8ed
3.3 工具系统3 个)
上游 Commit 说明 CCP Commit
c14b7ea 修复 Tool Search 缓存失效 eaa6199f
fc8d531 ExecuteExtraTool 加入子代理允许列表 3922ce07
ba74e09 fork-agent-redesign — AgentTool fork 参数 e1e23787
3.4 系统提示词 / UX4 个)
上游 Commit 说明 CCP Commit
84f12f3 提升 CLAUDE.md 指令权重 35927b20
2006ab2 添加 React Error Boundary 防止渲染崩溃 1d3951d4
1f80043 修复子代理 token 消耗显示为 0 4e050df9
e7070e0 showSpinnerTree 下保留 local-agent token cbe32ea5
3.6 会话/Bridge2 个)
上游 Commit 说明 CCP Commit
eb833da 创建 agent 后刷新缓存 44bfc189
a2cfaf9 RemoteTriggerTool 测试 mock 补全(部分) be767204
3.7 杂项3 个)
上游 Commit 说明 CCP Commit
c499bfb 修复 voice provider 的问题 1dfe9093
6c5df39 添加 compact 缓存与上下文压缩增强 6a63706b

P3 — 低优先级已合并16 个)

# 上游 Commit 说明 CCP Commit
71 ecd3f9d fix: Gemini 适配器补全 usage 字段映射 🟡 空提交 — 已存在
80 82be5ff fix: 代码审查修复 — 安全、性能和正确性 fe9da6e5 (partial)
89 26ddbda fix: align mcp transform pipeline with Anthropic 2.1.128 5ebd5466
90 3f1c846 fix: 调小 snapshots 的范围 5886421a
91 75952bd fix: 尝试请求参数克隆以解除闭包引用 9d49306b
115 047c85f fix: 修复 DeepSeek V4 reasoning_content 回传导致 400 3cc9545d
116 da6d063 fix: 修复 anthropic 四个 bug (#352) 995d3a47 (partial)
117 4dcbaf1 fix: 修复 ACP 模式下 messageSelector require 失败 6a025582
119 299953b fix: 修复 cliHighlight 类型不兼容问题 5ed0fa57
130 c5ab83a fix: 修复 Linux 端的安装问题 2074f646
133 8442aaa fix: 修复 n 快捷键导致关闭的问题 6362f1af
147 bb07836 fix: support CRLF SSE frame parsing (#223) d0278e89
155 70baa6f feat: add Grok (xAI) API adapter acp 分支合并
159 eca1acc feat: 支持 OpenAI 图片兼容 acp 分支合并
169 a02a9fc fix: 修复定义导入缺失 8485589c (partial)
80 dup 1d38eae fix: address CodeRabbit review findings acp 分支合并

REVIEW — 最终判定2 个)

上游 Commit 说明 CCP Commit
e8759f3 禁用 opus[1m] 自动迁移,尊重用户手动移除 [1m] 后缀 4ceeedee
86df024 修复模型相关问题 9df9e037

RCS/Web + SSH7 个)

上游 Commit 说明 CCP Commit
fe08cac fix(remote-control): harden self-hosted session flows (#278) d1176325
72a2093 feat(remote-control): 优化 Web 展示、状态同步 (#288) 7f4dcfba
34154ee feat: React Web UI 迁移 (142 files) 056231d0
2e9aaf4 feat: ACP 协议 remote control (54 files) d7195087
f9d0111 fix: web 端 crypto.randomUUID → uuid 库 c112237e
c7bc8c8 feat: remote control auto bind (#300) 2d05da10
03811f9 feat: SSH Remote — 本地 REPL + 远端工具执行 1b6ae3d3

已存在 commit 列表34 个)

这些 commit 在前期批次同步或自动合并中已带入 CCP再次 cherry-pick 会产生冲突或无变化。

# 上游 Commit 说明 来源
2 e7220c5 fix: eliminate memory leak in promptCacheBreakDetection 批次同步带入
5 4b44047 fix: prevent iTerm2 terminal response sequences leaking into REPL input 批次同步带入
14 2934f30 fix: 彻底移除 /loop AGENT_TRIGGERS gate 前期已合并
19 0290fe3 fix: 关闭 context-collapse 来修复 auto compact 失效 批次同步带入
20 ab0bbbc fix: 修复内存溢出compact 时清理持久增长数据结构 批次同步带入
21 835dd2d fix: 为 sessionStorage Map 添加容量上限 批次同步带入
22 b3d28bc fix: 为 cacheWarningStateBySource Map 设置上限 批次同步带入
31 941bcbd fix: third-party API user_id validation error (DeepSeek) 前期批次
32 9624f88 fix: 修复第三方 Anthropic base URL 应使用 ExaSearchAdapter 前期批次
38 e5f31af fix: ExecuteExtraTool validateInput 校验 前期批次
40 b4e52d0 fix: 拦截 ExecuteExtraTool 直接调用未搜索的延迟工具 前期批次
43 ca29e4e fix: 禁用 FORK_SUBAGENT 恢复 Explore 子代理 前期批次
49 3ac866b fix: 修复缓存命中率警告消息不显示 前期批次
56 e784f23 fix: validate and encode target sessionId in peer messages Bridge 批次
58 e4403ff fix: 移除 RCS 按 machineName 复用 agent 记录 已确认无需合并
63 6e1d3d8 fix: 修复 feature 的使用问题 CCP 用 if 结构已等效
64 91ee142 Fix bug OpenAI tooluse, improve error messaging 前期已存在
73 1f80043 fix: 子代理 token 消耗显示为 0 P2 #47 已合并(去重)
86 f7f69b7 fix: 模型别名未解析导致署名显示 haiku 771e3db 已覆盖
88 12f5aed fix: 恢复消息流中 diff 高亮渲染功能 CCP 已有 StructuredDiffList
99 1b10ea3 fix: preserve empty reasoning_content for DeepSeek v4 (#399) 已在 CCP
103 3276589 fix: /dev/tcp /dev/udp 网络伪设备安全检测 CCP 已有 05fd5e14
105 b8b48bf fix: truncate 函数接收到 undefined/null 时崩溃 CCP 已有 d0aa028a
125 13a0bfc fix: 修复构建产物 import 失效问题 空提交
138 bd6448e fix: 修正顺序 CCP 原本正确
146 01cf45f fix: 修复 permission 面板 代码已包含
149 a3505ae feat: DeepSeek thinking mode support for OpenAI compatibility 前期批次已带入
150 e86573a fix: 修复 -r 模式下键盘输入无响应 空提交
153 4e1e681 fix: 删除 debug 限制 代码已包含
156 379e40f fix: 回退全屏模式 代码已包含
162 354c11f fix: improve size calculation for LRU cache and handle nested object 空提交
171 8645d37 fix: add Authorization header to peer message requests e784f23 批次已带入
175 221fb6e fix: 修复 @ typeahead 文件搜索无结果的问题 空提交
176 a889ed8 fix: 移除 Settings 中未定义的 Gates 引用 空提交

跳过 commit 列表及原因93 个)

1. 缺依赖模块 / 云端后台4 个)

上游 Commit 说明 原因
52b61c2 fix: bound agent communication memory growth (#369) 缺 AgentSummary/summaryContext/summaryPrompt/udsResponseReader
2437040 feat: 添加云端管理命令 缺 CCB 云端后台 API
8fccd32 fix: 脱敏 probe-subscription-endpoints 日志 CCB 的 probe 脚本 CCP 未引入
78d46aa fix: 替换 extractMemories 的 require() 为动态 import() Vite onlyCCP 用 Bun.build

2. CCB 云端 / SaaS 功能8 个)

| f8a289b | OTEL 遥测 | be97a0b | AWS Bedrock | | 31b2fdd | provider usage 统计 | 96ec96c | ccb update 命令 | | a7e03a5 | interrupt 日志上传 | 9da7345 | Ultraplan Multi-Agent | | 8137b66 | 初次登录校验 | eb86e34 | 远程 agent 调度 |

3. Ant 模式 / 穷鬼模式5 个)

| e986141 | 穷鬼模式写入 | CCP poor mode 处理不同 | | d6bfc34 | ant 模式 | CCP 不开 ant | | 52a9cc0 | ant 模式 | 同上 | | e944633 | getAntModels is not defined | 同上 | | 4ab4506 | USER_TYPE=ant TUI 无法启动 | 同上 |

4. Skill LearningCCP 用自己的 Hermes Skill 系统3 个)

| 0a9e6c0 | 先关闭 skill learning | CCP 用 Hermes skill 系统 | | 1a1d570 | 限制 skill-learning 无限增长 | 同上 | | 1c3b280 | 修复多轮对话缓存失效 skill 提升 | 同上 |

5. Chrome MCPCCP 已有完整 Chrome MCP 功能2 个)

| d4b30d3 | fix: 修复 chrome 链接版本 | 只改 bun.lock+package.json | | e0484e2 | fix: 简化版本 chrome 桥接器 | bun.lock+package.json+setup 脚本 |

6. Node.js 运行时专属CCP 只跑 Bun6 个)

| 7e61e71 | 禁用 UDS_INBOX 修复 nodejs | c81dac8 | Node UDS socket | | 4266149 | keep UDS peer failures structured | a57ca08 | Node es 版本 | | ac42ce2 | node loading 按钮计算错误 | b80483c | node ws 打包 |

7. Tool Search 2.0 重构CCP 实测正常无需重构2 个)

| 7be08f5 | Tool Search 基础设施层4000 行改动) | 无需此重构 | | 8c157f0 | 统一自建 Tool Search | 依赖 #41同上 |

8. 纯测试 / CI / 文档 / 类型14 个)

| ae7a4e5 | CI 跳过 AutofixProgress 测试 | ea51474 | 删除 issues 测试 | | 4a39fd7 | CI test 阶段退出 | 8980013 | issue-template 测试 | | 80d4e09 | setupAxiosMock 并发丢失 | 547ce9e | prefetch 测试 | | b52c10d | CI 格式检查 | 6becb8b | tasks.test.ts 类型错误 | | f43350e | 4 个测试失败修复 | 956e98a | 重复依赖声明 | | 1a4e970 | 类型问题(#267) | 8399d9e | 类型问题 | | 0b1e678 | mintlify ignore / 侧边栏 | ff03fe7 | 类型问题 | | 714ef13 | dev.ts 路径解析 | 2cc626c | 测试文件 | | 7935bfb | debug 启动 | ac1f029 | external 字面量 |

9. 文件已删除CCP 无对应代码4 个)

| af0d7dc | Agents/Teams 纳入 Tool Search | ad09f38 | 斜杠命令自动补全 | | a0dc454 | 服务器双 / 问题 | be80da4 | 修复缓存 |

10. UX 文案不影响功能5 个)

| 6ff839d | 优化压缩错误消息 | 88057b1 | 优化 ModelPicker 副标题 | | 4d0048a | 优化权限提示用词 | 8a5ef8c | 优化用户交互文案 | | 29a1edb | 模型选择器 Space to toggle | — | — |

11. 其他跳过原因14 个)

上游 Commit 说明 原因
aa06cea GLM 署名邮箱 不影响功能
71c89e9 theme switching CCP 主题处理不同
bd6448e 修正顺序 已存在CCP 原本正确)→ 已归入 EXISTS
513ccc3 修复鉴权 CCB 私有云后端
a7d9a22 修复 main 文件 13199 行 biome 格式化噪音
919011a login 表单 enter 覆盖 CCB 登录CCP 无
3923af4 login 面板左右切换 同上
4e5a0dd 终端高亮 CCP 无对应 highlight 模块
d3a607e 终端高亮 (dup) 同上
17c0669 非 UTF-8 文件 round-trip CCP 删了 encoding.ts
5c499d3 脱敏 probe 日志 CCP 删了 probe 脚本
8ba51ed 条件式 hook Rendered fewer hooks 16 个冲突build 模式不触发
a8ed0cd vendor 二进制路径 CCP 用 --no-splitting
ca1c87f usePipeIpc require 崩溃 CCP 删了 usePipeIpc.ts
562e9da Handle undefined command names useTypeahead.tsx 被重写,冲突太大
a6bef45 rg 文件传入 加 download-ripgrep 脚本
6585d0f 禁用 COORDINATOR_MODE 上游关了CCP 开着!不合!
91ee142 (dup) OpenAI tool use 已存在
6e598fc Merge PR #149 fix/openai-tool-compat 重复,内容已有
efaf4af Provider Registry/StatusLine/Cache Stats 3600+ 行新功能
23bb09d model/provider 层改进 700 行重构
d208855 builtin-tools 增强与测试覆盖 1400 行重构
eec9613 napi 包测试覆盖 非关键
7e888ce 测试 agent 模板 + 文档 CCP 有独立 README
27a0111 Bun mock.module 跨文件污染 上游测试CCP 受影响?
5486d3c Bun mock.module 污染修复 CCB 云端功能测试
cdd62520 (dup) 已在批次同步中记录
9afcb39 bun publish npmrc CCP 不发布 npm
7d4c427 highlight.js 静态导入 CCP 不用 --compile
ecbd5a9 Bun.hash 不存在 本地 Bun 已支持
9b8503d node 环境没有 bun CCP 只跑 Bun
2545dca ccb update bun install CCP 用 git pull
227083d 截图 MIME 硬编码 CCP 不用
8fccd32 (dup) 脱敏日志 缺脚本

12. Windows 特供4 个)

| 7a3cc24 | Node.js Windows 环境 | e38d454 | Windows stdin.ref() 泄漏 | | c99021d | Windows 没有 unzip | ca086b0 | Windows Computer Use |

13. 延后1 个)

上游 Commit 说明 原因
c2ac9a7 CI workflow + bun.lock + ACP 安全加固144 file 非 ACP 部分已通过 Batch 1a 提取ACP agent 安全加固待启用 ACP 时再合并

附录

获取上游最新状态的命令

# 拉取上游
git fetch upstream

# 查看有意义的待合入 commit排除合并/文档)
git log acp..upstream/main --oneline --no-merges |
  grep -v "docs:\|chore:\|contributors"

# 统计分叉数量
git rev-list --count upstream/main..acp -- src/

# 查看特定文件的分叉
git diff upstream/main..acp -- <path>

# 查看 CCP 特有改动统计
git log --all --grep="cherry\|sync\|merge\|upstream" --since="2026-01-01" --oneline | wc -l

相关文档