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/check failed: unit: github.com/novox/mesh-controller/cmd/mesh-controller.TestModuleCheckPassesTheCatalogue: the catalogue does not pass its own c…
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.
Deliverynovox/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.
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`.
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.
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 1126 (note 15), blocking: L2 gave mesh-vault the verb
ownand 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.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. Inputcredentials, the shape the vault's tool takes and mesh-host's self-compose sends.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'ssecret-changedevent, and the vault's holder gains the subject's subscribe and anownmembership entry. Today a node-engine'sowncall 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
e78e881ecbDelivery
novox/mesh-sdk@e78e881ecb3c— merged since 2026-10-26T22:00:45ZSource — source.main moved to novox/mesh-sdk@f178323b57. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1126-vault-seat-own: novox/mesh-controller@b8cafccaf6, novox/mesh-sdk@e78e881ecbTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.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.