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
This commit is contained in:
James Feng 2026-06-07 17:30:47 +08:00
parent ecfa69749c
commit 61c80c6963

View File

@ -2,6 +2,8 @@
> CC_PureCCP与上游 CCBclaude-code-best之间的版本对齐、合并历史、遗留问题和策略。
> 最后更新2026-06-08
>
> **来源说明**:本文档合并了「上游同步记录.md」和「上游commit审查清单.md」的内容。已审查过的 commit 标注了"可直接跳过"。
---
@ -23,6 +25,18 @@
| 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** 的分叉差异。
---
@ -109,6 +123,215 @@ acp 分支与 upstream/main 在 `src/` 下有 **316 个 commit** 的分叉差异
---
## 上游同步详细记录
> 以下内容由「上游同步记录.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](https://github.com/GhostDragon124/CC_Pure/tree/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 | **feat**sideQuery 支持第三方 provider 路由 (OpenAI/Grok/Gemini) |
| (内置) | `ed619327` | 2026-05 | **fix**OpenAI 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 | **docs**effort 级别描述去掉模型名限制 |
#### ACP / Bridge
| CCP Commit | 上游 Commit | 日期 | 说明 |
|---|---|---|---|
| `b1d322f7` | `b1c4f40f` | 2026-05-22 | **fix**ACP 模式下 extended thinking + tool_use 触发连续 user 消息导致 400 (CC-1215) |
#### 构建 / 性能
| CCP Commit | 上游 Commit | 日期 | 说明 |
|---|---|---|---|
| (内置) | `dab04af7` | 2026-05 | **perf**Vite 构建启用 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 | **feat**autofix-pr 完成回流机制latent bug fix + completionChecker + 内容回流) |
#### 其他修复
| CCP Commit | 上游 Commit | 日期 | 说明 |
|---|---|---|---|
| (内置) | `6dd378bf` | 2026-05 | **fix**:退出启动对话框时终端残留一行内容 |
| (内置) | `efc218d8` | 2026-05 | **fix**searchSkills 使用缓存 IDF 前校验 index 引用一致性 |
| (内置) | `f9106083` | 2026-05 | **fix(swarm)**WindowsTerminalBackend pidFile health check (#1237) |
| `48a19b8a` | 同 | 2026-05-17 | **fix**isUsing3PServices 检查所有非 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` | 导出 `createScheduledTaskQueuedCommand`autonomy 队列去重 |
| 源码 | `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 个)— 全部来自社区代码
@ -277,6 +500,42 @@ git log acp..upstream/main --oneline
- **测试基础设施** — 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 特有改动清单
@ -357,6 +616,319 @@ git diff upstream/main..acp -- src/ | stat:
---
## 六、已审查 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 时再合并 |
---
## 附录
### 获取上游最新状态的命令