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 8da56ead8199abaa0bdd5849081404f94cc432ad
waitsForYes returned at once for a composition equal to what runs, and settleOne then found nothing to apply, so
the have kept phase waiting-yes for a move that no longer existed (ace.postgres, novox.postgres, novox.keycloak and
novox.mongodb on 2026-10-31). The have is now rewritten to running.
Quick fix: rewrite the have where the equal composition is met. Thorough fix (not here): one place that writes a
module's have from the settled state after every settle, so no early return can leave a stale phase.
Four providers waited for a yes on 2026-10-31 and nobody could read what waited: the have said only
"where its data is kept". The read verb composition answers it from the engine: the latest revision of the
want's build or the one asked by digest, every revision the bucket keeps, what runs and where that is known from,
the want and the have, the move's judgement and whether it waits for a yes, and with diff the resources that
differ, a received file naming its consumers. revisionNamed now reads the same revisions.
Deliverynovox/mesh-host@8da56ead8199 — merged since 2026-10-30T23:52:55Z
Source — source.main moved to novox/mesh-host@91fb323ce0. 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-host#184'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-host@8da56ead8199` — **merged** since 2026-10-30T23:52:55Z
**Source** — source.main moved to novox/mesh-host@91fb323ce0cf. 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-host#184'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 8ed3b87 exactly.
Reviewed-by: rev-held@shanks at
8da56ead81Delivery
novox/mesh-host@8da56ead8199— merged since 2026-10-30T23:52:55ZSource — source.main moved to novox/mesh-host@91fb323ce0. 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.