Role boundary unrecorded: every open item in this repo is manual-only, so 3 bounced PRs carry findings no lane can ever act on
#26
Labels
No Label
blocked
bounced
in-progress
in-review
manual-only
needs-guidance
netplay
p1
p2
p3
rust
No Milestone
No project
No Assignees
1 Participants
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: pbwraith/gopher64-netplay#26
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
The measurement
Run of the deployed candidate survey (
~/.hermes/scripts/gitea-worker-lane.py,survey_candidates()) against the live API, 2026-08-26:One claimable item on the entire 23-repo board, and it is a PR I bounced 20 minutes
earlier. gopher64-netplay contributes zero, and it is the largest single block of open
work on the board: 6 open issues (#3 #4 #5 #6 #7 #25) and 3 open PRs (!9 !11 !18) — 9 items,
all 9 carrying
manual-only.Why zero, mechanically
manual-onlyis an unconditional worker exclusion — three separate sites, and the lastone is the surprising one:
So
bounceddoes not rescue amanual-onlyPR. That is deliberate — gitea-worker-ops#7("Dispatcher: never claim manual-only issues or PR repairs") specifies exactly this, and
defines the label as:
The mechanism is working as designed. The question is whether it is pointed at the right
objects here.
The concrete cost
!9,!11and!18are allbouncedwith specific, implementable findings — the2026-08-26 14:52 ordering note ("land
!9first, and one conflict hunk is a trap") names anexact resolution. Those bounces are undeliverable by construction:
manual-onlymanual-onlymanual-onlyNo commits since 2026-08-25 on any of them, and none is possible from a lane. The bounce
text reads as a request for rework addressed to nobody.
What is actually missing: the reason
I checked every issue and PR in this repo (
state=all, paginated) plus the full commentthreads of all six gated issues. No body and no comment anywhere in gopher64-netplay
records why
manual-onlyis applied. #4, #7 and #25 have no stated gating reason of anykind. (#3 and #6 do record a
blockedprerequisite — "!18must merge", "!11mustmerge" — and those are correct and separate from this.)
That matters because
manual-onlyis the strongest gate in the system, and an unexplainedinstance of it cannot be audited: a sweep cannot tell a deliberate role boundary from a
label that got copied across a cluster.
There is a plausible correct reason — netplay desync/resume verification needs two peers
and a real ROM, which no lane can do. But that argument covers the verification step,
not the Rust rework: resolving a merge conflict in
src/netplay.rs, or rebasingissue-4onto current
main, is ordinary automatable work, and the repo already has a headlessbuild gate that runs
cargo test --libwithout a second peer.The decision I need from you
Pick one and record it here; I will not change these labels unilaterally, because this is a
role-ownership decision, not a defect.
Option A — gopher64 rework is yours, by hand.
manual-onlystays on all 9 items. Thenthe three PRs should stop being bounced with lane-shaped instructions; I will re-word those
comments as owner runbooks and stop re-bouncing them each sweep. Say so and I will do that.
Option B — only the live verification is manual.
manual-onlymoves off the three codePRs (and off #4/#7/#25 if their remaining work is code), leaving it on whatever step needs
two peers and a ROM. The three PRs then become claimable at lane priority 0 and the existing
findings become actionable immediately.
blockedon #3/#6 is unaffected either way.Option C — something else, e.g. the whole repo is parked for now. Also fine; just record
it, so the next sweep does not re-derive this.
Acceptance
manual-onlyremoved from the specific items you name, with the reason for theremaining instances written down in the issue body, not only here.
Explicitly out of scope
manual-onlyfrom anything as part of filing this.are unchanged by this issue.
gitea-worker-lane.py. The exclusion logic matchesgitea-worker-ops#7 and is correct; only the labelling of these nine items is in question.
blockedlabels on #3 and #6 are correct (their named prerequisite PRs are stillopen) and I am not touching them.