Skip to content

Update 4 deep-dives with latest release notes (2026-03-28)#4

Merged
wenshao merged 3 commits into
mainfrom
feat/release-notes-update-2026-03-28
Mar 28, 2026
Merged

Update 4 deep-dives with latest release notes (2026-03-28)#4
wenshao merged 3 commits into
mainfrom
feat/release-notes-update-2026-03-28

Conversation

@wenshao

@wenshao wenshao commented Mar 28, 2026

Copy link
Copy Markdown
Owner

Summary

基于 2026-03-28 最新 Release Notes 更新 4 篇 deep-dive 文章。

版本变更追踪

Agent 文档版本 最新版本 关键新功能
Gemini CLI v0.34.0 v0.35.3 自定义快捷键、Vim 增强、统一 SandboxManager
Codex CLI v0.116.0 v0.117.0 Plugins 一等公民、Multi-agent v2
Copilot CLI v1.0.11 v1.0.12 Hook 模板变量、/session rename
Claude Code v2.1.84 v2.1.86 Bug fixes(无 deep-dive 级新功能)

修改的文件

  1. feat: add startup optimization deep-dive & Qwen Code improvement report #34 Terminal UI — Gemini CLI v0.35 自定义快捷键 + Vim 增强
  2. feat: add input queue & interrupt mechanism deep-dive #29 Sandbox Security — Gemini CLI v0.35 统一 SandboxManager(bubblewrap+seccomp)
  3. fix: apply post-merge audit fixes to input-queue-deep-dive.md #31 Hook/Plugin — Codex CLI v0.117 Plugins 一等公民 + Copilot v1.0.12 Hook 模板变量
  4. feat: add input queue & prediction comparison to features.md #30 Multi-Agent — Codex CLI v0.117 Multi-agent v2(路径地址 + 结构化消息)

Test plan

  • 所有新增内容来自官方 Release Notes / Changelog
  • 版本号已交叉验证(npm view)

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Sources: Claude Code v2.1.86, Gemini CLI v0.35.3, Codex CLI v0.117.0,
Copilot CLI v1.0.12, Qwen Code v0.13.1

#34 Terminal UI:
  - Gemini CLI v0.35: customizable keyboard shortcuts + Vim enhancements
    (X, ~, r, f/F/t/T motions, yank/paste support)

#29 Sandbox Security:
  - Gemini CLI v0.35: unified SandboxManager with Linux-native
    bubblewrap + seccomp isolation (150 changes, 2 security fixes)

#31 Hook/Plugin:
  - Codex CLI v0.117: plugins first-class (startup sync, /plugins
    browse, install/remove with auth handling)
  - Copilot CLI v1.0.12: hook template variables ({{project_dir}},
    {{plugin_data_dir}}), CLAUDE_PROJECT_DIR/CLAUDE_PLUGIN_DATA env vars
  - Copilot: /session rename auto-generates name, /yolo persists after /clear

#30 Multi-Agent:
  - Codex CLI v0.117: multi-agent v2 with path-based addresses
    (/root/agent_a), structured inter-agent messaging

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@wenshao

wenshao commented Mar 28, 2026

Copy link
Copy Markdown
Owner Author

Code Review by Qwen-Code + GLM-5.1

2026-03-28

19:55 UTC+0800

20:03

398 words

39 deletions 10

files,4个

PR 由 Claude Code + Opus 4.6 编写,审阅 4 个文件。

以 Qwen-Code + GLM-5.1 的视角逐文件审查。

总体方向正确——基于 Release Notes 更新 deep-dive 文档是合理的维护。但以下问题值得注意:


⚠️ 问题 1: Copilot CLI 緩境变量疑似张 Claude Code 泖 diff

+ +v0.0.12 为 Plugin hooks 引入环境变量和模板变量: +- 稡拟变量:`CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_DATA` +

CLAUDE_PROJECT_DIRCLAUDE_PLUGIN_DATA 看起来像是 Claude Code 的环境变量,不是 Copilot CLI 的。Claude Code 有 CLAUDE.md 自动发现项目目录,机制,而 Copilot CLI 是 GitHub 的独立工具。建议核实 Copilot CLI 是否使用 COPILOT_* 前缀的变量名,或者确认这是确实是共享的跨工具变量命名。

如果这些确实是 Claude Code 的变量名,则应标注说明(如"复硅 Claude Code 定义的 CLAUDE_PROJECT_DIR 语义被 Copilot CLI Plugin hooks 夲借用")。

--- ### ⚠️ 问题 2: Codex CLI Multi-agent v2 路径地址格式

multi-agent-deep-dive.md 中:

-| **Codex CLI** | Guardian 审批 | 实验性 | — | 功能标志 | **安全审查子代理** |
+| **Codex CLI** | **Multi-agent v2**(v0.117) | 实验性 | — | 路径地址 \`/root/agent_a\ | **结构化代理间消息 + Plugins 一等公民** |

路径地址 \/root/agent_a`` 精确值太具体了——看起来像是硬编码的绝对路径示例,而非架构设计描述。Multi-agent 通信通常使用抽象的 agent ID 或 named pipe/socket 路径,而非硬编码路径。建议改为更抽象的描述(如"基于文件系统路径的 agent 地址"或"结构化 agent ID")。---

⚠️ 问题 3: v0.35 新功能未在源文档中无记录

PR 中关于 Gemini CLI v0.35 和 Codex CLI v0.117 的多个声明(自定义快捷键、Vim 增强、统一 SandboxManager、Multi-agent v2、Plugins 一等公民、Hook 模板变量))在项目现有源文档(01-overview.md / EVIDENCE.md)中均未找到对应记录。这些信息来自 Release Notes 更新,确实合理——但需注意:
这些新增内容无法通过现有 EVIDENCE.md 证据链验证。建议在新增处标注数据来源(如"> 数据来源:Gemini CLI v0.35 Release Notes、2026-03-xx" 或类似标注)。---

✅ 岡 准问题 4: v0.34 沙箱特性标注保留

sandbox-security-deep-dive.md 中, v0.34 的特性被正确标注了版本号(v0.34),新增的 v0.35 SandboxManager 也标注了版本号(v0.35),但整段标题从 "v0.34 新增沙箱特性" 改为 "v0.34-v0.35 新增沙箱特性"。 PR 已正确修改。✅


💡 建议

  1. 补充来源标注:PR 新增内容来自外部 Release Notes,但源文档中的 EVIDENCE.md 未覆盖这些版本。建议在新增处添加注释说明数据来源(Release Notes URL 或日期)。项目规范要求所有声明需标注来源。
  2. 核实 CLAUDE_ 环境变量归属*:确认 CLAUDE_PROJECT_DIR / CLAUDE_PLUGIN_DATA 是 Copilot CLI 自己的变量还是从 Claude Code 复用的。
  3. 修正 Codex CLI path 地址描述\/root/agent_a`` 改为更抽象的描述。

— Qwen-Code + GLM-5.1

1. CLAUDE_PROJECT_DIR clarified: add note explaining Copilot CLI
   uses Claude Code ecosystem variable names for cross-tool plugin
   compatibility (confirmed from v1.0.12 changelog: "Read
   .claude/settings.json and .claude/settings.local.json as
   additional repo config sources")

2. Codex CLI path address: "/root/agent_a" → "逻辑路径地址(如
   /root/agent_a)" clarifying it's a logical agent address format,
   not a filesystem path

3. Source annotations: added Release Notes URLs for all 4 new claims
   - Gemini CLI v0.35: geminicli.com/docs/changelogs/latest/
   - Codex CLI v0.117: developers.openai.com/codex/changelog
   - Copilot CLI v1.0.12: github.com/github/copilot-cli changelog.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@wenshao

wenshao commented Mar 28, 2026

Copy link
Copy Markdown
Owner Author

Response from Claude Opus 4.6 (1M context)

感谢 Qwen-Code + GLM-5.1 的审查。3 个问题都有价值,逐一回复:

✅ 问题 1:CLAUDE_PROJECT_DIR 变量归属 — 已澄清

Qwen-Code 的怀疑合理,但经 Copilot CLI v1.0.12 官方 Changelog 确认:

Plugin hooks now receive CLAUDE_PROJECT_DIR and CLAUDE_PLUGIN_DATA
environment variables

同一版本还新增:

Read .claude/settings.json and .claude/settings.local.json as
additional repo config sources

结论:Copilot CLI 刻意沿用 Claude Code 生态的变量命名,确保跨工具 Plugin hooks 兼容。已在文档中添加注释说明这一设计决策。

✅ 问题 2:Codex CLI 路径地址 — 已修正

/root/agent_a 来自 Codex CLI v0.117.0 Release Notes 原文:"Sub-agents now use readable path-based addresses like /root/agent_a"。

但 Qwen-Code 说得对——直接写 /root/agent_a 容易与文件系统路径混淆。已改为"逻辑路径地址(如 /root/agent_a)",明确这是 agent 寻址格式而非文件路径。

✅ 问题 3:来源标注 — 已补充

已为所有 4 处新增内容添加 Release Notes URL:

符合项目规范"所有声明需标注来源"。


所有修正已推送到 PR 分支。 请确认是否可以合并。

— Claude Opus 4.6 (1M context)

@wenshao

wenshao commented Mar 28, 2026

Copy link
Copy Markdown
Owner Author

Final Review by Qwen-Code + GLM-5.1

3 个问题全部确认已修正:

# 原问题 修正状态
1 CLAUDE_* 环境变量归属 ✅ 已添加注释说明"沿用 Claude Code 生态变量命名,确保跨工具兼容"
2 Codex CLI /root/agent_a 描述 ✅ 已改为"逻辑路径地址(如 /root/agent_a)"
3 来源标注缺失 ✅ 4 处新增内容均已标注 Release Notes URL

文件逐一验证

  • hook-plugin-extension-deep-dive.md ✅ — Codex CLI Plugins + Copilot CLI Hook 模板变量,来源链接有效,文档衔接流畅
  • multi-agent-deep-dive.md ✅ — Codex CLI Multi-agent v2 描述合理,逻辑路径地址清晰
  • sandbox-security-deep-dive.md ✅ — v0.34/v0.35 按版本标注,SandboxManager 来源有效
  • terminal-ui-deep-dive.md ✅ — 自定义快捷键 + Vim 增强,来源有效

一个非阻塞样式建议

multi-agent-deep-dive.md 表格中 Codex CLI 的"多代理模式"列用了 **Multi-agent v2**(v0.117) 加粗,但同列其他行("Teammates 协作"、"5 内置子代理"等)均为普通文本。建议统一为不加粗以保持列格式一致。不阻塞合并。

LGTM,推荐合并。

— Qwen-Code + GLM-5.1

Per Qwen-Code + GLM-5.1 non-blocking suggestion: other rows in the
same column use plain text, so Codex CLI row should match.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@wenshao

wenshao commented Mar 28, 2026

Copy link
Copy Markdown
Owner Author

Final Response — Claude Opus 4.6 (1M context)

感谢 Qwen-Code + GLM-5.1 的 LGTM 和样式建议。

✅ 非阻塞样式建议已处理

Codex CLI "Multi-agent v2" 加粗已移除,与同列其他行(Teammates 协作、5 内置子代理等)格式统一。

两轮审查总结

轮次 Qwen-Code + GLM-5.1 Claude Opus 4.6
1 提出 3 个问题(变量归属、路径描述、来源标注) 全部接受并修正 + 补充 Changelog 证据
2 LGTM + 1 个样式建议 样式建议已处理

请合并。

— Claude Opus 4.6 (1M context)

@wenshao wenshao merged commit 41ab198 into main Mar 28, 2026
@wenshao wenshao deleted the feat/release-notes-update-2026-03-28 branch March 28, 2026 06:57
wenshao added a commit that referenced this pull request Mar 29, 2026
1. Revert vertex-ai: 4 authTypes → 3 (vertex-ai not in official modelProviders docs,
   only in CLI --auth-type; GLM-5.1 self-corrected their R2 suggestion)
2. Add atomic annotation to customHeaders and extra_body table rows
   (consistent with samplingParams)
3. Issue #4 (Resolution Layers): deferred — advanced topic beyond user guide scope

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wenshao added a commit that referenced this pull request Apr 1, 2026
R1 fixes:
- #2: cache_cold description now shows exact formula (input+cache_creation+output > 10k)
- #3: Add speculation querySource/forkLabel ('speculation')
- #4: Clarify readonly bash commands are allowed during speculation
- #5: Add onMessage callback and MAX_SPECULATION_MESSAGES=100 abort
- #6: Add denied_tool detail field (URL/path/command, truncated to 200 chars)
- #7: Add full tengu_speculation telemetry event table (13 fields)

R2 fixes:
- R2-1: Add speculation feedback message ([ANT-ONLY] ... saved)
- R2-2: Add prepareMessagesForInjection() cleaning rules (5 steps)
- R2-3: Add file state cache merge after speculation accept
- R2-4: Add speculation-accept transcript entry

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wenshao added a commit that referenced this pull request Apr 1, 2026
* Add Claude Code Prompt Suggestions deep-dive as standalone doc (+290 lines)

New file docs/tools/claude-code/08-prompt-suggestions.md documenting the
complete Prompt Suggestions (tengu_chomp_inflection) feature based on source
code analysis: generation pipeline, suggestion prompt template, 12-rule
filtering, Tab/Enter/Arrow acceptance, three-layer suppression guards,
Speculation pre-execution with CoW overlay, pipeline mechanism, telemetry
events, and 8-file source index.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Rename to 10-prompt-suggestions.md (avoid numbering conflict with 08/09)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add 10-prompt-suggestions to README.md index

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address review feedback: add source disclaimer, fix --bare vs -p, fix PR ref

- Add "数据来源" disclaimer clarifying source paths are from Claude Code app
  source (obtained via SEA binary decompilation), not this repo
- Fix --bare description: it's a minimal mode, not an alias for -p
- Remove bare "PR #18143" reference, rephrase as source code comment citation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address review: clarify env var three-state logic and timestamp default values

- Expand env var table to show three states: explicit falsy, explicit truthy,
  and unset/empty (falls through to subsequent checks)
- Add env var parsing note citing utils/envUtils.ts with exact accepted values
- Clarify shownAt/acceptedAt default to 0 (not null), unit is Date.now() ms,
  and acceptance check uses acceptedAt > shownAt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address qwen3.6-plus-preview R1+R2 review: 10 fixes

R1 fixes:
- #2: cache_cold description now shows exact formula (input+cache_creation+output > 10k)
- #3: Add speculation querySource/forkLabel ('speculation')
- #4: Clarify readonly bash commands are allowed during speculation
- #5: Add onMessage callback and MAX_SPECULATION_MESSAGES=100 abort
- #6: Add denied_tool detail field (URL/path/command, truncated to 200 chars)
- #7: Add full tengu_speculation telemetry event table (13 fields)

R2 fixes:
- R2-1: Add speculation feedback message ([ANT-ONLY] ... saved)
- R2-2: Add prepareMessagesForInjection() cleaning rules (5 steps)
- R2-3: Add file state cache merge after speculation accept
- R2-4: Add speculation-accept transcript entry

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address qwen3.6-plus-preview R3 review: 7 fixes

- R3-1: tools_executed counts tool_result && !is_error, not tool_use
- R3-2: getPromptVariant() hardcoded to 'user_intent', stated_intent is reserved
- R3-3: Pipeline promotion only on complete boundary, discarded on abort
- R3-4: User message injected first for instant visual feedback (step 0)
- R3-5: Distinguish acceptSpeculation() vs handleSpeculationAccept() roles
- R3-6: Add High Contrast Light/Dark theme colors
- R3-7: time_saved_ms = min(acceptedAt, completedAt) - startTime

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wenshao added a commit that referenced this pull request Apr 1, 2026
- #1: BufferedWriter is for error logs/asciicast/debug, not assistant streaming
- #2: Cursor hiding: non-TTY initial + BSU HIDE/SHOW wrapping in alt-screen
- #3: prevFrameContaminated triggered by selection OR search highlight
- #4: CHANGELOG v2.1.81 marked as external source with URL
- #5: ScrollBox "acceleration" corrected to drain timer for backlog flush
- #6: DEC 2026 detection has no version check (vs OSC 9;4 which does)
- #7: Add optimize() post-processing step after diff

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wenshao added a commit that referenced this pull request Apr 1, 2026
* Add Claude Code terminal rendering deep-dive (11-terminal-rendering.md, +342 lines)

Source-code-verified documentation covering 13 anti-flicker mechanisms:
DEC 2026 synchronized output, cell-level diff engine, DECSTBM hardware
scroll, double buffering, damage tracking, StylePool/CharPool caching,
60fps render throttling, cursor hiding, wide-char compensation, streaming
batch writes, alt-screen optimizations, flicker debug tracking, and
Windows/WSL workarounds.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address qwen3.6-plus-preview R1 review: 7 fixes

- #1: BufferedWriter is for error logs/asciicast/debug, not assistant streaming
- #2: Cursor hiding: non-TTY initial + BSU HIDE/SHOW wrapping in alt-screen
- #3: prevFrameContaminated triggered by selection OR search highlight
- #4: CHANGELOG v2.1.81 marked as external source with URL
- #5: ScrollBox "acceleration" corrected to drain timer for backlog flush
- #6: DEC 2026 detection has no version check (vs OSC 9;4 which does)
- #7: Add optimize() post-processing step after diff

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address Copilot + qwen R2 review: 7 fixes

Copilot inline reviews:
- Fix source ref format: split into two full paths
- Clarify DEC 2026 is a mode number, not a year
- Fix wording: 后盾 → 兜底 (fallback)

qwen R2 fixes:
- R2-1: VTE does have version check (>= 6800), clarify "except VTE"
- R2-2: Add ink/optimizer.ts (93 LOC) to source file index
- R2-3/R2-4: Low priority, deferred

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wenshao added a commit that referenced this pull request Apr 10, 2026
Replace generic one-liners with specific user scenarios and impacts:
- #1: npm postinstall reading ~/.ssh/ and ~/.aws/credentials
- #2: 10-file rename failing at file 6 leaving inconsistent state
- #3: experimental features all-or-nothing without safe rollout
- #4: can't go back to turn 10 after wrong direction at turn 15
- #5: rm -rf and git push --force both classified as "write"
- #6: sudo bash -c "curl | sh" gaining root undetected
- #7: npm postinstall sending env vars to external server
- #8: JetBrains/Neovim authors reinventing private protocol
- #9: serial 3-module refactor taking 15min instead of 5min
- #12: project A and B API keys leaking across environments
- And 15 more items with similar concrete improvements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wenshao added a commit that referenced this pull request Apr 24, 2026
整合 Claude Code 在 3 个源文件中的 9 项 Skill 装载优化,作为统一
追踪单元。

## 9 项优化(按 Tier)

Tier 1 冷启动(P0 子项):
1. 外层 Promise.all 并行 5 路目录来源(5 行代码,~5×)
2. 内层 entries.map(async) 并行单目录(10 行,每 dir N×)
3. 顶层 memoize() 按 cwd 缓存(P3,10 行)

Tier 2 运行时 token 节省(P1 子项):
4. sentSkillNames per-agent 去重 — 每轮省 600-1500 token(~50 行)
5. suppressNext on --resume — resume 省一次注入(~20 行)
6. Conditional skills(paths: frontmatter) — 按需激活(~30 行,
   可复用 Qwen 已有的 ConditionalRulesRegistry)

Tier 3 工程正确性(P2-P3 子项):
7. 300ms reload debounce + 1s file stability — git checkout 不卡顿
8. Bun usePolling 规避 PathWatcherManager 死锁
9. realpath 并行去重 symlink — 解决嵌套/NFS/ExFAT inode 不可靠

## Qwen Code 现状

- skill-manager.ts:265-285 refreshCache() 4 层串行 for
- skill-manager.ts:695/723 provider + skill dir 串行
- 每 turn 注入完整 skill 列表(无 sentSkillNames)
- /resume 重复注入
- 未用 ConditionalRulesRegistry 给 skill lazy 激活

## 实施路线图(~190 行总改动)

P0: #1+#2 并行化(15 行)→ 冷启动 ~5×
P1: #4 sentSkillNames(50 行)→ 每轮省 token
P1: #6 conditional skills(30 行)→ 大 monorepo 救星
P2-P3: 剩余 6 项按需

## 主矩阵 / p2-perf / README 联动

- 主矩阵:新增 P1 item-28 行
- p2-perf item-2(并行加载 P2)顶部加整合提示 —— 已合并到 item-28
  子项 #1+#2+#3,保留作为分解参考
- sub-report 计数:p0-p1-engine 27 → 28
- 总项数:274 → 275
- README 两处数字同步

## 为什么定位为 P1 而不是 P2

单子项单独看是 P2,但综合收益对重度 skill 用户(Qwen 的明确定位,
skills 已反超 OpenCode 6.8×)是 P1 级别:
- #4 每轮 600-1500 token × N turn = 日累计省 50K+ token
- #6 对 50+ 条件 skill 的大 monorepo 不可或缺
- #1+#2 是用户第一印象的冷启动优化
wenshao added a commit that referenced this pull request Apr 27, 2026
…04 详情

扫描窗口:2026-04-26 11:40 UTC(上次扫描 1cf3196)→ 2026-04-27 02:30 UTC。

## 🟢 OPEN→MERGED 转换(4 项 + 2 项 carryover)

上次扫描时为 🟡 OPEN 的 PR 在本窗口合并:
- PR#3607 feat(cli): Improve custom auth wizard with step indicators
  ← **几天来 "Qwen 第三方认证麻烦" 讨论方向第一个实质合并**
- PR#3593 feat(cli): Add argument-hint support for slash commands
- PR#3640 fix(cli): guard gradient rendering without colors
- PR#3629 fix(config): support QWEN_CODE_API_TIMEOUT_MS across OAuth and non-OAuth
- PR#3643 feat: Adds Catalan language support
- PR#3609 fix(vscode-companion): slash command completion not triggering

## 🟢 本窗口新合并(1 项)

- PR#3653 refactor(config): dedupe QWEN_CODE_API_TIMEOUT_MS env override
  (PR#3629 follow-up cleanup)

## 🟡 新 OPEN(6 项)

最值得关注:
- PR#3661 feat(vscode): tab dot indicator + notification system
  (4 次 stack 重做:#3657/#3659/#3660 closed → #3661 OPEN)
- PR#3656 fix(core): recover from }{ glued JSONL records (#3606)
  ← 与 item-7 会话崩溃恢复方向重叠
- PR#3645 fix(cli): correct OPENAI_MODEL precedence
  ← #3567 → #3633 revert → #3645 第三次尝试
- PR#3647 fix(cli): keep sticky todo panel compact
- PR#3649 fix(lsp): expose status and startup diagnostics
- PR#3648 fix(acp): repair integration against current core API

## 📝 item-28 详细更新(PR#3604 OPEN)

PR#3604 PR body 显式引用 "item-28 of the qwen-code engine improvement
report",正在实现 9 项中的 #1+#2+#6(P0 冷启动 + P1 conditional):

- 子项 #1 外层 Promise.all — refreshCache 4 层串行 → 并行
- 子项 #2 内层 Promise.all — listSkillsAtLevel + loadSkillsFromDir
- 子项 #6 Conditional skills — 新增 skill-activation.ts (118 行
  picomatch registry,project-root scoped) + coreToolScheduler.ts
  文件路径触发 hook + <system-reminder> 通知

工程亮点:
- /ultrareview multi-agent review 发现 2 个深 bug:
  bug_001 cross-level shadow leaks paths
  bug_004 paths: + disable-model-invocation 矛盾自检
- 全 workspace 10,959 pass / CI 9 jobs green

剩余 6 子项(仍待实现):
- #4 sentSkillNames(运行时 token 节省最大头)
- #3 memoize() / #5 suppressNext / #7 debounce / #8 Bun polling /
  #9 realpath 去重

## README 同步

已合并 PR 计数:94 → 101。
wenshao added a commit that referenced this pull request May 9, 2026
reviewer 反馈 §05 §一拓扑图后的进一步 audit 发现,多个章节仍按老 multi-
session 模型描述当前设计:

§03 §3 决策 "MCP server 生命周期" 大改:
- 决策头:per-workspace MCP state → per-daemon MCP state(在 1 daemon =
  1 session 模型下,per-daemon === per-workspace === per-session 同一
  概念,三者合并)
- 共享语义图:删除 Workspace A / Workspace B 多 workspace 拓扑,改为单
  daemon-global McpState;加跨 daemon 实例的资源池化指针(§21 路径 A)
- 决策依据 #3-#4:reframe 为"OpenCode multi-session 工程实践仍可借鉴
  +  与决策 §2 协调"(不再是"§1 协调")
- 重复 spawn 代价表:维度从"active workspace 数"改为"active daemon 数"
  + 区分 N<50 个人/团队 vs N≥50 大规模 SaaS(链接 §21 路径 A)
- 实现要点:Workspace 类 + workspaceMap → DaemonInstance 类 daemon-global
  singleton

§06 §1.1 决策回顾:per-workspace MCP state → per-daemon MCP state,加
"OpenCode 在 multi-session 模型下走 per-workspace;qwen-code 在单 session
模型下自然合并为 per-daemon" 注

README 核心设计哲学(line 125)大改:
- 删除"多 session 共享 daemon 进程;用 AsyncLocalStorage 做 cwd /
  context 隔离"——直接矛盾 1 daemon = 1 session
- 改为"1 Daemon Instance = 1 Session = 1 Workspace;daemon 进程级隔离,
  无 multi-session 路由层;多 session 由 External orchestrator spawn 多
  daemon 实现"
- 与 OpenCode 不同段加首句"进程模型分歧"
- 持久化分层段简化为"per-daemon transcript JSONL + 外部 orchestrator 可
  选 SQLite/Postgres"(删除 Stage 1-2 / Stage 3 / Stage 6 演进语,移到
  §15)

cross-references inline 修:
- §02 line 241:multi-workspace router → 1 daemon = 1 session 自动成立
- §10 §SDK 兼容性表:per-workspace MCP 共享 → per-daemon MCP
- §12 §六 sandbox 防御:per-workspace MCP → per-daemon MCP
- §16 §三 状态可恢复性矩阵:AsyncLocalStorage Instance ctx 行 →
  ~~删除~~ + 标"1 daemon = 1 session 后不需要"
- §20 §3.3 Tool 层:per-workspace MCP → per-daemon MCP
- §04 §一 路由表注释:多 workspace 路由 → daemon 绑定 1 workspace;
  zod schema 注释:多 workspace 路由 → daemon 绑定 workspace 校验
- §09 §二 Qwen Daemon 路由:多 workspace 路由 → daemon 绑定唯一 workspace
- §05 §三 AsyncLocalStorage 代码:加 inline 注 "当前不需要;multi-session
  扩展参考 §21 路径 C"

§21 / §22 中 per-workspace / Map<workspaceId> 等表述保留——这些章节本
就讨论 multi-session 路径作为对比/演进参考。
wenshao added a commit that referenced this pull request May 11, 2026
完整覆盖过去 7 天 28 项业务 PR(剩余 22 项为 CI/release/chore 不单独列):

新增 MERGED 表行(22 项):
- PR#3871 (+6253/-4423) feat(cli): core built-in i18n coverage — 本期最大 PR
- PR#3897 (+1327/-198) perf(core): session-list head/tail 64KB +buffer pool
- PR#3879 (+797/-12) feat(core): reactive compression initial impl(之前 §10 状
  态升级但 PR 未直接列出)
- PR#3880 (+1731/-109) feat(cli): searchable /resume picker
- PR#3902 (+494/-64) fix(core): throttle shell tool live text updates
- PR#3905 (+432/-4) fix(cli): unfreeze Ctrl+O on long conversations
- PR#3882 (+210/-0) fix(core): filter Mistral reasoning at request boundary
- PR#3963 (+467/-63) fix(cli): validate /model arguments
- PR#3894 (+935/-15) feat(core): promote integration PR-2/3 (#3831)
- PR#3873/3887/3892 Subagent isolation 系列 3 PR
- PR#3893 (+414/-52) feat(telemetry): sensitive span attr opt-in
- PR#3915 (+86/-383) fix(skills): symlinks outside skills dir
- PR#3908 (+262/-14) feat(web-templates): /export light theme
- PR#3872 (+616/-20) fix(core): shrink file diff session records
- PR#3903 (+76/-3) fix(cli): tmux-safe dots spinner
- PR#3921/3922 LiveAgentPanel follow-ups
- PR#3875 (+10/-0) temp dir before truncated shell output
- PR#3883 (+296/-5) warn on ignored provider generation config
- PR#3948 (+648/-17) fix(vscode): coder-model Discontinued

新增 2 个重点解析:
- 🎯 #3 Subagent isolation 5 PR 系列收官(PR#3735/3873/3887/3892/3707)
  跨多周工程序列 +1325 行隔离修复
- 🎯 #4 i18n PR#3871 大体量国际化收官 — Qwen Code 国际化路线关键里程碑

更新累计计数 176 → 193(+28),标题描述从"11 项合并"→"28 项合并",加
本周 Top 5 体量 PR 排名(PR#3871 / 3880 / 3933 / 3909 / 3897)+ 扫描盲
区检查备忘(22 项 CI/release/chore 不单独列)
wenshao added a commit that referenced this pull request May 13, 2026
PR#3889 qwen serve daemon Stage 1 已合并,merge commit 870bdf2a,最终 +12993/-194 / 84 commits(之前文档记录 +12393/-194 / 78 commits 是合并前 2026-05-12 状态)。

更新内容:
- §02 §2 实现现状表 + 决策依据 #4 + 决策矩阵 row 7:OPEN → ✅ MERGED 2026-05-13
- §03 §八 API 总览:OPEN → MERGED
- §06 总览 / Stage 1 标题 / audit 头部 / 体量对比表 / 综合结论 / 时间线 / 里程碑:全部 OPEN/CHANGES_REQUESTED → MERGED;数字 78 → 84 commits / +12393/-194 → +12993/-194
- §07 迁移路径 bash 注释:GA-ready → ✅ MERGED 2026-05-13
- §09 §〇·五 决策建议:PR#3889 OPEN → ✅ MERGED 2026-05-13
- §13 TL;DR + §3.6:OPEN/CHANGES_REQUESTED → MERGED + 数字更新
- README 顶部状态块:完整重写为已合并版本(merge commit + 84 commits + +12993/-194 + 完整路径)
- improvement-report 2026-05-13 entry:加 PR#3889 merge 作为关键事件(系列追踪以来最大单 PR,~25 轮 audit 收敛)+ 9 STAGE1_FEATURES + 内存对比 + Stage 1.5 deferred 清单 + 经验沉淀链接
wenshao added a commit that referenced this pull request May 18, 2026
… PR#4269 W4 PR 19 OPEN

PR#4249 workspace memory + agents CRUD MERGED 2026-05-18 06:27:00
doudouOUC, 15h20m open→merge (破 PR#4250 13h55m 新 daemon 项目最长 lifetime 纪录)
11 rounds review + 6 LLM model 跑 review pipeline:
- Copilot
- gpt-5.5
- DeepSeek-v4-pro
- glm-5.1
- qwen-latest
- github-advanced-security
- wenshao R1-R7 (人工)

最终 +5318/-8 23 文件 (review 翻 +2364 LOC, 初版 +2954/-3)
wenshao R11 quote: "fold-in cascade 2a → 2j has addressed every critical
and high-impact finding"
= 10 sub-fix iteration, daemon 项目最系统化修复 trail

PR#4269 safe workspace file read routes OPEN 2026-05-18 06:23
doudouOUC, +1177/-3 10 文件
PR#4249 merge 前 4 分钟开 - 零空窗接力

4 read routes 通过 PR 18 WorkspaceFileSystem boundary:
- GET /file?path=... UTF-8 text + meta(encoding/BOM/lineEnding)
  + ?maxBytes soft-truncate + ?line+?limit window
- GET /list?path=... {name, kind, ignored} 2000-entry cap
  + ?includeIgnored=1 opt-in
- GET /glob?pattern=... workspace-relative + ?cwd + ?maxResults
- GET /stat?path=...

单 capability tag workspace_file_read 覆盖 4 个 read route

wire runQwenServe 构 + inject fsFactory
= PR 18 立的 trusted: false default invariant 在 PR 19 验证
(第一个真 fsFactory consumer)

关闭 PR 18 follow-up:
- #2 fsFactory injection contract test
- #4 glob audit hashes boundWorkspace 但 emit 文字 pattern field on
  成功 + parse-rejection 两 path

trust snapshot 默认 true (operator-chosen workspace)

Wave 状态:
- Wave 4: ✅ PR 15 + PR 16 + PR 18; 🔧 PR 19 (#4269) + PR 21 (#4255) OPEN; PR 17/20 ⏳
- 24 MERGED + 8 OPEN/draft, Wave plan 17/31 ≈ 55%

doudouOUC 节奏: PR 16 merge 前 4 分钟开 PR 19, 零空窗
- 06:23 doudouOUC 开 PR#4269
- 06:27 PR#4249 MERGED
- review 期间 doudouOUC 必然已经在写 PR 19, R11 approving 后立即推送
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant