Issue 774 (L3). On 2026-10-30 23:40 the node-engine held 22 modules (an own secret not made, after the provisions group); a held module's stand-in dropped all its contributions, so postgres, keycloak and mongodb composed received lists without those consumers and waited for a yes that would have retired their logins (nextcloud's postgres login among them, without asking). Their haves stayed waiting-yes after the compositions went back, and no tool could show a composition.
Group fix/held-keeps-contributions, merge order mesh-sdk first:
mesh-sdk: held step leaveOwn (leave out only the held module's own secrets, keep its contributions), tried before the bare stub; a grant stand-in for an already-held module holds it again with that provision left out, so a node never applies a stand-in; move words name consumers joining or leaving a received list and "what it is given" for bound/secret files (judgement unchanged); the node-engine verb composition in the seat contract (optional); ChangedResources exported.
mesh-host: a have at waiting-yes whose composition equals what runs is written back to running (sealed values copied only for the same composition); the read verb composition (module, digest, diff): kept revisions, want and have, what runs, the move's judgement and words, the changed resources with consumers named; never a secret value.
Quick vs thorough: quick = leaveOwn and the have rewrite (last night's case exactly). Thorough, not built and noted on 774: carry a held module's last contributions whatever part fails; one place writes each have after every settle; a loud exit where a stand-in would still be applied.
Tests: rows in existing functions only (held_rows_test, answer_rows_test, TestJudgeMove, seats_test, the agent and link tests); each fails on main. gofmt, vet (both tags), go test pass (GOWORK=off). mesh-host pins mesh-sdk 8ed3b87 exactly.
Issue 774 (L3). On 2026-10-30 23:40 the node-engine held 22 modules (an own secret not made, after the provisions group); a held module's stand-in dropped all its contributions, so postgres, keycloak and mongodb composed received lists without those consumers and waited for a yes that would have retired their logins (nextcloud's postgres login among them, without asking). Their haves stayed waiting-yes after the compositions went back, and no tool could show a composition.
Group fix/held-keeps-contributions, merge order mesh-sdk first:
- mesh-sdk: held step leaveOwn (leave out only the held module's own secrets, keep its contributions), tried before the bare stub; a grant stand-in for an already-held module holds it again with that provision left out, so a node never applies a stand-in; move words name consumers joining or leaving a received list and "what it is given" for bound/secret files (judgement unchanged); the node-engine verb composition in the seat contract (optional); ChangedResources exported.
- mesh-host: a have at waiting-yes whose composition equals what runs is written back to running (sealed values copied only for the same composition); the read verb composition (module, digest, diff): kept revisions, want and have, what runs, the move's judgement and words, the changed resources with consumers named; never a secret value.
Quick vs thorough: quick = leaveOwn and the have rewrite (last night's case exactly). Thorough, not built and noted on 774: carry a held module's last contributions whatever part fails; one place writes each have after every settle; a loud exit where a stand-in would still be applied.
Tests: rows in existing functions only (held_rows_test, answer_rows_test, TestJudgeMove, seats_test, the agent and link tests); each fails on main. gofmt, vet (both tags), go test pass (GOWORK=off). mesh-host pins mesh-sdk 8ed3b87 exactly.
Reviewed-by: rev-held@shanks at 8ed3b872e0ba0cd0a1517c797f0e059a547e01e3
A module held for an own secret never made (nextcloud's admin on novox, 2026-10-30) was composed as a bare stub, so
its contributions left postgres's grants and keycloak's clients, and their helpers would have retired its login.
The culprit now tries leaving out its own secrets alone before its whole offer.
JudgeMove said a changed received-, bound- or secret- file as "where its data is kept"; it now names the consumers
that join or leave. The judgement stays a move: its yes is what kept nextcloud's login.
Quick fix: leave out own secrets alone before the whole offer. Thorough fix (not here): carry a held module's last
contributions from what runs into its providers' received files whatever part of it fails to compose.
A provider waiting for a yes said why only in its have's words; nobody could read the composition that waits beside
what runs. The engine's read verb composition answers that, and ChangedResources lists what a move changes, a
received file naming the consumers that join or leave.
A module held for its own secret keeps its contributions (leaveOwn). When its grant to the provider was not issued
yet, the provider's grants file carried "foreseen: made by the next send" for it, and the applying path passed over
stand-ins of a module already held. Such a stand-in now leaves that provision's contribution out of the held module.
Deliverynovox/mesh-sdk@8ed3b872e0ba — merged since 2026-10-30T23:52:54Z
Source — source.main moved to novox/mesh-sdk@dec3bfe7a8. 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 (65a2a7655981)
Transitions
2026-10-30 23:37 (new) → proposed (announced): novox/mesh-sdk#145's head announced
2026-10-30 23:37 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-10-30 23:52 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@8ed3b872e0ba` — **merged** since 2026-10-30T23:52:54Z
**Source** — source.main moved to novox/mesh-sdk@dec3bfe7a8cb. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/held-keeps-contributions`: novox/mesh-host@8da56ead8199, novox/mesh-sdk@8ed3b872e0ba
- composed together: pass — the checker's verdict at the members' heads (65a2a7655981)
**Transitions**
- 2026-10-30 23:37 (new) → proposed (announced): novox/mesh-sdk#145's head announced
- 2026-10-30 23:37 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-10-30 23:52 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`.
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.
Issue 774 (L3). On 2026-10-30 23:40 the node-engine held 22 modules (an own secret not made, after the provisions group); a held module's stand-in dropped all its contributions, so postgres, keycloak and mongodb composed received lists without those consumers and waited for a yes that would have retired their logins (nextcloud's postgres login among them, without asking). Their haves stayed waiting-yes after the compositions went back, and no tool could show a composition.
Group fix/held-keeps-contributions, merge order mesh-sdk first:
Quick vs thorough: quick = leaveOwn and the have rewrite (last night's case exactly). Thorough, not built and noted on 774: carry a held module's last contributions whatever part fails; one place writes each have after every settle; a loud exit where a stand-in would still be applied.
Tests: rows in existing functions only (held_rows_test, answer_rows_test, TestJudgeMove, seats_test, the agent and link tests); each fails on main. gofmt, vet (both tags), go test pass (GOWORK=off). mesh-host pins mesh-sdk
8ed3b87exactly.Reviewed-by: rev-held@shanks at
8ed3b872e0Delivery
novox/mesh-sdk@8ed3b872e0ba— merged since 2026-10-30T23:52:54ZSource — source.main moved to novox/mesh-sdk@dec3bfe7a8. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/held-keeps-contributions: novox/mesh-host@8da56ead81, novox/mesh-sdk@8ed3b872e0Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.