The controller takes the indexer's verdict instead of judging manifests; route-proxy declares its credential form (ADR 0578, 0579) #489

Merged
mesh-tools merged 9 commits from feat/judge-once into main 2026-11-01 07:54:24 +00:00
Member

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: key take-in decodes and takes the verdict (no wait on a word it cannot read); module check removed; route-proxy provides route with credential form none.

Reviewed-by: reviewer-1585@shanks at b564c315d0
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).

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: key take-in decodes and takes the verdict (no wait on a word it cannot read); module check removed; route-proxy provides route with credential form none. Reviewed-by: reviewer-1585@shanks at b564c315d01236fbb64bb095205fc6990bc2354a 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).
mesh-tools added 6 commits 2026-11-01 02:20:18 +00:00
Issue 1585, S18 (ADR 0578 §3, §6): a done key's manifest is decoded leniently and the verdict read from the
indexer's state; a refused one is held and named, an unread word set aside and named, never a wait. The
module check command, which judged files with no mesh and which nothing calls any more, goes with its tests.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S18 (ADR 0578 §3): registerJudged no longer re-judges the manifest or its predefined keys, and a
standing build is read leniently; module add decodes and judges nothing. Resolve never re-parsed a manifest,
so a key-key fallback needs no list there; a table row holds that.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Issue 1585, S18/S19: the judge's tests live in mesh-delivery now, so an assertion that only tested judging goes
and every test that builds a manifest decodes it.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The manifest judge refuses an offer that says no credential form (issue 1585).

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Pin mesh-sdk at the head after review round 1
mesh/delivery closed: a newer head of the same pull request
mesh/delivery-group group feat/judge-once checking: 4 of 6 member(s) ready
mesh/check checking 4a92ec610227 on dc90b3f5bd13 | novox/mesh-controller#489 in group feat/judge-once
4a92ec6102
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

Delivery novox/mesh-controller@b564c315d012 — merged since 2026-11-01T07:54:30Z

Source — source.main moved to novox/mesh-controller@88b16e9be2. 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@432326264f, novox/mesh-controller@b564c315d0, novox/mesh-delivery@8e9cc58301, novox/mesh-host@07066fe7a0, novox/mesh-sdk@8af6e72669, novox/mesh-tools@c494018074

  • composed together: pass — the checker's verdict at the members' heads (a0269268ba29)

Transitions

  • 2026-11-01 03:14 (new) → proposed (announced): novox/mesh-controller#489's head announced
  • 2026-11-01 03:14 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-controller@b564c315d012` — **merged** since 2026-11-01T07:54:30Z **Source** — source.main moved to novox/mesh-controller@88b16e9be20d. 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:14 (new) → proposed (announced): novox/mesh-controller#489's head announced - 2026-11-01 03:14 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`.
Author
Member

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.
jschoubben added 1 commit 2026-11-01 02:31:11 +00:00
Pin the group's mesh-sdk head after the gofmt fix
mesh/delivery-group group feat/judge-once rejected: composed together: the checker's verdict at the members' heads (0920e5637ce1): integration: github.com/novo…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed (5 tests): integration: github.com/novox/mesh-controller/cmd/mesh-controller.TestABuildHeardIsRecordedAndRegistered: a definition na…
e02fcad739
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

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.
jschoubben added 2 commits 2026-11-01 03:14:45 +00:00
mesh-sdk #141 (issue 774) stands an unissued bus account in, in the Foreseeing mode, so a proposal's answer can be
asked before the vault mints it; the controller's send then took the stand-in for an own secret to make and would
seal a random value where the broker credential belongs. The send and the question refuse it now, in the words the
composition used to: module issue, then push.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Test the controller as one that judges no manifest, and reset the new-module waits each test leaves (ADR 0578)
mesh/delivery merged: source.main moved to novox/mesh-controller@88b16e9be20d
mesh/delivery-group group feat/judge-once merged: every member is merged
mesh/check checking b564c315d012 on dc90b3f5bd13 | novox/mesh-controller#489 in group feat/judge-once
b564c315d0
Issue 1585: registration publishes the predefined list and judges nothing against it; a definition naming an
installation is the indexer's judge's to refuse; a word the controller does not read is set aside and the module
registered (0578 §6 changes 0501 §7); a refused verdict holds the module and names it. The process-wide list of
new modules waiting is emptied at each take-in test's start and end, so no test reads another's.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

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.
Author
Member

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-tools merged commit 88b16e9be2 into main 2026-11-01 07:54:24 +00:00
mesh-tools deleted branch feat/judge-once 2026-11-01 07:54:24 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#489