A held module keeps what it contributes, a have stuck at waiting-yes clears, and the node-engine shows a composition (issue 774) #145

Merged
mesh-tools merged 3 commits from fix/held-keeps-contributions into main 2026-10-30 23:52:51 +00:00
Member

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 8ed3b872e0

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
mesh-tools added 3 commits 2026-10-30 23:37:44 +00:00
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.
Leave out a held module's contribution whose grant is not issued, so a provider never applies a stand-in (issue 774, review round 1)
mesh/delivery merged: source.main moved to novox/mesh-sdk@dec3bfe7a8cb
mesh/delivery-group group fix/held-keeps-contributions merged: every member is merged
mesh/check checking 8ed3b872e0ba on dec3bfe7a8cb | novox/mesh-sdk#145 in group fix/held-keeps-contributions
8ed3b872e0
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.
Author
Member

Delivery novox/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.

Group fix/held-keeps-contributions: novox/mesh-host@8da56ead81, novox/mesh-sdk@8ed3b872e0

  • 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`.
mesh-tools merged commit dec3bfe7a8 into main 2026-10-30 23:52:51 +00:00
mesh-tools deleted branch fix/held-keeps-contributions 2026-10-30 23:52:52 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-sdk#145