Pi 1.3.0 独立交叉复验:实验作者检查其他作者正文¶
结论:本报告限定范围内通过最终复验。2026-10-18,固定源码 71023aec1546d6d677a65669c5665c0927ce0dd0,课程修订 20261018-pi130。审查者 /root/v130_labs。
独立范围与证据¶
独立检查 20 篇正文:index、01–04、source/05–11、labs/12、labs/15、17–22;逐张检查其中 28 个 Mermaid 图。另检查 root 编写的 Env/Chord 两个实际 fixture。22 个输入文件的 SHA256 记录在 labs-review-files.json。
本审查者自己的 13、14、16 章、examples 主体与作者测试均不在独立签署范围。labs-author.md 和其中 35 项测试是作者记录,不被本报告改称独立运行。本报告也不是第四位非作者的整站独立审查。
完整逐章覆盖和问题原始记录见 labs-review-initial.md。核查方法包括调用入口、状态变化、错误路径、消费者及图中条件/先后/并发关系,不仅检查链接文字。
已发现问题的关闭依据¶
| 问题 | 修复后复验 |
|---|---|
| L1:08 malformed JSON 图绕过 prepareArguments | 图已统一经过 prepareArguments 再 validation,正文明确错误标记保留、prepare 无业务副作用;与 agent-loop.ts 的 prepareToolCall 和 validation.ts 一致 |
| L2:22 reload 漏 commit 自身失败 | 图补 Host terminal fail,正文区别提交前 rollback 和半发布失败;与 reload.ts 574–596 的 host.fail 相符,不宣称任意失败都能回到旧世界 |
| L3:20 worker 上限作用域不明 | 已明确 coding-agent Code Mode 集成;独立 pi-codemode 的 acquireWorker 仍由宿主配置;与09、15的描述一致 |
| L4:22 背压计量的修正仍泛称编码字节 | 进一步追到 Link.send:WebSocket 文本使用JS字符串 length,packed 二进制使用 byteLength;Connection 累加返回大小并在 ack 消费,IPC返回undefined视为0。正文已准确列出单位和ack条件 |
| L5:15.5 取消图先后颠倒(第四位独立审查发现,本初审漏识别) | 已复核修正后的 pending.controller.abort→清pending→channel.stop→逻辑resolveResult。launcher stop不等actual exit;新图par不承诺settled/exit的固定先后,也不声称远端已取消 |
复验同时覆盖其他审查带来的最终修订:07 split-turn 图显式串起历史摘要/旧摘要复用→turn-prefix;新增 serializeConversation 省略 thinking 的说明与 utils.ts 106–154 一致。21 Connection 图准确使用 unknown / lost:true,不是虚构 lost error code。22 activation 图表达 resource open/reference readiness 并行、全部 settled 后决定失败,说明 pendingCodeVersion 候选才延迟 runtime。
核心设计复核结果¶
- Core 与 SDK:最终 JSON 错误不能由 partial 参数蒙混执行;Core 的 before hook 在 schema 后,改参后不自动二次校验。SDK 的 public message_end 在内部 append 之前,异步 public observer 不是磁盘屏障。active tool 恢复、显式覆盖和 canonical projection 按调用链核对。
- Context:active branch、context edit、compaction checkpoint 及 provider 适配是不同步骤。分支导航本身不持久化 leaf;split-turn 摘要请求按顺序;system checkpoint 来自重放,摘要不包含全部 thinking,不能替代审计和业务 receipt。
- Durable:Session 有写 commit 先 Storage、后 adopt、后发布;取消不能打断已送入 Storage 的结算。ToolTask 保存 intent 后才 execute,恢复要求保存/当前 replay 双 safe;nested calls、requestId 与外部幂等各自作用域不同。scheduler 的 completing/owned work、abandonOnRestart、bottom-up abort 和 registry snapshot 已核对。Code Mode journal 在交付前写入,恢复重跑而非 JS 堆快照。
- MCP/CodeMode:等待共享授权后再次检查 signal,取消不等于撤销远端副作用;close 不为 DELETE 刷新 token。worker 逻辑结果与实际退出分开,容量释放跟随 exit;集成 store 的成功提交不回滚宿主工具副作用。
- Env:RemoteExecutionEnv 消费 Connection 的 session/request 生命周期;cwd 是路径基点。SSH token 是同步标记,主机密钥仍须可信接入;命令 timeout、context abort、cleanup kill、Connection close 不等同。watch 断线重建报告 overflow,不承诺事件无遗漏。
- Chord:对象身份包含规范化 input/principal,view object 与 reference 不同;内部 self.get 使用 host 身份,远端结果返回不是状态投递屏障。activation 的 synchronous factory、并发 open/ready、hydration、parallel init、runtime 顺序符合实现。reload 的 prepare/gate/migrate/rollback/commit/retire 及致命 commit 失败已分别核查。readiness timeout 不被本报告扩展为强行中断任意不协作 resource.open 的保证。
独立运行与结构核查¶
| 实际运行/核查 | 结果 | 证明范围 |
|---|---|---|
node research/v1.3.0/labs-review-run/chord-identity.ts |
exit 0 | 实际 memory links;同项目另一个 reference 共享 rows,不同 project 隔离;owner/guest、schema 和 variant 拒绝仍通过 |
node research/v1.3.0/labs-review-run/env-limits.ts |
exit 0 | 实际 Linux daemon;maxEntries=0 返回空且 truncated;永久关闭连接后读取失败,错误 code=unknown;原读写/timeout/pre-abort 检查仍通过 |
| 固定源码链接/行范围 | 149 处,0 错误 | SHA、路径及锚点在固定源码内,不替代语义审查 |
| 最终 17 reader 表 | 80 项,行数均与固定源码一致 | 生成表已按最后 utils reader 和 submissions 241/session 1081 行范围修订复核 |
| Mermaid 清单 | 28 张,全部语义核对 | 见逐章初审矩阵及 structural-check.json 清单;不冒充浏览器渲染验收 |
独立探针原件的仓库路径是 research/v1.3.0/labs-review-run/chord-identity.ts 和 research/v1.3.0/labs-review-run/env-limits.ts;prepare 可将这些原件复制到公开资产/附录。原始 stdout 与退出码在 labs-review-run/*.log、commands.json;结构结果在 structural-check.json。运行时暂时链接该探针目录的 node_modules 到 examples/node_modules,结束后移除链接。探针代码公开,供重跑反例;未改写 root 原 fixture。
仍未验证与交付边界¶
未运行付费 provider、真实 SSH/公网 MCP/OAuth、真实 WebSocket 认证、跨 Host reload 故障注入、Bun 不可中断 built-in、全部操作系统、Durable 进程强杀/断电/磁盘故障及上游全仓测试。没有以自己编写的离线 Faux 测试证明模型推理质量。
18 章的最终在线收据是发布后产生的证据;本报告不声称公网已完成,也不以尚未发布的报告链接代替检查。19 章按 prepare→冻结→复审→构建→发布组织,不把本地构建成功当公网一致。最终指纹只绑定本报告独立检查的 22 个文件;任何后续变化需要对应复核。
最终增量复验:15.5¶
第四位独立审查指出原取消图顺序错误后,重新阅读 docs/labs/15-production.md、固定源码 packages/codemode/src/runtime/execution.ts 385–447、runtime/host.ts 12–76,以及 coding-agent extensions/codemode/execute.ts 500–533。当前正文/图与执行者、worker launcher 和容量消费者一致。报告承认本初审漏识别此项,不把第四位发现计为本审查者原创发现。只更新15的SHA;其他21个输入未变。此次是针对修订的源码复核,没有重复运行测试,也没有新增运行保证。