forge bridge: a catalogue pull message carries every placement file at its head (merged message unchanged).
indexer: writes placement-candidates . for nodes whose file differs from the trunk, deletes them at merge, close, a new head or a pull no longer open; new tool indexer_placement_reread.
view: indexer_placement shows each candidate and every placed node's answer (same / differs / refused / stale / none).
assigner: composes the change's own placement from the bus (A2); judges every node placed at the head or on the trunk: an unintended difference, a refusal, or silence past 10 minutes fails the check naming the node ('(offline)' from presence); at the seed nothing is intended, so every node must answer 'same'.
checker: a verdict that failed only for a silent node takes the same heads' later passing composition in on its event, with no new check (ADR 0548 §1).
mesh-grants pinned to the group head: the node agents, the assigner, the view and the indexer are the only readers of placement-candidates (test row).
Rule bent, said: the assigner integration test TestAChangeIsComposedOnTheBus was run once locally against an embedded bus.
Tests: each module's unit suite, go vet -tags integration pass; 589 unit / 76 integration functions, unchanged.
Milestone L2b (issue 1126), ADR 0559 §2, §3, §5, §7, §8. Delivery group feat/1126-l2b; every touched module pins mesh-sdk cadd7b1b exactly.
- forge bridge: a catalogue pull message carries every placement file at its head (merged message unchanged).
- indexer: writes placement-candidates <group>.<node> for nodes whose file differs from the trunk, deletes them at merge, close, a new head or a pull no longer open; new tool `indexer_placement_reread`.
- view: `indexer_placement` shows each candidate and every placed node's answer (same / differs / refused / stale / none).
- assigner: composes the change's own placement from the bus (A2); judges every node placed at the head or on the trunk: an unintended difference, a refusal, or silence past 10 minutes fails the check naming the node ('(offline)' from presence); at the seed nothing is intended, so every node must answer 'same'.
- checker: a verdict that failed only for a silent node takes the same heads' later passing composition in on its event, with no new check (ADR 0548 §1).
- mesh-grants pinned to the group head: the node agents, the assigner, the view and the indexer are the only readers of placement-candidates (test row).
Rule bent, said: the assigner integration test TestAChangeIsComposedOnTheBus was run once locally against an embedded bus.
Tests: each module's unit suite, go vet -tags integration pass; 589 unit / 76 integration functions, unchanged.
Reviewed-by: review-l2b@shanks at 06d4f45e18850d1ea5d2ed9ea1414707304f0593
Deliverynovox/mesh-delivery@06d4f45e1885 — merged since 2026-10-27T07:21:18Z
Source — source.main moved to novox/mesh-delivery@2915d74822. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-10-27 01:50 (new) → proposed (announced): novox/mesh-delivery#85's head announced
2026-10-27 01:50 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-27 07:21 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-delivery@06d4f45e1885` — **merged** since 2026-10-27T07:21:18Z
**Source** — source.main moved to novox/mesh-delivery@2915d74822cd. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/1126-l2b`: novox/hq@043f8ecf9cfa, novox/mesh-catalog@2ac511ce6b19, novox/mesh-delivery@06d4f45e1885, novox/mesh-host@1803d25c3a67, novox/mesh-sdk@cadd7b1b2f8f
**Transitions**
- 2026-10-27 01:50 (new) → proposed (announced): novox/mesh-delivery#85's head announced
- 2026-10-27 01:50 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-27 07:21 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.
Milestone L2b (issue 1126), ADR 0559 §2, §3, §5, §7, §8. Delivery group feat/1126-l2b; every touched module pins mesh-sdk cadd7b1b exactly.
indexer_placement_reread.indexer_placementshows each candidate and every placed node's answer (same / differs / refused / stale / none).Rule bent, said: the assigner integration test TestAChangeIsComposedOnTheBus was run once locally against an embedded bus.
Tests: each module's unit suite, go vet -tags integration pass; 589 unit / 76 integration functions, unchanged.
Reviewed-by: review-l2b@shanks at
06d4f45e18Delivery
novox/mesh-delivery@06d4f45e1885— merged since 2026-10-27T07:21:18ZSource — source.main moved to novox/mesh-delivery@2915d74822. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/1126-l2b: novox/hq@043f8ecf9c, novox/mesh-catalog@2ac511ce6b, novox/mesh-delivery@06d4f45e18, novox/mesh-host@1803d25c3a, novox/mesh-sdk@cadd7b1b2fTransitions
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.