Files
PolyGateway/research-wiki/plans/governance-backend-error.md
T
iomgaa 1fa91cf73d docs: add the implementation plan for issue #7
Five tasks, with the ARCHITECTURE section 6.1 revision first so the code
never contradicts the single source of truth, and the reparenting kept
atomic because scope is a required keyword argument and any split would
leave an unrunnable tree.

The Codex review caught that the planned test evidence pointed at the
wrong stubs: the ones at test_backpressure.py:176-186 cover accounting-side
degradation, not the three gate paths that actually leak to callers, and
try_acquire and try_enter have no stub at all.
2026-08-06 04:11:17 -04:00

2.8 KiB

type, node_id, title, date
type node_id title date
plan plan:governance-backend-error 实现计划: 治理后端故障归位为 scope 级不可用(Issue #7) 2026-08-06

实现计划: 治理后端故障归位为 scope 级不可用(Issue #7)

全文见 2026-08-06-governance-backend-error-plan.md。实现设计 governance-backend-error(已批准 2026-08-06)。

五个任务

# 任务 关键约束
T1 ARCHITECTURE.md §6.1 回补两行 + reason 值域扩为 6 值 必须先行——单一事实源纪律,先改代码后补文档等于让实现与事实源脱节(设计 §8.1)
T2 errors.py 纯增量: 新常量、新 reason、SourceNotConfiguredError + 顶层导出 刻意不动 GovernanceBackendError,故全套件保持通过,可独立提交
T3 GovernanceBackendError 归位 + 22 处构造点 + gate scope 注入 + 全部受影响测试 必须原子: scope 是必填 keyword,分批提交的中间状态会 TypeError
T4 README 公开错误面两列表 + 迁移文档补注 issue #7 的第二诉求,作者认为比第一条更值得改
T5 版本 1.1.0 + CHANGELOG + Wiki 同步 加父类是扩大不是破坏,故 minor 而非 major

保真校验(适用)

触及 ARCHITECTURE §1.4 的移植蓝本(CHS app/domain/errors.pyapp/coordination/)。本次有意变更的语义仅一条(GovernanceBackendError 的类型归属);retry_after_s 非可选语义、两个 reason 值域、fail-closed 方向、记账/闸门分工、RedisPermit 释放侧降级五条不得被顺带改动,每任务完成前逐条自查。

独立审查修正(2026-08-06, Codex)

4 条意见全部核实属实并已折回:

  1. T3 测试证据定位错误(重要)——原写"复用 test_backpressure.py:176-186 的注入桩"覆盖三条泄漏路径,实测那三个桩是 record_success/record_failure/mark_progress记账侧降级,与闸门路径无关;try_acquire/try_enter 全无覆盖。已改为"三条桩都要新增"并写明现状。
  2. T3 漏了既有测试构造点(重要)——新签名 keyword-only 必填,test_backpressure.py:176/181/186test_errors.py:89 的裸 GovernanceBackendError("..."):255/:257QuotaGate(_L()) 漏改即 TypeError。已补一张同批更新清单。
  3. __all__ 插入位置写反(次要)——按字母序应在 SourceDeadError 之后而非之前。已改。
  4. 设计中 telemetry 行号过时(次要)——:210:250,系本分支加 _AttemptUsage 造成的漂移。设计与摘要页已同步更新。

Codex 同时独立核实了计划的可执行性锚点: 22 处构造点、三处 gate 装配、后端层 self._scope 位置、README/ARCH 章节行号,均与 src/ 现状相符。

相关: [governance-backend-error]m2-distributed