sdk1: mesh-sdk keeps only what every module shares (ADR 0593) #161

Merged
mesh-tools merged 22 commits from feat/sdk1 into main 2026-11-02 20:41:38 +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 process.TestStatePutWritesAKeyWhole): tests leaked mesh-sdk's package-wide retry bounds and serving state; fixed as a kind (busretry.Waits with t.Cleanup, servesAlone in the root package's tests), the second failure of that kind. The node-engine's test of the controller's own manifest at genesis step 9 is deleted: the controller's repository is emptied (genesis's own rework is noted on issue 1152).

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); mesh-sdk also under load with -shuffle=on -cpu 1. 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 f02f142af1

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 process.TestStatePutWritesAKeyWhole): tests leaked mesh-sdk's package-wide retry bounds and serving state; fixed as a kind (busretry.Waits with t.Cleanup, servesAlone in the root package's tests), the second failure of that kind. The node-engine's test of the controller's own manifest at genesis step 9 is deleted: the controller's repository is emptied (genesis's own rework is noted on issue 1152). 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); mesh-sdk also under load with -shuffle=on -cpu 1. 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 f02f142af128b336c32a7f0059c5e1606bf9b1dc https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-tools added 21 commits 2026-11-02 18:57:40 +00:00
The operator, 2026-11-02: a failed check showed only its first fault; a group's three faults took three runs.
The change's own packages still run first (issue 1289), and nothing after them is skipped.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
catalogue: the composition's rules and refusals leave for the node-engine, so mesh-sdk renders no declaration and refuses no composition (ADR 0593 §7)
mesh/delivery-group group feat/sdk1 rejected: composed together: the checker's verdict at the members' heads (428d048dd50a): unit: git.novox.be/novox/mesh-sdk/…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-sdk/go/process.TestStatePutWritesAKeyWhole: a Put through a short blackout: 0, mesh-mail's state send…
1c7356c247
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

Delivery novox/mesh-sdk@f02f142af128 — merged since 2026-11-02T20:41:44Z

Source — source.main moved to novox/mesh-sdk@7c015b652d. 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:11 (new) → proposed (announced): novox/mesh-sdk#161's head announced
  • 2026-11-02 19:11 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:41 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-sdk@f02f142af128` — **merged** since 2026-11-02T20:41:44Z **Source** — source.main moved to novox/mesh-sdk@7c015b652d36. 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:11 (new) → proposed (announced): novox/mesh-sdk#161's head announced - 2026-11-02 19:11 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:41 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`.
jschoubben added 1 commit 2026-11-02 19:11:18 +00:00
Tests put back the package state they set, so a loaded check machine trips no leaked bound
mesh/delivery merged: source.main moved to novox/mesh-sdk@7c015b652d36
mesh/delivery-group group feat/sdk1 merged: every member is merged
mesh/check failed: the composition: the composer at mesh-sdk f02f142af128b336c32a7f0059c5e1606bf9b1dc did not run: failed the composer git.novox.be/no…
f02f142af1
The check of release sdk1 failed on TestStatePutWritesAKeyWhole: TestACallIsAskedAgainOnlyWhenItReachedNoOne
left busretry's Bound at 50 ms, and on a loaded machine the state test's first pause overran it. Second failure
of the kind "tests leave package-level state set".

Quick fix: restore busretry's waits in the one test and lengthen the state test's bound.
Thorough fix (chosen, the kind met twice): busretry.Waits sets the waits and returns their restore, used as
t.Cleanup(busretry.Waits(...)) by every test that sets them, each with a bound of seconds where it waits to
succeed; and servesAlone gives every test that serves its own runtime channel and Served, put back after it,
instead of tests clearing the channel an earlier one left. A scan of every test assignment to a package-level
variable found no other unrestored one.

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.
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 7c015b652d into main 2026-11-02 20:41:38 +00:00
mesh-tools deleted branch feat/sdk1 2026-11-02 20:41:39 +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-sdk#161