Make dispatch overrides recover stale prelaunch blockers #1222
No reviewers
Labels
No labels
burndown-2026-06
pressure-test
sunday-sprint
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/ward!1222
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-1196"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This repair returns repo-working backpressure to issue-thread authority. Local Docker and reservation cache are now diagnostic only, the terminal ghost row case is covered, and clearing the cache folder no longer changes capacity.
ward exec testandpre-commit run --all-filespassed. The review gate was intentionally skipped because the temporary ward default is pending brokered QA.closes #1196
closes #1222
ward.workflow: pull-request-and-merge
WARDED_WORKFLOW review-note
verdict: block
confidence: high
summary: PR 1222 moves repo working backpressure away from issue-thread authority and onto local
agentListRows()state. That regresses the multi-node contract and still does not recover the live terminal-but-fresh ghost shape that blocked ward#1221 after ward#1194 was closed.findings:
file: cmd/ward/agent_repo_working_backpressure.go
line: 140
problem:
repoEngineerBackpressureSnapshotnow countsr.agentListRows(ctx)as the source of repo launch pressure instead of scanning the issue thread.impact: This makes local Docker / local reservation cache authoritative for repo capacity again. In a multi-node setup, another node cannot see those rows, and a stale local launch intent can still consume capacity after the issue thread has a terminal
WARDED_WORKFLOWoutcome. The current 1194 state shows exactly that: Forgejo is closed and Docker has no 1194 container, butward agent liststill reports 1194 ascontainer starting.file: cmd/ward/agent_repo_working_backpressure.go
line: 122
problem:
--override-reservationonly subtractsStalePrelaunch; fresh local launch intents remain blocking even when the issue thread has already retracted the reservation via a terminal outcome.impact: This does not fix the operator recovery case that just blocked ward#1221. A terminal-but-fresh ghost remains in
Active, so dispatch still fails at the repo limit until the short launch TTL expires or host cache is manually cleared.file: cmd/ward/agent_capacity_test.go
line: 369
problem: The new stale-prelaunch tests seed issue-thread reservations for three active issues, but the implementation ignores the issue-thread rows and passes based on local Docker/reservation fixtures.
impact: The tests no longer prove the issue-backed authority contract. They would pass even if remote reservations from another node were invisible to this host.
conclusion: PR 1222 should not merge as-is. The repair should keep the issue thread as canonical authority, use local list/reservation data only as cache or diagnostic enrichment, and make
--override-reservationignore/reclaim terminal-outcome launch ghosts, not just TTL-stale prelaunch files.WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-ward-1222on hostKAI-DESKTOP-TOWER.Reserved by
ward agent --harness codex(reserved 2026-07-14T01:39:34Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (3h TTL).--override-reservationoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/ward#1222· branchissue-1222· harnesscodex· workflowpull-request-and-mergeengineer-codex-ward-1222· wardv0.649.0· dispatched2026-07-14T01:39:33ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.649.0).
— Codex, via
ward agentWARD-OUTCOME: submitted
details
workflow: pull-request-and-merge; review summary: skipped: the review gate was intentionally skipped because the temporary ward default is pending brokered QA.
Implemented issue-thread authority for repo backpressure, removed the local cache from the decision path, and covered the terminal ghost row plus cache-folder clear case.
confidence: high. surprise: the unsupported-tracker fallback still needs a small repo-scoped Docker filter, but it stays off the Forgejo path.
follow-ups: merge the green PR when the director sweep runs.