Delivery group feat/judge-once (mesh-sdk, mesh-delivery, mesh-catalog, mesh-host, mesh-controller, mesh-tools), one check, one Approve. Issue 1585. Decisions: ADR 0578 (a manifest is judged once, by the indexer; every other part decodes it and takes the verdict; packages carry contracts only), ADR 0579 (a stricter judge never holds a module already running: it warns), and ADR 0573 §2/§4 built (each build takes the latest published package; a group check builds against the group's package heads).
Quick fix (readers hold a refused module, ~4 h) weighed against the thorough fix (judge once, ~32 h) and the thorough fix chosen with the operator (2026-11-01): the kind (a reader with an old judge silences itself) was met twice on 2026-10-31.
Rule bent, said here: mesh-delivery's unit tests rise 662 -> 892 because the judge's tests moved there from mesh-sdk (1686 -> 1440); the mesh-wide total falls. After the delivery every Go module rebuilds against the latest mesh-sdk (about 120 modules; all compile against it).
Controller research "The controller, NATS-native": manifest judgement leaves the controller; it reads the indexer's verdicts state.
This member: the judge package and mesh-judge in the indexer; verdicts written only when they differ, re-judged when the judge changes, refusals and outgrown warnings said and raised by the watchman; assigner, grants, builder decode and take the verdict; the checker judges a change against the trunk case, fills Packages and the predefined list, and no longer refuses pins; fingerprints take package versions.
Reviewed-by: reviewer-1585@shanks at 8e9cc58301
Pushed-by: lead-47@shanks
The first group check failed only on gofmt (one blank line in mesh-sdk go/catalogue/streams.go); the fix is whitespace only, and every member re-pinned mesh-sdk 8af6e72; the reviewer checked each diff mechanically.
The third group check failed on five mesh-controller integration tests: three asserted judging the controller no longer does (ADR 0578), two exposed a real credential regression from mesh-sdk #141 (the push would have sealed a random value as a module's bus credential), fixed by refusing an unissued bus account before the push. Whole local integration runs of all six members passed before this head (the lead allowed them, said here).
The fourth check failed only on a judge test that read mesh-host beside it; the checker places mesh-delivery, mesh-sdk and mesh-catalog beside a mesh-delivery check. The sibling reader now reads mesh-host from its captured copy (refreshed to mesh-host 233bb23b) and keeps every other missing sibling fatal. Suites passed locally with the checker's layout and with none.
Delivery group feat/judge-once (mesh-sdk, mesh-delivery, mesh-catalog, mesh-host, mesh-controller, mesh-tools), one check, one Approve. Issue 1585. Decisions: ADR 0578 (a manifest is judged once, by the indexer; every other part decodes it and takes the verdict; packages carry contracts only), ADR 0579 (a stricter judge never holds a module already running: it warns), and ADR 0573 §2/§4 built (each build takes the latest published package; a group check builds against the group's package heads).
Quick fix (readers hold a refused module, ~4 h) weighed against the thorough fix (judge once, ~32 h) and the thorough fix chosen with the operator (2026-11-01): the kind (a reader with an old judge silences itself) was met twice on 2026-10-31.
Rule bent, said here: mesh-delivery's unit tests rise 662 -> 892 because the judge's tests moved there from mesh-sdk (1686 -> 1440); the mesh-wide total falls. After the delivery every Go module rebuilds against the latest mesh-sdk (about 120 modules; all compile against it).
Controller research "The controller, NATS-native": manifest judgement leaves the controller; it reads the indexer's verdicts state.
This member: the judge package and mesh-judge in the indexer; verdicts written only when they differ, re-judged when the judge changes, refusals and outgrown warnings said and raised by the watchman; assigner, grants, builder decode and take the verdict; the checker judges a change against the trunk case, fills Packages and the predefined list, and no longer refuses pins; fingerprints take package versions.
Reviewed-by: reviewer-1585@shanks at 8e9cc5830119328ac13e0832f81dfb73931cc5bb
Pushed-by: lead-47@shanks
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The first group check failed only on gofmt (one blank line in mesh-sdk go/catalogue/streams.go); the fix is whitespace only, and every member re-pinned mesh-sdk 8af6e72; the reviewer checked each diff mechanically.
The third group check failed on five mesh-controller integration tests: three asserted judging the controller no longer does (ADR 0578), two exposed a real credential regression from mesh-sdk #141 (the push would have sealed a random value as a module's bus credential), fixed by refusing an unissued bus account before the push. Whole local integration runs of all six members passed before this head (the lead allowed them, said here).
The fourth check failed only on a judge test that read mesh-host beside it; the checker places mesh-delivery, mesh-sdk and mesh-catalog beside a mesh-delivery check. The sibling reader now reads mesh-host from its captured copy (refreshed to mesh-host 233bb23b) and keeps every other missing sibling fatal. Suites passed locally with the checker's layout and with none.
Issue 1585, S5: judge.Shelf judges each manifest alone and the rules between them, giving a problem between
manifests to each module whose removal ends it (naming alone blamed the module mounts for f1-circuits' problem).
cmd/mesh-judge answers a composer request so a Go build module runs it as it runs the composer.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S9: verdicts keyed by digest, written only when they differ; a module's value carries a refusal; a
new refusal is said as manifest-refused. Judged at start (a new judge judges again) and after every merge.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S10: the watchman watches the indexer's modules and finds manifest-refused for a module whose value
carries a refusal, ending it once accepted. Its mesh-sdk pin moves to the group head, so it takes health.Finding's
Ref (issue 1952 renamed Token).
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S11: world and wants read with catalogue.Decode; a trunk refusal is held, named and handed to the
composer in its input; a proposal's composition read that fails is said, not dropped; a reader that cannot read a
changed field is a warning, no longer a failure.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S12: grants, builder and checker read with catalogue.Decode and grants holds a module the indexer
refused; the checker asks the Go build seat to run mesh-judge, built at mesh-delivery's trunk or at the group's
mesh-delivery head when it changes the judge, over the catalogue as the change leaves it, and fails on a refusal.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585: the indexer's merge test takes in three manifests more against the real bus; it writes their
verdicts, says each refusal, and mesh-sdk's bus reader composes the valid one and holds the refused, named; before
any verdict it takes each as accepted and names the field set aside. One test extended, no test added.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S5-S8: the indexer's fingerprint reads go through judge.ForInputs, so judge/ is the one place in
mesh-delivery that calls mesh-sdk's rules; the command's request judging moves into judge.Request, tested in the
judge's table; two predefined tests become one.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S6-S8: 192 judge-only declarations (the strict parser, every manifest problem function, the tables)
moved whole by an AST mover, methods becoming functions; 163 helpers composition keeps too are copied. 245 tests
move with them, reading the captured catalogue through a copy of internal/beside. judge.WithTemplatesFrom and
ReadTreeManifest judge what mesh-sdk's readers now only fill. mesh-delivery's own tests decode. Pinned to mesh-sdk 25a2cec.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
ADR 0573 §2: a module builds against the latest published version of
each mesh package it uses, and a package's trunk merge moves every
dependent (issue 1585, S13). The bridge reads the packages each go.sum
names, the indexer keeps them and takes each one's trunk merge into the
fingerprint, a candidate takes a group member's head instead, and the
builder's ask carries the versions so the build module writes them.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
ADR 0573 §4 makes refusing a member for its mesh-sdk pin a fault of the
check (issue 1585, S14). Every Go check ask now carries the latest
published version of each package, or the head of the group member that
publishes it, so the pin check, its forge reads and its tests go, and
the controller's tests read mesh-sdk at the version it is built with.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The checker builds every Go check against them (issue 1585, S14); a row
in the repoModules test proves they come from the modules that hold each
package and leave out a package no module holds.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585: the indexer keeps an accepted manifest accepted when a stricter judge re-judges it, its problems as
warnings carried in its value; a merge's new manifests are judged in full. The watchman raises manifest-outgrown as
a warning until mended. The checker fails only on a manifest the change adds or changes and names the rest as
warnings. Every module pins mesh-sdk 19c2042.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, R1: fresh holds the digests a take-in newly wrote (a new module, a changed manifest); a registered or
taken-in module is judged too; a start pass that fails is judged again at the next message heard, no timer.
R2: a module's verdict, problems and warnings are carried while its digest stands and are no part of the compare.
R3: the checker judges the trunk beside the change and fails on every problem the change case adds, an untouched
manifest's included. R4: the judge reads the indexer's kept predefined keys, or the catalogue member's when it
changes them. A log line names a package no held module publishes. Every module pins mesh-sdk 62cddf4.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Deliverynovox/mesh-delivery@8e9cc5830119 — merged since 2026-11-01T07:54:38Z
Source — source.main moved to novox/mesh-delivery@58748c2be1. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (a0269268ba29)
Transitions
2026-11-01 03:50 (new) → proposed (announced): novox/mesh-delivery#129's head announced
2026-11-01 03:50 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-01 07:54 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-delivery@8e9cc5830119` — **merged** since 2026-11-01T07:54:38Z
**Source** — source.main moved to novox/mesh-delivery@58748c2be161. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/judge-once`: novox/mesh-catalog@432326264f6c, novox/mesh-controller@b564c315d012, novox/mesh-delivery@8e9cc5830119, novox/mesh-host@07066fe7a0a8, novox/mesh-sdk@8af6e7266915, novox/mesh-tools@c4940180746a
- composed together: pass — the checker's verdict at the members' heads (a0269268ba29)
**Transitions**
- 2026-11-01 03:50 (new) → proposed (announced): novox/mesh-delivery#129's head announced
- 2026-11-01 03:50 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-01 07:54 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 62cddf4efc62 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 62cddf4efc62 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh/delivery-group group feat/judge-once rejected: composed together: the checker's verdict at the members' heads (253f35815198): unit: mesh-delivery-indexer/…
mesh/check failed: unit: mesh-delivery-indexer/judge.TestTheResolvedPathRulesAreTheNodeEnginesOwn: mesh-host is not beside this check in MESH_CHECK_BE…
Issue 1585: the bridge names the mesh packages each module's go.sum names (builder-1585b's fold); its integration test
still wanted none. All nine modules' integration suites pass locally (the lead allowed a whole local run this round).
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The judge's tests moved from mesh-sdk, where mesh-host was beside them; the checker places only mesh-sdk and the
catalogue beside mesh-delivery (besideRules), so the node-engine's path rules failed as not beside. A sibling the run
holds beside is read there; one it does not is read from testdata/beside and the log says which; only a sibling
with neither fails.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Review of fb96216: a missing mesh-sdk or catalogue in a merge check is the checker's fault and fails, never judged
against a stale copy. The captured placement guard is refreshed to mesh-host's main 233bb23.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delivery group feat/judge-once (mesh-sdk, mesh-delivery, mesh-catalog, mesh-host, mesh-controller, mesh-tools), one check, one Approve. Issue 1585. Decisions: ADR 0578 (a manifest is judged once, by the indexer; every other part decodes it and takes the verdict; packages carry contracts only), ADR 0579 (a stricter judge never holds a module already running: it warns), and ADR 0573 §2/§4 built (each build takes the latest published package; a group check builds against the group's package heads).
Quick fix (readers hold a refused module, ~4 h) weighed against the thorough fix (judge once, ~32 h) and the thorough fix chosen with the operator (2026-11-01): the kind (a reader with an old judge silences itself) was met twice on 2026-10-31.
Rule bent, said here: mesh-delivery's unit tests rise 662 -> 892 because the judge's tests moved there from mesh-sdk (1686 -> 1440); the mesh-wide total falls. After the delivery every Go module rebuilds against the latest mesh-sdk (about 120 modules; all compile against it).
Controller research "The controller, NATS-native": manifest judgement leaves the controller; it reads the indexer's verdicts state.
This member: the judge package and mesh-judge in the indexer; verdicts written only when they differ, re-judged when the judge changes, refusals and outgrown warnings said and raised by the watchman; assigner, grants, builder decode and take the verdict; the checker judges a change against the trunk case, fills Packages and the predefined list, and no longer refuses pins; fingerprints take package versions.
Reviewed-by: reviewer-1585@shanks at
8e9cc58301Pushed-by: lead-47@shanks
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The first group check failed only on gofmt (one blank line in mesh-sdk go/catalogue/streams.go); the fix is whitespace only, and every member re-pinned mesh-sdk 8af6e72; the reviewer checked each diff mechanically.
The third group check failed on five mesh-controller integration tests: three asserted judging the controller no longer does (ADR 0578), two exposed a real credential regression from mesh-sdk #141 (the push would have sealed a random value as a module's bus credential), fixed by refusing an unissued bus account before the push. Whole local integration runs of all six members passed before this head (the lead allowed them, said here).
The fourth check failed only on a judge test that read mesh-host beside it; the checker places mesh-delivery, mesh-sdk and mesh-catalog beside a mesh-delivery check. The sibling reader now reads mesh-host from its captured copy (refreshed to mesh-host 233bb23b) and keeps every other missing sibling fatal. Suites passed locally with the checker's layout and with none.
Delivery
novox/mesh-delivery@8e9cc5830119— merged since 2026-11-01T07:54:38ZSource — source.main moved to novox/mesh-delivery@58748c2be1. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/judge-once: novox/mesh-catalog@432326264f, novox/mesh-controller@b564c315d0, novox/mesh-delivery@8e9cc58301, novox/mesh-host@07066fe7a0, novox/mesh-sdk@8af6e72669, novox/mesh-tools@c494018074Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 62cddf4efc62 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.