mesh-vault takes what runs of a node's own secret through move-in, on the node's ask (issue 1126 C4, group fix/1126-seed-same) #535

Merged
mesh-tools merged 6 commits from fix/1126-seed-same into main 2026-10-28 09:46:29 +00:00
Member

Delivery group fix/1126-seed-same (mesh-sdk, mesh-host, mesh-delivery, mesh-catalog), design 47 milestone L2; mesh-vault pins mesh-sdk 3028c7ec4ed2.

Cause C4: the vault's stored value of some own secrets differs from what the node runs (only-office's jwt on novox, brother's bus account on shanks), so a node composing itself would compose the stale value.

  • move-in with replace_running: true takes the running value from the owning node-engine only. Refused: another caller, another node's secret, a name that is not an own secret, an operator-given value, a provider-issued value other than a covered bus account, an empty value, a value the vault changed less than 15 minutes ago, or while the switch is off.
  • A replacement keeps the previous value sealed, raises the generation, says secret-changed and own-replaced (no value), and records the hand-out.
  • New tools: own_drift (what drifted, per node) and own_take_switch (a person's switch, kept in the vault's store).
  • Registers under the controller's pinned mesh-sdk with no new verb (checked with ParseManifest and CanHold).

Quick vs thorough: the existing move-in verb instead of a new verb, so the controller stays out of the group; said on issue 1126.
Tests: one table-driven test (117 Test functions, budget 500), each row fails without its fix; gofmt, vet, -tags integration, go test pass.

Reviewed-by: rev-seed-same@shanks at 0974d1a57d

Delivery group fix/1126-seed-same (mesh-sdk, mesh-host, mesh-delivery, mesh-catalog), design 47 milestone L2; mesh-vault pins mesh-sdk 3028c7ec4ed2. Cause C4: the vault's stored value of some own secrets differs from what the node runs (only-office's jwt on novox, brother's bus account on shanks), so a node composing itself would compose the stale value. - move-in with replace_running: true takes the running value from the owning node-engine only. Refused: another caller, another node's secret, a name that is not an own secret, an operator-given value, a provider-issued value other than a covered bus account, an empty value, a value the vault changed less than 15 minutes ago, or while the switch is off. - A replacement keeps the previous value sealed, raises the generation, says secret-changed and own-replaced (no value), and records the hand-out. - New tools: own_drift (what drifted, per node) and own_take_switch (a person's switch, kept in the vault's store). - Registers under the controller's pinned mesh-sdk with no new verb (checked with ParseManifest and CanHold). Quick vs thorough: the existing move-in verb instead of a new verb, so the controller stays out of the group; said on issue 1126. Tests: one table-driven test (117 Test functions, budget 500), each row fails without its fix; gofmt, vet, -tags integration, go test pass. Reviewed-by: rev-seed-same@shanks at 0974d1a57d998fb07308a5c5ff06e0e1a84683e3
mesh-tools added 6 commits 2026-10-28 09:05:58 +00:00
move-in never replaces a value the vault holds, so where the controller made an own secret anew after the move, the
new value runs while the vault keeps the first. The verb own-take-running takes it from the node-engine of the machine
it is for, keeps the replaced value as the previous generation, raises the generation and says own-replaced without a
value; own_drift lists every own secret a node's shadow answer says another value of, mesh-wide. The module needs the
mesh-sdk head of fix/1126-seed-same-own-resync (delivery.OwnValuesDiffer, the seat's verb).
mesh-vault's own_drift row carries the id as a node runs it, its module's name first, and the vault pins mesh-sdk 3028c7e (issue 1126, cause C4; review round 2)
mesh/delivery merged: source.main moved to novox/mesh-catalog@9fd95693db54
mesh/delivery-group group fix/1126-seed-same merged: every member is merged
mesh/check being carried to 0974d1a57d99 on 2a03c106f4b9 | from 9fd95693db54
0974d1a57d
Author
Member

Delivery novox/mesh-catalog@0974d1a57d99 — merged since 2026-10-28T09:46:30Z

Source — source.main moved to novox/mesh-catalog@9fd95693db. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group fix/1126-seed-same: novox/mesh-catalog@0974d1a57d, novox/mesh-delivery@2cccbfd096, novox/mesh-host@c912bcab6e, novox/mesh-sdk@3028c7ec4e

  • composed together: fail — the checker's verdict at the members' heads (3cb7f74b347d): integration: github.com/novox/mesh-host/cmd/mesh-host.TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn

Transitions

  • 2026-10-28 09:05 (new) → proposed (announced): novox/mesh-catalog#535's head announced
  • 2026-10-28 09:06 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 09:46 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-catalog@0974d1a57d99` — **merged** since 2026-10-28T09:46:30Z **Source** — source.main moved to novox/mesh-catalog@9fd95693db54. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1126-seed-same`: novox/mesh-catalog@0974d1a57d99, novox/mesh-delivery@2cccbfd096d8, novox/mesh-host@c912bcab6e73, novox/mesh-sdk@3028c7ec4ed2 - composed together: fail — the checker's verdict at the members' heads (3cb7f74b347d): integration: github.com/novox/mesh-host/cmd/mesh-host.TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn **Transitions** - 2026-10-28 09:05 (new) → proposed (announced): novox/mesh-catalog#535's head announced - 2026-10-28 09:06 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 09:46 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 9fd95693db into main 2026-10-28 09:46:29 +00:00
mesh-tools deleted branch fix/1126-seed-same 2026-10-28 09:46:29 +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-catalog#535