84ee6dee84
Records what the two Codex review rounds found, which findings held up under verification, and how each was resolved -- including the one that changed docs rather than code. Also lists the evidence behind the completion claim: suite counts, coverage, the 19-minute real-wait Redis run, and the import contract.
2.2 KiB
2.2 KiB
type, node_id, title, date
| type | node_id | title | date |
|---|---|---|---|
| review | review:issue14-branch-review | 整分支审查: issue #14 熔断等待档 | 2026-08-20 |
整分支审查: issue #14 熔断等待档
- 范围:
feat/issue-14-circuit-open-policy,296c765..5a025b6(8 提交,src 6 文件 + tests 5 文件) - 审查方: Codex 全新上下文只读审查(两轮: 独立验收 + 整分支审查)
- 结论: needs_changes → 修正后 approved;Critical 0 项
发现与处置
| 级别 | 发现 | 核实 | 处置 |
|---|---|---|---|
| Important | circuit_open=wait + 持续 force_open 实际抛 retry_exhausted 而非文档声称的 stalled |
成立。冷却结束后放行的探针是真实尝试,失败照样烧一格 max_attempts;审查方以单源 + 连续 SourceDeadError("401") 复现,本地补测试复现一致 |
改文档不改代码——该行为符合 issue #8 确立的"划分依据是谁消耗重试预算"。修正 CHANGELOG / README / 设计 §4 行为矩阵 / 计划 T5,并补 test_wait_does_not_exempt_probes_from_the_retry_budget 钉死 |
| Minor | 计划要求进入/退出等待各一条日志,实现只有进入那条 | 成立 | 保持一条,修计划措辞: 每轮等待各自留痕已可还原时间线,醒来后若仍被拒会立刻打下一条,补"醒来"只会让日志量翻倍 |
| — | 上一轮独立验收挑出计划 _nap 伪码下界与实现不一致(poll_interval_s vs jitter) |
成立 | 实现是对的(用 poll_interval_s 会把既有 quota 轮询的 rng→0 半边从 0.5p 抬到 1.0p),已回填计划 |
审查方两轮均确认: T1 收敛行为等价、六个 retry_after_s 出口齐备、备忘污染闭合、取消穿透与 permit/pacer 配对无泄漏、缺省档控制流不变。
验证证据(本会话工具输出)
- 全套件
pytest tests/ -q: 980 passed, 25 skipped, 36 deselected(基线 967 passed;+13 为新增用例) - 覆盖率
make test: 总 94%(admission.py93%、config.py99%、memory/breaker.py96%) - Redis 时间语义全变体
-m slow: 18 passed in 1151s(19 分 11 秒,真实等待不缩放),含本次新增 4 个 make check与lint-imports: 全绿,Contracts: 1 kept, 0 broken