From 6196dbdafcf2d282466de50c5740e21d93a9c473 Mon Sep 17 00:00:00 2001 From: t Date: Mon, 3 Aug 2026 14:12:42 +0800 Subject: [PATCH] docs: close out the three-way review backlog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit F8, F9 and F15 landed, so §7's table has no open findings left. Records the second batch's discoveries — the event-envelope bug turned out to be the narrow case of a broader one (every item without a payload.message was dropped on resume), the protocol never carried reasoning at all, and it could start/read/resume a thread but not enumerate one. What remains is written down rather than implied: the sidebar's archive and delete buttons still go through Tauri, and the Linux bwrap sandbox has not had the empirical pass macOS got. Co-Authored-By: Claude Opus 5 --- docs/THREE_WAY_REVIEW.md | 55 ++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/docs/THREE_WAY_REVIEW.md b/docs/THREE_WAY_REVIEW.md index e923a81..b908f25 100644 --- a/docs/THREE_WAY_REVIEW.md +++ b/docs/THREE_WAY_REVIEW.md @@ -240,24 +240,24 @@ AskUserQuestion、模式/模型/effort 下拉、Inspector、FilePanel(Source/D 本文 §4 的清单是 2026-08-02 的快照。已落地的部分记录在这里,**不回改上面的快照**—— 让一份评估随实现悄悄变形,正是它自己批评的那种漂移。 -| 发现 | 状态 | PR | -| --------------------------------------------- | ------------------------------------------------- | ---- | -| F1 `--help` 宣传 5 个不生效的 flag | ✅ 已从 help 移除并在使用时告警 | #217 | -| F2 `--bare` 文案错误 | ✅ | #217 | -| F3 版本号不一致 | ✅ 全部对齐 0.2.0 + 一致性测试 + release 补 stamp | #217 | -| F4 定位叙事矛盾 | ✅ | #217 | -| F5 沙箱默认关 | ✅ 默认 `workspace-write` | #226 | -| F6 `mode` 混表达两件事 | ✅ `--sandbox` 正交轴 | #226 | -| F7 桌面 review 能力无出口 | ✅ Changes 面板 | #220 | -| F8 恢复丢结构化 item | 🔄 未做 | — | -| F9 丢弃 reasoning | ✅ CLI 已流式展示(桌面仍丢) | #218 | -| F10 工具结果硬截断 200 字符 | ✅ 改为中段省略 | #218 | -| F11 审批无 diff 预览 | ✅ | #218 | -| F12 `upgrade` 泄漏内部文档编号 | ✅ | #217 | -| F13 图片输入空壳 | ⚠️ 有意保留(DeepSeek 无 vision 后端) | — | -| F14 不读 `CLAUDE.md` / `~/.claude` | ✅ 就地读取 | #227 | -| F15 协议缺 `thread/list` / `fork` / `archive` | 🔄 未做 | — | -| A 桌面 0 个 slash 命令 | ✅ 命令面板 | #219 | +| 发现 | 状态 | PR | +| --------------------------------------------- | ------------------------------------------------------ | ----------- | +| F1 `--help` 宣传 5 个不生效的 flag | ✅ 已从 help 移除并在使用时告警 | #217 | +| F2 `--bare` 文案错误 | ✅ | #217 | +| F3 版本号不一致 | ✅ 全部对齐 0.2.0 + 一致性测试 + release 补 stamp | #217 | +| F4 定位叙事矛盾 | ✅ | #217 | +| F5 沙箱默认关 | ✅ 默认 `workspace-write` | #226 | +| F6 `mode` 混表达两件事 | ✅ `--sandbox` 正交轴 | #226 | +| F7 桌面 review 能力无出口 | ✅ Changes 面板 | #220 | +| F8 恢复丢结构化 item | ✅ resume 走 thread 快照的 items | #229 | +| F9 丢弃 reasoning | ✅ CLI 流式 + 桌面折叠块(协议新增 `reasoning.delta`) | #218 · #230 | +| F10 工具结果硬截断 200 字符 | ✅ 改为中段省略 | #218 | +| F11 审批无 diff 预览 | ✅ | #218 | +| F12 `upgrade` 泄漏内部文档编号 | ✅ | #217 | +| F13 图片输入空壳 | ⚠️ 有意保留(DeepSeek 无 vision 后端) | — | +| F14 不读 `CLAUDE.md` / `~/.claude` | ✅ 就地读取 | #227 | +| F15 协议缺 `thread/list` / `fork` / `archive` | ✅ 三方法 + `threadManagement` capability | #231 | +| A 桌面 0 个 slash 命令 | ✅ 命令面板 | #219 | ### 实现过程中额外发现(快照里没有的) @@ -274,12 +274,23 @@ AskUserQuestion、模式/模型/effort 下拉、Inspector、FilePanel(Source/D - **`format:check` 不覆盖 `.css`**:一个 postcss 解析不了的样式表能通过格式门禁;只有 Playwright 旅程能发现。(本 PR 已把 css 纳入 glob) +### 第二批实现中额外发现 + +- **桌面事件信封只是第一处**。`item.completed` 里**不带 `payload.message` 的 item 全部被丢弃**—— + approval / ask_user / error / review_finding 由 app-server 忠实持久化,然后再也不显示; + 恢复会话看不到自己的 review findings。(#229) +- **协议根本不传 reasoning**,只有 `reasoningTokens`。桌面不是投影 bug,是线上没有东西可投。(#230) +- **协议能起、能读、能恢复线程,但不能枚举线程**,所以想做 thread picker 的客户端只能自己去读 + session 目录——桌面走 Tauri 命令,自带一套行结构和排序。(#231) +- **rebase 冲突解决要做结构校验**。两次"保留双方"的正则合并分别吃掉了一个 CSS 右花括号和一个 + `describe()` 结尾;"没有冲突标记了"不等于文件还能解析。两次都是 CI/Playwright 抓到的。 + ### 仍未做 -- **F8 / 建议 5** —— 恢复会话时重放结构化 item(走 `thread/read` 的 items 而非消息投影)。 -- **F15 / 建议 6** —— 协议补 `thread/list` / `archive` / `fork`,消除客户端两套读路径。 -- 桌面端仍丢弃 reasoning(CLI 已修)。 -- Linux (bwrap) 侧的沙箱模式只共享了解析逻辑,**没有在 Linux 主机上做过 #226 那样的实测**。 +- 桌面侧栏的 archive / delete 仍走 Tauri。`thread/archive` 已经服务,但按钮还没改用它—— + 这是"消除第二个读取者"的后半截。 +- **Linux (bwrap) 侧只共享了 sandbox 模式解析,没有在 Linux 主机上做过 #226 那样的实测。** +- 图片输入仍是空壳(有意保留:DeepSeek 无 vision 模型)。 ## 附:Codex 侧信息的可信度声明