Add the replays of issues 279 and 412 (hq issues 279, 412) #285

Merged
mesh-admin merged 1 commits from fix/279-412-replays into main 2026-10-13 00:45:26 +00:00
Contributor

What: two test files in internal/catalogue, TestReplay279 and TestReplay412, each written only with what the catalogue had before its fix, so mesh-lab's prover can lay them over the commit before.

  • TestReplay279: a directory owned by ${setting:puid}:${setting:pgid} is composed for a machine whose settings give 1001:2000, and must reach the node-engine owned by 1001:2000 (fix: #260).
  • TestReplay412: a module declaring /etc/hosts without claiming node-hostname is refused naming the seat, and a node-hostname claim declaring neither /etc/hosts nor /etc/hostname is refused by CanHold naming both (fix: #267).

Why: issues 279 and 412 are delivered and resolve with a replay in mesh-lab's register; the fixes' own tests read what the fixes added and do not build at the commit before.

Tested: go test -run '^TestReplay(279|412)$' ./internal/catalogue passes on main; mesh-lab go run ./cmd/prove R279 R412 says PROVED for both: before #260 the machine does not compose (${setting:…} is not filled in this field), before #267 nothing refuses the stranger declaring /etc/hosts. Registered in novox/mesh-lab (same branch name).

Tests only; no behaviour changes. Replays for issue 279 and issue 412.

What: two test files in internal/catalogue, `TestReplay279` and `TestReplay412`, each written only with what the catalogue had before its fix, so mesh-lab's prover can lay them over the commit before. - `TestReplay279`: a directory owned by `${setting:puid}:${setting:pgid}` is composed for a machine whose settings give 1001:2000, and must reach the node-engine owned by 1001:2000 (fix: #260). - `TestReplay412`: a module declaring /etc/hosts without claiming node-hostname is refused naming the seat, and a node-hostname claim declaring neither /etc/hosts nor /etc/hostname is refused by CanHold naming both (fix: #267). Why: issues 279 and 412 are delivered and resolve with a replay in mesh-lab's register; the fixes' own tests read what the fixes added and do not build at the commit before. Tested: `go test -run '^TestReplay(279|412)$' ./internal/catalogue` passes on main; mesh-lab `go run ./cmd/prove R279 R412` says PROVED for both: before #260 the machine does not compose (`${setting:…} is not filled in this field`), before #267 nothing refuses the stranger declaring /etc/hosts. Registered in novox/mesh-lab (same branch name). Tests only; no behaviour changes. Replays for issue 279 and issue 412.
mesh-admin added 1 commit 2026-10-13 00:03:19 +00:00
Add the replays of issues 279 and 412, written with only what the catalogue had before each fix
mesh/merge-gate head 3bdab29a5a0e merged into trunk eb7ee921b533 — pass: the change touches no module of the mesh's graph
mesh/repo-check head 3bdab29a5a0e merged into trunk eb7ee921b533 — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/279-412-replays delivered: every member is delivered
3bdab29a5a
So the lab's prover can lay them over the commit before mesh-controller #260 and #267 and see them fail
there and pass on the fix (hq issues 279, 412).
Author
Contributor

Delivery novox/mesh-controller@3bdab29a5a0e — delivered since 2026-10-13T00:45:39Z

Delivery plan — builds nothing: the change touches no module of the mesh's graph

Group fix/279-412-replays, in order: novox/mesh-controller@3bdab29a5a → novox/mesh-lab@671d56a08a

  • composed together: pass — the change touches no module of the mesh's graph

Transitions

  • 2026-10-13 00:03 (new) → proposed (announced): novox/mesh-controller#285's head announced
  • 2026-10-13 00:44 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-13 00:44 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 00:45 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-13 00:45 published → delivered (done): nothing for a walk to move

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@3bdab29a5a0e` — **delivered** since 2026-10-13T00:45:39Z **Delivery plan** — builds nothing: the change touches no module of the mesh's graph **Group** `fix/279-412-replays`, in order: novox/mesh-controller@3bdab29a5a0e → novox/mesh-lab@671d56a08a47 - composed together: pass — the change touches no module of the mesh's graph **Transitions** - 2026-10-13 00:03 (new) → proposed (announced): novox/mesh-controller#285's head announced - 2026-10-13 00:44 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-13 00:44 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 00:45 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-13 00:45 published → delivered (done): nothing for a walk to move The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-admin left a comment
Author
Contributor

Verdict: approve at 3bdab29a5a

Checked:

  • Proved with mesh-lab's prover (go run ./cmd/prove --repos ... R279 R412 from mesh-lab #90's branch): both PROVED, each failing before its fix and passing on it.
  • TestReplay279 asserts the issue's acceptance: a directory owned by ${setting:puid}:${setting:pgid} reaches the node-engine owned by the numbers the machine's settings give (1001:2000). Before #260 it fails for the right reason: Compose refuses ${setting:...} in an owner ("is not filled in this field"), which is the literal-owner limitation the issue names. It also asserts the module is not left out, so a pass cannot come from the module being dropped.
  • TestReplay412 asserts both of the issue's points: a module declaring /etc/hosts without claiming node-hostname is refused by CatalogueProblems, naming the seat, and CanHold refuses a node-hostname holder that declares neither path, naming /etc/hosts and /etc/hostname. Before #267 it fails at the first assertion (no problem reported), which is the issue's symptom. It does not cover the rest of ADR 0287 (no two seats name one path, the seats listing shows paths). That is acceptable for a replay of the core symptom.
  • Pre-fix API only: both tests compile at the commit before each fix and fail on an assertion, not a build error.
  • Tests only, no behaviour change. The issues are named in the file comments and the title.

Nit (not blocking): the 412 file comment lists Shelf among the pre-fix API, but the mesh-lab register comment does not. Harmless.

Verdict: approve at 3bdab29a5a0ed0f15cbfdb4738a321f968ac9467 Checked: - Proved with mesh-lab's prover (`go run ./cmd/prove --repos ... R279 R412` from mesh-lab #90's branch): both PROVED, each failing before its fix and passing on it. - TestReplay279 asserts the issue's acceptance: a directory owned by `${setting:puid}:${setting:pgid}` reaches the node-engine owned by the numbers the machine's settings give (1001:2000). Before #260 it fails for the right reason: Compose refuses `${setting:...}` in an owner ("is not filled in this field"), which is the literal-owner limitation the issue names. It also asserts the module is not left out, so a pass cannot come from the module being dropped. - TestReplay412 asserts both of the issue's points: a module declaring /etc/hosts without claiming node-hostname is refused by CatalogueProblems, naming the seat, and CanHold refuses a node-hostname holder that declares neither path, naming /etc/hosts and /etc/hostname. Before #267 it fails at the first assertion (no problem reported), which is the issue's symptom. It does not cover the rest of ADR 0287 (no two seats name one path, the seats listing shows paths). That is acceptable for a replay of the core symptom. - Pre-fix API only: both tests compile at the commit before each fix and fail on an assertion, not a build error. - Tests only, no behaviour change. The issues are named in the file comments and the title. Nit (not blocking): the 412 file comment lists Shelf among the pre-fix API, but the mesh-lab register comment does not. Harmless.
Author
Contributor

Merge check at 3bdab29a: head 3bdab29a5a merged into trunk 454a3db69a, pass

Out of date when it landed: out of date: judged against trunk 454a3db69a, the trunk is now 4473bc7d7315; judged again on a recheck or when it is merged

**Merge check** at `3bdab29a`: head 3bdab29a5a0e merged into trunk 454a3db69a1e, pass **Out of date when it landed**: out of date: judged against trunk 454a3db69a1e, the trunk is now 4473bc7d7315; judged again on a recheck or when it is merged
mesh-admin left a comment
Author
Contributor

Verdict: approve at 3bdab29a5a

This is an independent review. It replaces the earlier approval from a reviewer the builder spawned. The code needs no change. The required checks are not green yet: they must be rechecked and read green before a merge.

Statuses on the head:

  • mesh/merge-gate pending ("out of date: judged against trunk 454a3db69a, the trunk is now 4473bc7d7315; judged again on a recheck or when it is merged").
  • mesh/repo-check pending (the same "out of date" text).
  • mesh/delivery pending ("checking").
  • mesh/delivery-group pending ("group fix/279-412-replays checking: 0 of 2 member(s) ready").
    Ask mesh-delivery.recheck and merge only on the new verdict. This change has to merge before mesh-lab #90, because #90's HomeRef is this commit.

The replays use only code from before each fix. I ran the lab's prover from mesh-lab #90 (go run ./cmd/prove R279 R412) against an offline copy of mesh-controller. It laid these two files over the commit before each fix and over each fix:

  • R279 (issue 279): PROVED. It fails on 5facd8b, the first parent of #260's merge 9eddf36, at replay279_test.go:24 ("the machine did not compose: sonarr's resource recycle-bin holds ${setting:puid} in its owner, and ${setting:…} is not filled in this field"). It passes on 9eddf36.
  • R412 (issue 412): PROVED. It fails on 84deb53, the first parent of #267's merge 4dbd406, at replay412_test.go:18 ("a module declaring /etc/hosts without claiming node-hostname was not refused"). It passes on 4dbd406.
    In both cases the test fails as a test, not as a build error, so every symbol it uses already existed before the fix. I also checked by name. anAdoptedAnchor, anchorRendering, byID, Layer and LeftOut existed at 5facd8b. CatalogueProblems, Shelf, SeatNamed, CanHold and Claim.Serves existed at 84deb53.

I ran go test -run '^TestReplay(279|412)$' ./internal/catalogue at this head and on the current trunk 4473bc7 with the two files added. Both tests pass in both places.

What each replay asserts matches its issue. R279 checks that a directory owned by ${setting:puid}:${setting:pgid} reaches the node-engine as 1001:2000. R412 checks two things: a module declaring /etc/hosts without the node-hostname claim is refused, and a node-hostname holder declaring neither path is refused, naming both.

Verdict: approve at 3bdab29a5a0ed0f15cbfdb4738a321f968ac9467 This is an independent review. It replaces the earlier approval from a reviewer the builder spawned. The code needs no change. The required checks are not green yet: they must be rechecked and read green before a merge. Statuses on the head: - mesh/merge-gate pending ("out of date: judged against trunk 454a3db69a1e, the trunk is now 4473bc7d7315; judged again on a recheck or when it is merged"). - mesh/repo-check pending (the same "out of date" text). - mesh/delivery pending ("checking"). - mesh/delivery-group pending ("group fix/279-412-replays checking: 0 of 2 member(s) ready"). Ask mesh-delivery.recheck and merge only on the new verdict. This change has to merge before mesh-lab #90, because #90's HomeRef is this commit. The replays use only code from before each fix. I ran the lab's prover from mesh-lab #90 (go run ./cmd/prove R279 R412) against an offline copy of mesh-controller. It laid these two files over the commit before each fix and over each fix: - R279 (issue 279): PROVED. It fails on 5facd8b, the first parent of #260's merge 9eddf36, at replay279_test.go:24 ("the machine did not compose: sonarr's resource recycle-bin holds ${setting:puid} in its owner, and ${setting:…} is not filled in this field"). It passes on 9eddf36. - R412 (issue 412): PROVED. It fails on 84deb53, the first parent of #267's merge 4dbd406, at replay412_test.go:18 ("a module declaring /etc/hosts without claiming node-hostname was not refused"). It passes on 4dbd406. In both cases the test fails as a test, not as a build error, so every symbol it uses already existed before the fix. I also checked by name. anAdoptedAnchor, anchorRendering, byID, Layer and LeftOut existed at 5facd8b. CatalogueProblems, Shelf, SeatNamed, CanHold and Claim.Serves existed at 84deb53. I ran go test -run '^TestReplay(279|412)$' ./internal/catalogue at this head and on the current trunk 4473bc7 with the two files added. Both tests pass in both places. What each replay asserts matches its issue. R279 checks that a directory owned by ${setting:puid}:${setting:pgid} reaches the node-engine as 1001:2000. R412 checks two things: a module declaring /etc/hosts without the node-hostname claim is refused, and a node-hostname holder declaring neither path is refused, naming both.
mesh-admin merged commit 49102e1645 into main 2026-10-13 00:45:26 +00:00
mesh-admin deleted branch fix/279-412-replays 2026-10-13 00:45:27 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#285