z.ai 5 小时窗口刚重置时,上游接口整体省略两个字段,实现误判为「接口结构错误」→ Provider 整体掉线。34 轮独立 Review + 5 轮自检全部漏判——靠与原始 API 数据交叉核对才暴露。
z.ai 的配额是按 5 小时一个窗口滚动清零的。刚清零的那一刻,用量为 0,上游接口整体省略 percentage / nextResetTime 两个字段。原实现没把这当成合法状态,判成了 unexpected_shape——结果不是「显示错了」,而是整个 Provider 从监控里下线。
它只在边界时刻出现:一天 24 小时里可能只有几分钟窗口能命中。34 轮独立 Review、5 轮自动自检,测了这么多遍都没踩到这条路径。
| 上游字段 | 正常态 | 窗口刚重置(归零) | 原实现判定 |
|---|---|---|---|
| percentage | 存在 | 整体省略 | 判为 unexpected_shape → 该 Provider 下线 |
| nextResetTime | 存在 | 整体省略 | 同上,无降级路径 |
| currentValue / usage | 存在 | 存在(=0) | 未被用于兜底 |
修复(P5 / commit 02725b7):缺字段按「窗口已重置」处理,resets_at=None, unexpected_shape 收紧为真正的结构错误。修复后 5h 显示 0.0% / 100.0%,RESET 显示 —。
手工验收环节把四个 Provider 的接口数据与原始源逐字段交叉核对,才看到那两个字段整体消失。修复(commit 02725b7)后:缺字段按「窗口已重置」处理(resets_at=None),并收紧了 unexpected_shape 的判定。测试 341 passed,四家数据 4/4 MATCH,版本直接冻结 v0.1.0。
如果工程成果停在这里,它会是一次好看的技术修复。真正可贵的是它直接催生了 D26 独立验收原则,并把 AGENT_PASS / STAGE_PASS / PROJECT_PASS 三个词变成系统级词表——制度的灵感来自一次失败。