mesh-issues: read merged from the pull request, not the state, so a closed one is withdrawn (hq issue 483)
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: builds mesh-issues → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)

mesh-delivery says stopped for a pull request closed unmerged too; read as
merged, it was said stuck to the operator for good. Cite ADR 0284 for the
worker rules, which the comments gave as 0283.
This commit is contained in:
2026-10-11 12:24:45 +02:00
parent 601eed06e7
commit 3aaccba4e2
14 changed files with 88 additions and 49 deletions
@@ -15,7 +15,7 @@ func clocked(h *harness) *time.Time {
}
// A move to diagnosing or fixing by someone else while the worker is current is refused, naming the worker, and
// changes nothing (ADR 0283 §1).
// changes nothing (ADR 0284 §3).
func TestAnotherWorkerIsRefusedNamingTheWorker(t *testing.T) {
for _, to := range []string{StatusDiagnosing, StatusFixing} {
t.Run(to, func(t *testing.T) {
@@ -76,7 +76,7 @@ func TestTheWorkerMovesOn(t *testing.T) {
}
}
// A take-over gives a reason, the reason is noted, and the moved event says from whom (ADR 0283 §1, §4).
// A take-over gives a reason, the reason is noted, and the moved event says from whom (ADR 0284 §3, §6).
func TestATakeOverNeedsAReasonAndIsNoted(t *testing.T) {
h := newHarness(t)
clocked(h)
@@ -103,7 +103,7 @@ func TestATakeOverNeedsAReasonAndIsNoted(t *testing.T) {
}
// A worker with nothing done on it past worker-stale-after is stale: list and get say so, and it may be taken over
// without a reason, noted (ADR 0283 §2). A caller's note keeps it live; the tracker's own does not.
// without a reason, noted (ADR 0284 §4). A caller's note keeps it live; the tracker's own does not.
func TestAStaleWorkerIsShownAndMayBeTakenOverWithoutAReason(t *testing.T) {
h := newHarness(t)
now := clocked(h)
@@ -193,7 +193,7 @@ func TestAMoveOnEndsTheWork(t *testing.T) {
}
}
// The duplicate check and the triage treat fixing as not closed, like diagnosing and located (ADR 0283 §5).
// The duplicate check and the triage treat fixing as not closed, like diagnosing and located (ADR 0284 §7).
func TestFixingIsNotClosed(t *testing.T) {
for _, s := range Statuses {
want := s != StatusResolved && s != StatusWontfix
@@ -261,7 +261,7 @@ func TestAResolvedIssueMayBeCorrected(t *testing.T) {
}
}
// A caller's link and set keep the worker current, as a note does (ADR 0283 §4).
// A caller's link and set keep the worker current, as a note does (ADR 0284 §4).
func TestALinkAndASetKeepTheWorkerCurrent(t *testing.T) {
for _, act := range []string{"link", "unlink", "set"} {
t.Run(act, func(t *testing.T) {