Reviewer A 独立交叉复审:B 作者 04 / 09 / 10 / 11 / 12¶
结论:PASS,仅限本报告列出的五章在本次固定快照上的源码教学语义。 2026-10-03 完成修订后重新阅读;初审发现的四项实质/API问题已经修正。初审原始 FAIL 与原文证据继续保留在 reviewer-a-initial.md,本报告不覆盖该历史记录,也不宣称全课程已经通过。
独立性:审查者 A 写作 02/03/05/06/07/08/13;这里审查 B 的 04/09/10/11/12,未编辑这些正文。作者自述修正后,我重新对照实际文件与固定源码函数,不把作者自查、构建成功或链接检查当作语义审查。
源码快照:main da00f7f5358f2949383b35c14f548bc20187d80c;release dsh-v0.2.0-rc.2 / 639ed015397290b3745d163aafe02ffee4aa3f84。范围清单与最终文件 SHA-256 在 reviewer-a-b-final-check.json;本次五章共 12 个 Mermaid、123 个 pinned-source 链接,路径/行号存在性检查为 0 错误。该机械检查补充审查,不替代以下语义证据。
初审问题逐项关闭¶
| 问题 | 复审结论 | 修复依据 |
|---|---|---|
| F-A1,10.3 main observer 修复归属错误 | 已关闭 | 正文已明确两个快照 write/edit mutation 后同步 fs/observed 仍可能抛错,main 只更新 file_path 参数描述顺序指导。逐文件 git diff 与 execute 完整函数相符;未把字段描述升级成硬校验。 |
| F-A2,12.10 未确认 MCP close 的所有权保证夸大 | 已关闭 | 正文区分 SessionResources 的 close reject 保留 entry,与 MCP scope.dispose 底层 unconfirmed close 只 log 后 resolve;明确 attach 仍需核验实际旧资源状态。不再承诺未确认旧 MCP child 必定保留席位。 |
| F-A3,12.2 reconnect 图缺条件 | 已关闭 | 图加入 enabled=false 保留失效注册、关闭无法确认停止恢复、预算耗尽移除注册与 backoff 路径;正文区分 connection generation 与 tool registration generation,并说明完整 fetch/build 后 swap。 |
| F-A4,12.6 payload 字段拼错 | 已关闭 | 正文改为 tool_name 使用真实工具名,符合 pre/post payload 的 tool_name: exec.name;无 realtool_name。 |
连续源码、状态转换和图的复核范围¶
04:完整 apps/cli/src/profile-boot.ts;packages/boot/app-boot/src/profile.ts 的 profile roots/templates/resolve/dependency traversal 与 main resolution-generation 新增上下文;preset mount 完整文件。重点复核 patch 优先级、root 创建失败 rollback、launch context 在 plugin/cmdline 前发布、appReady 只在完成 boot 且仍为当前 loader 后提交、支持 CLI 启动的 profile 与 desktop reserved 区别。两图的顺序与 revision/scope 所有权未发现剩余阻断问题。
09:LLM resolve/prepare/stream 完整函数,retry index 完整文件,DeepSeek adapter、SSE、api-key、pi-ai credential/profile snapshot 路径;TokenMeter、compaction config、region transaction、summarizer、pruner、offload;instructions、skills registry、time-context、session-reference 的生产 listener/decision 函数。复核 prepared call 绑定 registration/一次 stream、请求冻结不等于跨 retry 重用 prepared call、retry log 在 wait 前后的位置、adapter failure chunk 与 middleware throw 区别、compaction append/prune/checkpoint/end 提交顺序、typed context 可重建。三图未把 attempt retry、provider请求或 compaction 误画成无条件成功。
10:fs-local、fs-sandbox、write/edit 完整文件;sandbox-local runner selection/confine 与 profiles;subprocess-local dispose/range;SSH connection 全文件、subprocess-ssh、fs-ssh、sandbox-ssh;LSP stdio/connection 的完整配置校验、spawn/retry/cleanup 路径,terminal 配置及使用边界。复核文件版本是 stat identity/mtime/ctime tuple、写权限检查不构成读/网络围栏、候选竞争时 functional probes、宿主 runner override 受信任、managed range 与 confinement 分离、SSH 不重放副作用、LSP 不能承诺普通进程自带 sandbox。两图无剩余语义矛盾。
11:core/tools/ptc.ts 连续 run_code 主体、Node PTC runtime 完整文件、workflow runtime/host 完整文件、workflow config、Ralph 固定脚本与宿主启动/结果路径。复核 nested call 不继承 program escalation、visible binding 仍重新验证 registration、并发 body 与有序 policy/context commit、exclusive lane 等待完整 commit、未启动调用不产生 tool-call-start、子调用 drain 和日志 drain 在外层 settle 前发生、workflow ordinary failure/null 与 fatal 错误区分、pipeline 没有跨 stage barrier、timeout 不回滚副作用。三图的调度、nested权限与工作流清理时机相符。
12:MCP connection、transport、tools 的 discovery/schema/call/result/image admission 连续函数;hook runner、CC/Codex bridge 完整 index;Claude Mods registry 与 served hooks;browser runtime/SessionResources/MCP mount、Playwright/Chrome 启动插件、Stagehand 资源 drain;Cua MCP/native apply 完整文件;Cordis fiber effect/unload 清理上下文。复核两阶段 swap 非旧代恢复事务、MCP SDK 直接 spawn 不自动 ctx.subprocess confinement、tools/list 更新与 disconnect 独立、MCP task-required 明确拒绝、raw typed value/model image projection 分离、hook 基础设施容错不是默认 fail closed、Stop steer 可以无限继续、prototype Mods 非 OS sandbox、fresh desktop tokens 与 host-wide side effects。两图已把恢复控制条件与 hook 前后决定正确分开。
快照差异与实际验收限制¶
逐文件 diff 对照:profile 的 LinkedRoot/linkedRoots 已在 rc.2,main 新增 ProfileRuntimeResolution/computeLatestResolution/PluginPackages.refresh 与 reload 协调;preset mount lookup、新增 time/scheduler 与某些 error classification 变化不能写成 rc.2 npm 已拥有;write/edit 仅参数 guidance 更新。重点 PTC Node、DeepSeek/pi-ai adapter、fs-sandbox/sandbox-local、MCP与命令 hooks 的主体没有本次差异,文中未错误称为 main 新功能。
追加复签:作者 B 在前次 scoped PASS 后自行发现 04.3 linked-root 的版本归属描述仍不准确并修订;前次我也没有检出这一项,不能把它当作初次即准确。现重新执行两个固定 commit 对 packages/boot/app-boot/src/profile.ts 的完整 diff,确认原 rc.2 已有 interface LinkedRoot、RuntimeResolution.linkedRoots、linkedProfileRoots 与构造表;新增只是 resolution class/method 与 reload 协调。04.3 当前改段与该 diff 相符,重新签为本文件所述范围 PASS,更新 SHA 指纹。初审中的“main linked roots”笼统文字是旧证据记录,读者应以此追加修正为准。
本报告证明固定代码与文章/图相符。未执行付费模型、第三方 MCP、浏览器/桌面控制、SSH remote、macOS/Windows/native 全平台测试;没有全仓测试。terminal session 与 LSP frame 的每一底层 helper、所有生成 workflow guest 字符串及第三方 SDK 内部没有逐行穷尽,本报告不作相反承诺。相应平台行为仍按正文说明需要部署验收。root 实验与 18–26 章节的审查将另外记录,不能借本报告宣布全课程 PASS。
浏览器修正后追加复签:首轮全页实际浏览器发现 09.5 时序图参与者 ID Loop 被 Mermaid 解析成语法保留字;root 将该 fenced 图的 ID 改成 Driver,显示名称仍是 Agent Loop。反向把当前图内 Driver 还原为 Loop 后,全文 SHA 恰好等于上次09审查指纹 96247e8c7ed9d9a8418781007ae7921a6945beed378ea10473005ff758ef30fd,证明除了参与者命名没有改正文或其他图。重新对照 append retry→可取消 wait→retry-started→同step新尝试/abort 的箭头与源码,语义不变且准确;更新当前09 SHA。图在浏览器实际成功渲染的最终证据仍由随后重跑的 browser-check 记录,不能用语义PASS冒充渲染PASS。首轮真实FAIL原输出保留。
最后核对后续 research/browser-check.json:09 路由的全部三个图均已实际产生 SVG,41 路由/92 SVG整体0 errors。上述待执行的渲染复验已经按真实记录完成;本文五章正文除已复签的04版本差异、09 actor重命名外没有后续变更,语义scope PASS及当前指纹继续成立。