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.
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
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
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/check failed: unit: git.novox.be/novox/mesh-sdk/go/process.TestStatePutWritesAKeyWhole: a Put through a short blackout: 0, mesh-mail's state send…
Deliverynovox/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.
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`.
mesh/check failed: the composition: the composer at mesh-sdk f02f142af128b336c32a7f0059c5e1606bf9b1dc did not run: failed the composer git.novox.be/no…
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
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: 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.
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.
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
f02f142af1https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Delivery
novox/mesh-sdk@f02f142af128— merged since 2026-11-02T20:41:44ZSource — source.main moved to novox/mesh-sdk@7c015b652d. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.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@24c0ec0d32Transitions
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: 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: 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.