Files
PolyLoop/src/polyloop
iomgaa c9f10973ff feat(types,ports): 落成公共值类型与五个接缝的 Protocol
第 ⑤ 阶段第一块,按 0006 与 0007 落地。从依赖图的底部开始写:
这两个模块定错了上面全得跟着改。

types 装 22 个公共值类型、枚举与持久化记录。StepCompleted 带一条构造期校验——
result_id 为空当且仅当 action_outcome 也为空,两者一空一有值是结构上说不通的,
放行它等于把「有动作结果却没有意图」这档日志损坏当成合法完整步接受。
校验用显式异常不用 assert,因为 -O 会把断言整条剥掉,下游用 -O 跑的那天守卫就静默消失。

ports 装五个 Protocol 与四个只在调用往返之间存在的壳。每个接缝多一个同步
parameters(),参数快照靠它聚合——原先没有这个方法,那个快照根本调不动。
RunLog 五个字段全带默认值,所以「读一个从没写过的运行标识返回空日志」就是 RunLog()。

零业务假设那条测试第二次抓到我:StopReason 的 docstring 里写了下游的实验词汇,
另有四处直接点名下游项目。库源码点名下游本身就是 §1.1 禁的——三个下游领域互不相交,
一个业务词进来就是替其中一个做了另外两个不需要的假设。已改成中性说法加 design doc 指向。

import-linter 从此不再是平凡的绿:Analyzed 15 files, 7 dependencies,
ports → types 那几条边真的被检查了一遍,之前是 0 dependencies。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-10 00:01:24 -04:00
..