Pi 1.3.0 labs author record¶
作者:v130_labs 子代理。此文件是作者实现与验证记录,不是独立复审;需由另一位 reviewer 检查。
范围:examples(root 作者单独负责 env/chord 两文件)、docs/labs/13-core.md、docs/labs/14-sdk.md、docs/16-troubleshooting.md。固定源码:71023aec1546d6d677a65669c5665c0927ce0dd0,目录 pi-1.3.0。下载 revision=20261018-pi130。
最终实现¶
- 直接 Pi 包 pi-agent-core、pi-ai、pi-codemode、pi-coding-agent、pi-durable、pi-env 以及 chord 均精确 1.3.0;TypeBox 与上游对齐为1.3.27;更新 package-lock。研究包自身版本改为1.3.0。
- 原7个 evidence 场景仍运行;真实源句已对照固定源码(agent-session.ts 778/794等;agent-loop.ts 275),sourceCommit更新。search预览、read本次收据、submit原句/版本验收保持;wrong-claim明确表示accepted只验证citation-integrity,不代表语义质量。
- SDK checkpoint 使用真实JSONL文件,三个实例:happy后收窄工具为read_note并真正发请求保存;dispose/open新实例,省略tools恢复read_note;再次重开显式tools覆盖为search_notes。各项从实际Faux context读取tools声明。新workspace receipts为空、artifact为null,旧证据仍进入请求。
- boundaries checkpoint 调用真实Pi JSON解析器+Core:片段JSON可预览但最终argumentsError拒绝execute;schema optional字段使{}本来合法,避免“失败只是schema本来不接受{}”的伪验证。
- boundaries thinking使用公开transformMessages,构造同/异model转换并检查存储对象未变。它不是真实provider HTTP验证。
- CodeMode使用真实QuickJS worker,abort和timeout两种路径;跟踪acquireWorker/onWorkerStarted真实exit/release;失败无storeWrites,宿主signal已abort;故意忽略signal的宿主函数在worker退出后才放gate,副作用仍完成一次,展示隔离与副作用边界。未修改Worker.prototype,未用假计时器。
- Durable新增真实JSONL Harness,保存工具intent后执行外部文件append,再等待task context;close中断,重新open并resume原submission。default中断错误且外部append一次;replay:safe重跑、append两次。requestId去重输入不等于外部幂等。非幂等append被刻意标safe是反例,文档明确说明。没有coldread冒充resume、没有强杀/断电声明。
- 新增durable.test.ts和v130-boundaries.test.ts;SDK既有test同时验证恢复/覆盖。最终35 tests通过。
- 三章完全改写成任务、预测、执行、源码、改造、反例的教程;固定SHA与行范围已逐个本地检查存在。未改其他docs/scripts/mkdocs。
实际执行与原始日志¶
全部核心命令、cwd、退出码及日志文件在 labs-run/commands.json。日志为stdout/stderr原样合并;没有根据预期生成输出。安装为实际npm registry安装,未执行生命周期脚本。
最终有效结果:
| 命令 | 退出码 | 原始日志 |
|---|---|---|
| npm install --package-lock-only --ignore-scripts | 0 | 01-lock.log、02-lock-env.log |
| npm ci --ignore-scripts | 0 | 03-npm-ci.log |
| npm run check(含root env/chord文件) | 0 | 30-final-check.log |
| npm test | 0,35/35通过 | 31-final-tests.log |
| npm run demo | 0 | 11-demo.log |
| checkpoint happy/repair/missing/forged/stale/budget/wrong-claim | 各0 | 12至18日志 |
| npm run checkpoint:sdk | 0 | 19-sdk.log |
| npm run checkpoint:projection | 0 | 20-projection.log |
| npm run checkpoint:boundaries | 0 | 32-final-boundaries.log |
| npm run checkpoint:durable | 0 | 22-durable.log |
| npm run checkpoint:env | 0 | 33-env.log(root实现) |
| npm run checkpoint:chord | 0 | 34-chord.log(root实现) |
| evidence:real,无ANTHROPIC_API_KEY | 1,预期前置失败 | 23-real-no-key.log |
| core,无ANTHROPIC_API_KEY | 1,预期前置失败 | 24-core-no-key.log |
| sdk,无PI_LAB_CWD | 1,预期前置失败 | 25-sdk-no-cwd.log |
| npm audit --json | 0,total vulnerabilities=0 | 26-audit.log |
| npm ls --depth=0 | 0 | 27-direct-deps.log |
环境版本与运行日期分别在node-version.txt/npm-version.txt/run-date.txt。npm audit报告metadata.dependencies.total=123(root包不计入此项);npm ci输出added123并audited124。审计是执行时依赖数据库事实,非永恒保证。
实现中真实失败与修复¶
- 初稿check退出2(05-check.log)和新增tests退出1(06-new-tests.log):Faux构造器不接受model/provider覆盖;Durable IDs为品牌number而非string;harness.submission需context且返回Promise;node:test callback不能返回结果对象。按本地源码/实际d.ts修正。07-check=0,08-new-tests 12/12=0。
- 完整35项之前的34-test运行通过(10-tests.log),但独立boundaries命令退出13(21-boundaries.log)。取消时worker被库unref,单纯await exit Promise不能保持Node CLI事件循环。28日志是在编辑路径误指导致补丁未应用时再次运行,仍退出13;保留原始失败。
- 在等待真实exit时设置有界10秒观察timer并finally清理;不是跳过exit检查。29独立CLI退出0,新增子进程CLI测试验证此路径,31最终35 tests通过,32再次独立运行退出0。
- 两次操作性cwd错误不影响实现:一次重定向指向错误的../research路径导致shell退出1且未执行npm check;一次Python编辑使用错误相对路径导致FileNotFoundError且未修改文件。随后都使用正确目录/绝对路径重做。上述检查失败日志没有被覆盖成成功。
未验证与禁止夸大的边界¶
- 未使用真实模型凭据、未发收费API请求。Faux只替代模型,真实provider策略/质量/计费不在验证范围。
- Durable验证graceful close/reopen的新Harness实例,不是新OS进程、SIGKILL、断电、跨主机或多写者。真实intent恢复不等于external exactly-once。
- thinking验证公开转换函数,不是HTTP序列化全链路;malformed验证解析输出经Core,不是远程SSE采集。
- CodeMode验证当前Node上的实际worker及宿主边界,不证明Bun非中断native builtin或所有平台的强隔离。
- SDK资源隔离测试针对显式helper配置,cwd不是OS沙箱。新workspace为空是教学任务的设计,生产可另定义有效期。
- wrong-claim被接受是刻意展示citation-only限制;没有把业务语义评测伪装为通过。
待独立复审检查:下载包是否包含新checkpoint与全部依赖;教程中的预期和CLI实际输出是否一致;1.3 Durable和SDK接口是否与章节11/21/22对齐;源码行锚语义是否准确;生产与离线验证边界是否清楚。