sdk1: node-tools reads per-node states through mesh-sdk's pernode #56

Merged
mesh-tools merged 4 commits from feat/sdk1 into main 2026-11-02 20:43:23 +00:00
Member

Release sdk1 of issue 1126 (the controller's removal), delivery group feat/sdk1: mesh-sdk, mesh-catalog, mesh-delivery, mesh-host (the node-engine), mesh-tools, mesh-networking and the controller's repository. Decision: ADR 0593 (mesh-sdk keeps only what every module shares; the node-engine alone composes; the indexer alone computes a fingerprint, over the content of the mesh packages a module imports), with ADR 0591 (a failed check names every failure) and the mesh-sdk part of ADR 0592 (object buckets, history streams). Every member pins mesh-sdk f02f142.

After the first check (20:05, failed on mesh-sdk process.TestStatePutWritesAKeyWhole): tests leaked mesh-sdk's package-wide retry bounds and serving state; fixed as a kind in mesh-sdk, and every member re-pinned.

Tests: gofmt, go vet with and without the integration tag, and the unit and integration suites of every Go module in every member pass locally with GOWORK=off against the pins (mesh-catalog 4053 unit / 91 integration; mesh-delivery 805 / 71; mesh-host 1764 / 6). Delivered ahead of it: mesh-catalog #597 (a relative replace resolves in the build module's temporary modfile).

Bent rules, said (rules-are-weighed): the node-engine's unit tests rise from 1232 to 1764 because about 530 moved in with the composition rules from mesh-sdk, whose count falls from 1425 to 607, so the mesh-wide count falls. Modules that import a sibling package of their own repository rebuild once more after the release, at their repository's first merge, when the version line first takes the sibling's content (a one-time breach of ADR 0593 §4). The TypeScript package's move (subtask SDK9) stays out on purpose: the running indexer would lose fingerprints.

Reviewed-by: review-1126@shanks at 24c0ec0d32

https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL

Release sdk1 of issue 1126 (the controller's removal), delivery group feat/sdk1: mesh-sdk, mesh-catalog, mesh-delivery, mesh-host (the node-engine), mesh-tools, mesh-networking and the controller's repository. Decision: ADR 0593 (mesh-sdk keeps only what every module shares; the node-engine alone composes; the indexer alone computes a fingerprint, over the content of the mesh packages a module imports), with ADR 0591 (a failed check names every failure) and the mesh-sdk part of ADR 0592 (object buckets, history streams). Every member pins mesh-sdk f02f142. After the first check (20:05, failed on mesh-sdk process.TestStatePutWritesAKeyWhole): tests leaked mesh-sdk's package-wide retry bounds and serving state; fixed as a kind in mesh-sdk, and every member re-pinned. Tests: gofmt, go vet with and without the integration tag, and the unit and integration suites of every Go module in every member pass locally with GOWORK=off against the pins (mesh-catalog 4053 unit / 91 integration; mesh-delivery 805 / 71; mesh-host 1764 / 6). Delivered ahead of it: mesh-catalog #597 (a relative replace resolves in the build module's temporary modfile). Bent rules, said (rules-are-weighed): the node-engine's unit tests rise from 1232 to 1764 because about 530 moved in with the composition rules from mesh-sdk, whose count falls from 1425 to 607, so the mesh-wide count falls. Modules that import a sibling package of their own repository rebuild once more after the release, at their repository's first merge, when the version line first takes the sibling's content (a one-time breach of ADR 0593 §4). The TypeScript package's move (subtask SDK9) stays out on purpose: the running indexer would lose fingerprints. Reviewed-by: review-1126@shanks at 24c0ec0d324a7621918b0a4219aef9f269e8fe3f https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-tools added 3 commits 2026-11-02 18:58:05 +00:00
The provisioner, the assigner and the view read every node's composition (ADR 0593 §6); the runtime followed mesh-sdk's membership.StateIssued PerNode and process.NodeFamily on its own connection.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Replaces the runtime's own bucket listing, advisory hearing and per-bucket bookkeeping; the bound on progress and the runtime's shapes stay here. ADR 0593 §6.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Pin mesh-sdk at the sdk1 group's head 1c7356c, so the group's check builds every module against the narrowed SDK it was written for
mesh/delivery-group group feat/sdk1 checking: 7 of 7 member(s) ready
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: meshbuildgo/cmd/mesh-build-go.TestAComposeAskIsBuiltOnceAndAnsweredOnTheBus: NOT CHECKED: the node-engine's composer c…
bd24ceafa9
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

Delivery novox/mesh-tools@24c0ec0d324a — merged since 2026-11-02T20:43:25Z

Source — source.main moved to novox/mesh-tools@b8e42cf54c. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group feat/sdk1: novox/mesh-catalog@d221c63379, novox/mesh-controller@5970367173, novox/mesh-delivery@2b5a7fe831, novox/mesh-host@ae4b86e333, novox/mesh-networking@f18ec031c4, novox/mesh-sdk@f02f142af1, novox/mesh-tools@24c0ec0d32

  • composed together: fail — the checker's verdict at the members' heads (10899da235da): the composition

Transitions

  • 2026-11-02 19:24 (new) → proposed (announced): novox/mesh-tools#56's head announced
  • 2026-11-02 19:24 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-02 20:43 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-tools@24c0ec0d324a` — **merged** since 2026-11-02T20:43:25Z **Source** — source.main moved to novox/mesh-tools@b8e42cf54cf6. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `feat/sdk1`: novox/mesh-catalog@d221c633799a, novox/mesh-controller@597036717394, novox/mesh-delivery@2b5a7fe831c1, novox/mesh-host@ae4b86e33300, novox/mesh-networking@f18ec031c463, novox/mesh-sdk@f02f142af128, novox/mesh-tools@24c0ec0d324a - composed together: fail — the checker's verdict at the members' heads (10899da235da): the composition **Transitions** - 2026-11-02 19:24 (new) → proposed (announced): novox/mesh-tools#56's head announced - 2026-11-02 19:24 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-02 20:43 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: 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 1 commit 2026-11-02 19:24:29 +00:00
Pin mesh-sdk at f02f142, the sdk1 head whose tests no longer leak package globals, so the group's check builds against it
mesh/delivery merged: source.main moved to novox/mesh-tools@b8e42cf54cf6
mesh/delivery-group group feat/sdk1 merged: every member is merged
mesh/check checking 24c0ec0d324a on d7d908cf67ae | novox/mesh-tools#56 in group feat/sdk1
24c0ec0d32
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: its head 3b3b096be8cd 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 3b3b096be8cd 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-tools merged commit b8e42cf54c into main 2026-11-02 20:43:23 +00:00
mesh-tools deleted branch feat/sdk1 2026-11-02 20:43: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-tools#56