Make dispatch reservations issue-backed for multi-node ward #1212
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!1212
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-1205"
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 change moves dispatch reservation authority to the issue thread so multi-node ward runs converge on canonical Forgejo state instead of host-local Docker labels or ~/.ward sentinels. Local reservation files and container labels remain cache only and are rebuilt from issue state.
closes #1205
ward.workflow: pull-request-and-merge
WARDED_WORKFLOW review-note: this does not appear to make coilyco-flight-deck/ward the universal issue authority. The reservation acquire/precheck path uses the carried ref and ref.trackerOrDefault(), so it targets the carried issue's tracker/thread.
There is a scoping bug in the repo backpressure path, though: activeEngineerLaunchCountFromIssueThread(ctx, repo) uses r.hostForgejoClient(ctx) and only receives an owner/repo string. That makes the issue-thread capacity source Forgejo-only, regardless of the target repo's tracker. For GitHub/GitLab/Shortcut-backed refs this can query the wrong tracker or fall back to Docker state. The issue authority abstraction should carry tracker/forge identity through the repo capacity path, not reconstruct authority from only owner/repo.
Please fix before merge or explicitly scope the new issue-thread backpressure behavior to Forgejo targets and keep non-Forgejo targets on the old safe path.