fix(lane): retire stale roster heads without cooldown #158

Closed
triform-admin wants to merge 0 commits from agent/roster-stale-member-20260819 into main

Why

An exact remote candidate can become obsolete while it builds because one PR head moves. Today the dispatcher returns a generic infrastructure failure, so the stable peers retry with the obsolete member until the entire roster is infrastructure-ejected for one hour.

What

  • add a typed RosterStale lane outcome
  • accept only exit 76 plus exactly one versioned, valid member marker
  • require the named member to be aboard the frozen candidate
  • remove only the obsolete enrollment, with no ejection or cooldown
  • retry unjudged peers immediately at the front
  • fail closed as infrastructure for malformed or unknown markers

Verification

No local build was run. Forgejo CI is the compilation and test authority. Added pure policy and real-dispatch subprocess coverage for valid and malformed protocol paths.

## Why An exact remote candidate can become obsolete while it builds because one PR head moves. Today the dispatcher returns a generic infrastructure failure, so the stable peers retry with the obsolete member until the entire roster is infrastructure-ejected for one hour. ## What - add a typed `RosterStale` lane outcome - accept only exit 76 plus exactly one versioned, valid member marker - require the named member to be aboard the frozen candidate - remove only the obsolete enrollment, with no ejection or cooldown - retry unjudged peers immediately at the front - fail closed as infrastructure for malformed or unknown markers ## Verification No local build was run. Forgejo CI is the compilation and test authority. Added pure policy and real-dispatch subprocess coverage for valid and malformed protocol paths.
fix(lane): retire stale roster heads without cooldown
Some checks failed
ci / rust-analyzer latency harness (S1 / AC#2) (pull_request) Has been skipped
ci / fmt (pull_request) Failing after 1m8s
ci / clippy (pull_request) Successful in 3m12s
ci / lane policy mutation proof (pull_request) Successful in 5m22s
ci / build (pull_request) Successful in 6m28s
ci / test (pull_request) Successful in 6m32s
36227cf52a
style(lane): match remote rustfmt output
All checks were successful
ci / rust-analyzer latency harness (S1 / AC#2) (pull_request) Has been skipped
ci / clippy (pull_request) Successful in 1m9s
ci / fmt (pull_request) Successful in 1m41s
ci / build (pull_request) Successful in 1m55s
ci / test (pull_request) Successful in 2m42s
ci / lane policy mutation proof (pull_request) Successful in 4m52s
004e6e4a14
chore: refresh Forgejo mergeability state
Some checks are pending
ci / build (pull_request) Waiting to run
ci / test (pull_request) Waiting to run
ci / lane policy mutation proof (pull_request) Waiting to run
ci / fmt (pull_request) Waiting to run
ci / clippy (pull_request) Waiting to run
ci / rust-analyzer latency harness (S1 / AC#2) (pull_request) Waiting to run
6ccaee97c2
Author
Owner

Superseded by #160, which pointed to the exact same commit/tree and merged normally. Forgejo had cached #158 as conflicting even though its update endpoint reported the head already up to date and git merge-tree was clean.

Superseded by #160, which pointed to the exact same commit/tree and merged normally. Forgejo had cached #158 as conflicting even though its update endpoint reported the head already up to date and git merge-tree was clean.
triform-admin closed this pull request 2026-08-19 14:52:44 +00:00
Some checks are pending
ci / build (pull_request) Waiting to run
ci / test (pull_request) Waiting to run
ci / lane policy mutation proof (pull_request) Waiting to run
ci / fmt (pull_request) Waiting to run
ci / clippy (pull_request) Waiting to run
ci / rust-analyzer latency harness (S1 / AC#2) (pull_request) Waiting to run

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
triform/cargoless!158
No description provided.