The node answers a placement candidate once, retries a read the bus did not answer, and keeps a file's secrets entry by entry (issue 1126; group fix/1126-seed-same-3)
#160
Merged
mesh-toolsmerged 7 commits from fix/1126-seed-same-3 into main2026-10-28 11:40:39 +00:00
Delivery group fix/1126-seed-same-3 (mesh-sdk, mesh-host); pins mesh-sdk 8520a4c.
The bus outage of 2026-10-28 10:45-10:56Z (issue 1126 note 66): the shadow re-answered every candidate group on any write to the node's own module haves (health words alone) and on any rewrite of a placement/module/config key with the same value; each answer took 13-17 s of bus reads, which made health tools time out, which changed health words, which re-answered.
A candidate revision is answered once; again only when an input really changed (what runs, the folded modules, a value that differs, a node record, a want); its own write never wakes it.
A read the bus did not answer is retried after a bound (LaterWait 5 s to 5 min), never kept as an answer: the shadow's reads, the own composer, ownresync (running and hand), Env.Held and ReadNodeHaveErr; BusFailed tells a failed read from the run's own cancellation.
keepRunning keeps a file's secrets entry by entry (the SDK's slots).
Test globals (composeAgain, laterAgain, notReadyAfter, slowAfter) are set through setFor with t.Cleanup; an unplaced node no longer re-arms its retry (review round 1).
Quick vs thorough: thorough (the kind 'a failed read kept as an answer' fixed in every place found, the second time it was met).
Tests: rows only (1269 Test functions, unchanged); the named integration test TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn with its subtest one_answer_per_candidate_revision passes locally against an embedded bus (it fails on main: 'answered 2 more time(s) at the same revision'); -race -count=3 on selfcompose.
Notes kept for later (issue 1126 note 67): the shadow does not hear the vault's secret-changed event; a permission refusal is retried like a bus failure.
Delivery group fix/1126-seed-same-3 (mesh-sdk, mesh-host); pins mesh-sdk 8520a4c.
The bus outage of 2026-10-28 10:45-10:56Z (issue 1126 note 66): the shadow re-answered every candidate group on any write to the node's own module haves (health words alone) and on any rewrite of a placement/module/config key with the same value; each answer took 13-17 s of bus reads, which made health tools time out, which changed health words, which re-answered.
- A candidate revision is answered once; again only when an input really changed (what runs, the folded modules, a value that differs, a node record, a want); its own write never wakes it.
- A read the bus did not answer is retried after a bound (LaterWait 5 s to 5 min), never kept as an answer: the shadow's reads, the own composer, ownresync (running and hand), Env.Held and ReadNodeHaveErr; BusFailed tells a failed read from the run's own cancellation.
- keepRunning keeps a file's secrets entry by entry (the SDK's slots).
- Test globals (composeAgain, laterAgain, notReadyAfter, slowAfter) are set through setFor with t.Cleanup; an unplaced node no longer re-arms its retry (review round 1).
Quick vs thorough: thorough (the kind 'a failed read kept as an answer' fixed in every place found, the second time it was met).
Tests: rows only (1269 Test functions, unchanged); the named integration test TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn with its subtest one_answer_per_candidate_revision passes locally against an embedded bus (it fails on main: 'answered 2 more time(s) at the same revision'); -race -count=3 on selfcompose.
Notes kept for later (issue 1126 note 67): the shadow does not hear the vault's secret-changed event; a permission refusal is retried like a bus failure.
Reviewed-by: rev-seed-same-3@shanks at 1e01868d92c38870bafcbb6282563e499afd624e
On shanks probe/1126-seed-7 was answered at revision 84 every 13-17 s: each look rewrote
the haves of its unhealthy modules with new words, and the shadow took any write of its
own module haves, placement, modules or config values as a change. Each answer loaded
the bus, the health tools timed out, the words moved again. Now only what an answer is
composed from wakes it (what runs, folded modules, a changed value), and each group is
answered again only when its keys' revisions or the node's inputs moved.
Met twice on 2026-10-28: shanks kept 'want.shanks.brother could not be read ... no
responders' as the own-secret step's last word, and ace kept 'the vault's own: not yet
... no responders' as its answer to seed-7, each until another input moved. Every bus
read of the composer (manifests, builds, archives, served values, the vault's own and
credentials, the have of what runs) is noted (BusFailed); an answer or a pass that met
one is made again after a growing bound (5 s to 5 min), and a pass is not handed when
the have of its sealed values did not answer. The own-secret step tells a read or an
ask that did not answer (Retry, taken again) from a key absent or the vault's word.
Deliverynovox/mesh-host@1e01868d92c3 — merged since 2026-10-28T11:40:40Z
Source — source.main moved to novox/mesh-host@df878ba1f7. 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 (8ad62a745898)
Transitions
2026-10-28 11:28 (new) → proposed (announced): novox/mesh-host#160's head announced
2026-10-28 11:28 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-28 11:40 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@1e01868d92c3` — **merged** since 2026-10-28T11:40:40Z
**Source** — source.main moved to novox/mesh-host@df878ba1f780. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/1126-seed-same-3`: novox/mesh-host@1e01868d92c3, novox/mesh-sdk@8520a4c09960
- composed together: pass — the checker's verdict at the members' heads (8ad62a745898)
**Transitions**
- 2026-10-28 11:28 (new) → proposed (announced): novox/mesh-host#160's head announced
- 2026-10-28 11:28 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-28 11:40 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.
Delivery group fix/1126-seed-same-3 (mesh-sdk, mesh-host); pins mesh-sdk 8520a4c.
The bus outage of 2026-10-28 10:45-10:56Z (issue 1126 note 66): the shadow re-answered every candidate group on any write to the node's own module haves (health words alone) and on any rewrite of a placement/module/config key with the same value; each answer took 13-17 s of bus reads, which made health tools time out, which changed health words, which re-answered.
Quick vs thorough: thorough (the kind 'a failed read kept as an answer' fixed in every place found, the second time it was met).
Tests: rows only (1269 Test functions, unchanged); the named integration test TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn with its subtest one_answer_per_candidate_revision passes locally against an embedded bus (it fails on main: 'answered 2 more time(s) at the same revision'); -race -count=3 on selfcompose.
Notes kept for later (issue 1126 note 67): the shadow does not hear the vault's secret-changed event; a permission refusal is retried like a bus failure.
Reviewed-by: rev-seed-same-3@shanks at
1e01868d92Delivery
novox/mesh-host@1e01868d92c3— merged since 2026-10-28T11:40:40ZSource — source.main moved to novox/mesh-host@df878ba1f7. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1126-seed-same-3: novox/mesh-host@1e01868d92, novox/mesh-sdk@8520a4c099Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.