Skip to content

epic(lifecycle): approval-queue and review-lifecycle states a PR can enter and never leave #9484

Description

@JSONbored

Summary

Tracking epic for approval-queue and review-lifecycle defects from the 2026-07-27 adversarial audit. The common thread: states a PR can enter and never leave, plus a replay path that enforces fewer protections than the live path.

Sub-issues

Issue Class
#9481 — expired approvals can never be re-staged Absorbing state
#9482 — accept path's thinner context voids three shipped protections Wrong merge / lost enforcement
#9483 — merge-train waiter stranded; verdict-flip guard absorbing Silent stranding

Also related and filed elsewhere: #9465 (a dead reopen-reclose job permanently loses one-shot enforcement) and #9464 (a false-close path).

Cross-cutting recommendation

#9482's root cause is that both the live path and the accept path build an executor context out of optional fields, so an omission is silent rather than a type error. The durable fix — a single typed "decision pass context" that both paths must construct — also closes part of the determinism gap tracked in the maintainability epic, where the same ad-hoc context is why the decision clock reaches only one of its consumers. Worth doing once, properly, rather than patching each omission.

Acceptance criteria

  • All three sub-issues closed.
  • No PR state exists from which the engine cannot make progress without manual maintainer intervention — enumerated and tested, not asserted.
  • The accept path and the live path enforce an identical protection set, verified by a shared test suite run against both.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.orbGittensory Orb related - maintainer self-hosting analytics.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions