The mesh-vault seat promises own, the verb L2 gave the vault (issue 1126) #103

Merged
mesh-tools merged 1 commits from fix/1126-vault-seat-own into main 2026-10-26 22:00:44 +00:00
Member

Issue 1126 (note 15), blocking: L2 gave mesh-vault the verb own and put it in the vault's claim, but not in the mesh-vault seat here. mesh-controller main's TestModuleCheckPassesTheCatalogue fails on it (found by the operator-asked try of main, 2026-10-26 21:32Z), so every mesh-controller check fails until this lands.

  • go/catalogue/seats.go: the mesh-vault seat gains own (Optional, like node-key). It answers one machine's node-engine about its own machine alone (the bus proves the caller): its modules' own secrets and the pair credentials it names, each sealed to the key it stated with node-key; a credential the vault does not hold is named missing. Input credentials, the shape the vault's tool takes and mesh-host's self-compose sends.
  • go/catalogue/vault_seat_test.go: a row in the existing table.

What changes on delivery (said for the operator): the controller fills a held seat's serves from this definition, so once delivered every node principal gains publish on its own mesh.seat.mesh-vault.call.own.<token> and subscribe on the vault's secret-changed event, and the vault's holder gains the subject's subscribe and an own membership entry. Today a node-engine's own call is refused by the bus; after this it is allowed, as ADR 0550 §5 designs. No node calls it yet: a node composes its own only once the catalogue places it, and no placement file is seeded.

Quick vs thorough: quick, the missing verb; the kind (a claim's verb its seat does not promise) is already refused by module check, so the thorough fix is the group check running before a merge (issues 1733, 1890), not a new check.

Member of the delivery group fix/1126-vault-seat-own (mesh-sdk, mesh-controller).

Reviewed-by: review-vaultseat@shanks at e78e881ecb

Issue 1126 (note 15), blocking: L2 gave mesh-vault the verb `own` and put it in the vault's claim, but not in the mesh-vault seat here. mesh-controller main's TestModuleCheckPassesTheCatalogue fails on it (found by the operator-asked try of main, 2026-10-26 21:32Z), so every mesh-controller check fails until this lands. - go/catalogue/seats.go: the mesh-vault seat gains `own` (Optional, like node-key). It answers one machine's node-engine about its own machine alone (the bus proves the caller): its modules' own secrets and the pair credentials it names, each sealed to the key it stated with node-key; a credential the vault does not hold is named missing. Input `credentials`, the shape the vault's tool takes and mesh-host's self-compose sends. - go/catalogue/vault_seat_test.go: a row in the existing table. **What changes on delivery (said for the operator):** the controller fills a held seat's serves from this definition, so once delivered every node principal gains publish on its own `mesh.seat.mesh-vault.call.own.<token>` and subscribe on the vault's `secret-changed` event, and the vault's holder gains the subject's subscribe and an `own` membership entry. Today a node-engine's `own` call is refused by the bus; after this it is allowed, as ADR 0550 §5 designs. No node calls it yet: a node composes its own only once the catalogue places it, and no placement file is seeded. Quick vs thorough: quick, the missing verb; the kind (a claim's verb its seat does not promise) is already refused by module check, so the thorough fix is the group check running before a merge (issues 1733, 1890), not a new check. Member of the delivery group fix/1126-vault-seat-own (mesh-sdk, mesh-controller). Reviewed-by: review-vaultseat@shanks at e78e881ecb3c813852e1369faca8f387df0fd4e7
mesh-tools added 1 commit 2026-10-26 21:49:13 +00:00
The vault's seat promises own, which L2's vault serves and its claim names, so the controller's catalogue check passes (issue 1126)
mesh/delivery merged: source.main moved to novox/mesh-sdk@f178323b5790
mesh/delivery-group group fix/1126-vault-seat-own merged: every member is merged
mesh/check failed: unit: github.com/novox/mesh-controller/cmd/mesh-controller.TestModuleCheckPassesTheCatalogue: the catalogue does not pass its own c…
e78e881ecb
mesh-catalog's mesh-vault claims its seat serving own (a machine's node-engine asks its own machine's secrets and
pair credentials sealed to its stated key), and buscompose already grants that call to node principals
(AsksItsOwnSecrets, VaultOwn); only the seat's verb list lacked it, so a claim naming it was refused.
Author
Member

Delivery novox/mesh-sdk@e78e881ecb3c — merged since 2026-10-26T22:00:45Z

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

Group fix/1126-vault-seat-own: novox/mesh-controller@b8cafccaf6, novox/mesh-sdk@e78e881ecb

  • composed together: fail — the checker's verdict at the members' heads (49a11201c6df): unit: github.com/novox/mesh-controller/cmd/mesh-controller.TestModuleCheckPassesTheCatalogue

Transitions

  • 2026-10-26 21:49 (new) → proposed (announced): novox/mesh-sdk#103's head announced
  • 2026-10-26 21:49 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-26 22:00 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@e78e881ecb3c` — **merged** since 2026-10-26T22:00:45Z **Source** — source.main moved to novox/mesh-sdk@f178323b5790. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1126-vault-seat-own`: novox/mesh-controller@b8cafccaf636, novox/mesh-sdk@e78e881ecb3c - composed together: fail — the checker's verdict at the members' heads (49a11201c6df): unit: github.com/novox/mesh-controller/cmd/mesh-controller.TestModuleCheckPassesTheCatalogue **Transitions** - 2026-10-26 21:49 (new) → proposed (announced): novox/mesh-sdk#103's head announced - 2026-10-26 21:49 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-26 22:00 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`.
Author
Member

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.

mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-tools merged commit f178323b57 into main 2026-10-26 22:00:44 +00:00
mesh-tools deleted branch fix/1126-vault-seat-own 2026-10-26 22:00:45 +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#103