Issue 774 (L3). The bus refused every node-engine the new verb composition (and would refuse compose): buscompose engineGrants granted a fixed list from catalogue.EngineVerbs() compiled into the grants part's mesh-sdk pin (eff81f1), and every refusal made each engine drop and reopen its bus link (novox 3, ace 4 times in an hour). Second time of this kind (an earlier grants re-pin was needed for a new verb). Now a node-engine is granted mesh.seat.node-engine.tool.. (so call...) and event..: its own node only (one NATS token), callers still granted one verb at a time; a new engine verb needs no grants release. ADR 0563 §1, §3 and ADR 0259 §3 say nothing against it. Group fix/engine-seat-any-verb / fix/grants-any-engine-verb, merge order mesh-sdk first; mesh-grants pins mesh-sdk 748543c exactly (go.mod/go.sum only).
Quick vs thorough: quick = re-pin the grants part (needed again for every verb); thorough (chosen) = the per-node wildcard. The engine-seat subtest in buscompose_test gained composition, compose, a later verb and event, each on its own node only, and another node refused. gofmt, vet (both tags), go test pass.
Issue 774 (L3). The bus refused every node-engine the new verb composition (and would refuse compose): buscompose engineGrants granted a fixed list from catalogue.EngineVerbs() compiled into the grants part's mesh-sdk pin (eff81f1), and every refusal made each engine drop and reopen its bus link (novox 3, ace 4 times in an hour). Second time of this kind (an earlier grants re-pin was needed for a new verb). Now a node-engine is granted mesh.seat.node-engine.tool.*.<node> (so call.*.<node>.*) and event.*.<node>: its own node only (one NATS token), callers still granted one verb at a time; a new engine verb needs no grants release. ADR 0563 §1, §3 and ADR 0259 §3 say nothing against it. Group fix/engine-seat-any-verb / fix/grants-any-engine-verb, merge order mesh-sdk first; mesh-grants pins mesh-sdk 748543c exactly (go.mod/go.sum only).
Quick vs thorough: quick = re-pin the grants part (needed again for every verb); thorough (chosen) = the per-node wildcard. The engine-seat subtest in buscompose_test gained composition, compose, a later verb and event, each on its own node only, and another node refused. gofmt, vet (both tags), go test pass.
Reviewed-by: rev-compose@shanks at 748543c35f7f89a4a80ca762b06110d6d08f402d
The grants part composed the engine's subscriptions from catalogue.EngineVerbs at its own mesh-sdk pin, so mesh-host #184's optional verb composition was refused on every node and every engine reopened its link every four minutes. Quick fix: re-pin the grants part. Thorough fix (this): the seat's subjects on the engine's node, any verb, as a module answers mesh.mod.<module>.tool.>; callers stay granted per verb.
Deliverynovox/mesh-sdk@748543c35f7f — merged since 2026-10-31T00:30:57Z
Source — source.main moved to novox/mesh-sdk@712ec9481b. 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 (4e5238e28da7)
Transitions
2026-10-31 00:17 (new) → proposed (announced): novox/mesh-sdk#147's head announced
2026-10-31 00:17 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-31 00:30 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@748543c35f7f` — **merged** since 2026-10-31T00:30:57Z
**Source** — source.main moved to novox/mesh-sdk@712ec9481b40. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/engine-seat-any-verb`: novox/mesh-delivery@14f68219cf29, novox/mesh-sdk@748543c35f7f
- composed together: pass — the checker's verdict at the members' heads (4e5238e28da7)
**Transitions**
- 2026-10-31 00:17 (new) → proposed (announced): novox/mesh-sdk#147's head announced
- 2026-10-31 00:17 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-31 00:30 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). The bus refused every node-engine the new verb composition (and would refuse compose): buscompose engineGrants granted a fixed list from catalogue.EngineVerbs() compiled into the grants part's mesh-sdk pin (
eff81f1), and every refusal made each engine drop and reopen its bus link (novox 3, ace 4 times in an hour). Second time of this kind (an earlier grants re-pin was needed for a new verb). Now a node-engine is granted mesh.seat.node-engine.tool.. (so call...) and event..: its own node only (one NATS token), callers still granted one verb at a time; a new engine verb needs no grants release. ADR 0563 §1, §3 and ADR 0259 §3 say nothing against it. Group fix/engine-seat-any-verb / fix/grants-any-engine-verb, merge order mesh-sdk first; mesh-grants pins mesh-sdk748543cexactly (go.mod/go.sum only).Quick vs thorough: quick = re-pin the grants part (needed again for every verb); thorough (chosen) = the per-node wildcard. The engine-seat subtest in buscompose_test gained composition, compose, a later verb and event, each on its own node only, and another node refused. gofmt, vet (both tags), go test pass.
Reviewed-by: rev-compose@shanks at
748543c35fDelivery
novox/mesh-sdk@748543c35f7f— merged since 2026-10-31T00:30:57ZSource — source.main moved to novox/mesh-sdk@712ec9481b. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/engine-seat-any-verb: novox/mesh-delivery@14f68219cf, novox/mesh-sdk@748543c35fTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.