独立审查 B 最终限定报告¶
结论:SCOPED PASS。签署时间 2026-10-03T00:59:07.087976+00:00。
本审查员是04/09/10/11/12作者;本报告独立审查其他作者的 14/15/16/17 与 root 的 18/19/20/26。作者本人B稿的验收归 A 的独立报告,不把本人修稿算作独立审核。主源码固定 da00f7f5358f2949383b35c14f548bc20187d80c,发布固定639ed015397290b3745d163aafe02ffee4aa3f84 / 0.2.0-rc.2。
审查中发现与关闭的问题¶
初审原文保存在 reviewer-b-initial.md,没有覆盖首次发现的问题。
| 问题 | 级别 | 修正与复验 |
|---|---|---|
| 15.8交付工具写成present_files | P1 | 当前为present;main/rc.2 tool-present登记一致 |
| 14.2遗漏官方SDK adapter fallback | P2 | 明确deepseek-official缺route时动态挂API-key plugin,其他未知route失败;不补齐其他能力/凭据 |
| 20.4 Python源码路径不存在 | P1 | 改为冻结rc.2的python/sdk,真实目录存在 |
| 20.3 demo声称打印不存在字段 | P2 | 按实际程序写finalResponse/sessionId/requests/eventTypes,完成原因由测试核验 |
| 20.3把两轮测试说成单轮demo | P2 | 明确sdk-runtime.test连续两轮用例 |
| 26.5更新命令引用不存在的origin/main | P1 | 改origin/master;真实origin/HEAD指master,refs存在 |
| 26表hook/mod变化过度概括 | P2 | 明确命令hook主体延续、claude-code-mods及UI为main新增,rc.2没有这个包 |
| 26Python较低版本被表述为时间先后 | P2 | 改发布面未同步到npm rc.2,不从版本号推导发布日期 |
| 26解析方法名模糊 | P2 | 改ProfileRuntimeResolution.computeLatestResolution()/PluginPackages.refresh(),名字与真实实现一致 |
版本续审也发现本人04.3把linkedRoots误说成main新增;它在rc.2已经存在。作者已拆开同有linkedRoots与main新增recompute/HMR方法,A重新读两commit完整diff并追加复签。这个自有稿问题不由本报告自行授予PASS。
实际证据与边界¶
独立运行11项contracts与6项sdk-runtime测试,17/17 PASS:插件注册/卸载、provider换源、schema与业务验证、pre/post gate、已取消调用、异步waterfall、快照复制;真实rc.2 dsh+SDK+Messages/SSE、3HTTP/2tool、V4正常收尾日志、未知bash无文件副作用、步骤预算、连续两轮、AGENTS/SYSTEM sentinel、HTTP401错误结算。
Python vendor五个文件逐字节和SOURCE.json SHA256对照rc.2源码一致。本人未执行Python集成,不把作者或其他审查员的运行记录转记成本人测试。已独立联网查询官方deepseek-harness-sdk/deepseek-harness-runtime-bin元数据,两包版本0.1.5rc1、project URL指官方仓库;正文现在列精确官方distribution名与PyPI链接。
真实git diff独立复算3925 files changed / 50228 insertions / 32381 deletions,与26一致。确认SDK/Python实现无此区间实现diff(README另有变化)、两边Session writer V4、schedule工具提取、write/edit仅file_path顺序描述变化、命令hooks主体未变、ClaudeJSMods新增、linkedRoots在rc.2已存在以及main新增ProfileRuntimeResolution/refresh。
108个冻结GitHub源码链接的路径/行号范围与代码fence配对检查通过;这些机械检查辅助人工代码核验,不能代替语义审查。核对实际安装包:dsh/SDK/tools/agent/session/llm均0.2.0-rc.2,Cordis4.0.4与Schemastery3.18.4,例子使用公开SDKprofile+patch而非私有启动器。
本结论限定源码/API/版本与上述已存在实验文件。不包括网站render、下载ZIP与assets、下载后复建、nginx/HTTPS、真实付费模型、WebBrowser/Electron跨平台、OAuth、MCP外部server、SSH、LSP、nativeACL、语音和断电恢复。root与其他审查承担各自明确的剩余范围,不能据本报告把未验平台写成全通过。
第16章修图独立复验追加签署¶
追加时间 2026-10-03T01:06:59.489202+00:00。真实浏览器首轮发现16.7图中 actor ID Loop 与 Mermaid语法冲突;首轮失败保留在 research/browser-check-initial.json 与 research/browser-run-initial.txt,不覆盖失败记录。root改为 Driver 后,本审查员重新阅读16.7正文、时序图与冻结源码 session-checkpoint-policy/src/index.ts,确认仍表达先记录call、flush失败不dispatch、成功后执行body、记录result并在下一请求边界flush的原有顺序。
将修图内 Driver 反替换为 Loop 后,文件SHA256精确等于上一轮指纹,证明仅actor标识改动;其余23项文件指纹均未变化。限定源码/API PASS保持,下面与JSON记录已更新16章SHA256。本人此项复验不宣称已完成修订后浏览器render;root下一轮真实浏览器验收负责该范围。
签署指纹¶
指纹用于标明本轮实际检查的内容;未来修改任一文件需评估影响并重验。机器记录为 reviewer-b-final.json。
| 文件 | SHA256 |
|---|---|
docs/14-sdk.md |
7403a8112ae06844301076d751095031181aa6d21c0a21ba03f9d8f4215c138a |
docs/15-ui-and-api.md |
29c4f3f8a20c46d70c1c9de1c2ff8ff2d6b26a8ef8274481630be2b700b3e9be |
docs/16-storage-and-migrations.md |
85c4c8b8464e21cab7fdc23374da473f1cf7ffedd82c85e9ddda846587b40456 |
docs/17-human-and-automation.md |
509b31d29150c01e79bef3d70deea4662f26c0c859e1edae4717ffbdca3fe022 |
docs/18-own-plugin.md |
318de2a8c2de8dd8542c8e996933bfc901025f5f625b38d981cc5dcc71cf38de |
docs/19-own-agent.md |
77f3678aa3528ee15c70e9a7a2ae7656ea568572ba44ea5390ec3ed1bde8e6ad |
docs/20-sdk-labs.md |
0b350e1c278a75a515b3799d59f0e725342253c09276be8e620a8af586b49ffd |
docs/26-version-delta.md |
f5c01756160a27f2b669a0a2c070769cea1f4f908a91e129551963f82e302dd3 |
examples/src/note-service.ts |
a1a666c61f6a7e76ca4c19f18490233464e839cf27225c9a98d4ad56c5edf66d |
examples/src/memory-notes.ts |
30518f79096842f6c157d69993e5652f1f125790c48f13a82a1812d65595e04b |
examples/src/json-notes.ts |
1298a22f5eab45d1bbf268fbeba87092117911cf2505e2f5ce86463e612ca9a6 |
examples/src/notes-tools.ts |
c2ada5cb12f3e383ccf20e97033935a7ef1558e749f627da9b2473fccea5d6d0 |
examples/src/composition.ts |
f066e083b1eac059222ea30508cbc42867518808df26761b8708187fa2030c52 |
examples/src/mock-server.ts |
f6c32713cd87fd033c5ad55e79d1c14d9120ce030c8249a9f55853cb56b80ff1 |
examples/src/offline-demo.ts |
acb9d528a85a4014548c87b999ed912ba370f3a78ad247ce3a23323cdfb6cec1 |
examples/src/python-demo.ts |
7b3935c1b74ee4dbdf146ffee96a931fb7ecf36dd35692ec389fe1b733aba079 |
examples/src/ask-agent.ts |
c73eb8ccbb1f0231a41db53d18e72f1aa138cfcacf81337199e22e7bc31729e6 |
examples/python/notes-agent.py |
c4b065a1ffddef3fa121eed258ae47309f8cc80083ecdcaf614eb28ee97d089f |
examples/python/source_vendor/SOURCE.json |
162807b069e325959e0b16c0c7205be326f70fa47c453949a1ec98e9c178f2c5 |
examples/test/contracts.test.mjs |
7376b4bad2f3d3994e7c50762e679564d3b7d35a9a47b765651681b4be22538d |
examples/test/sdk-runtime.test.mjs |
ee8a7321658c7ecbbcb972ef04645021163032ae6b97d52153d02d894b2afe24 |
examples/test/python-runtime.test.mjs |
0f89b2dd96fdc7f32c31585f85e6f0e58fba2fb8dbfda29ad9c1a962c1b278a0 |
examples/package.json |
06ef3721522762f9447228f0131467d8121ff0c72546dd940350217ad023622e |
examples/package-lock.json |
e19594f7749708f26c6aa78546c99cdfda03d8fd286cef7396c1460e5e398e0e |