Milestone L2 "nodes compose" (issue 1126; ADR 0549 §2, §5; ADR 0555). Member of the delivery group feat/1126-nodes-compose, which the milestone's one review approved; its five changed modules pin mesh-sdk 979644420117 (mesh-sdk #98's head) exactly.
forge bridge: a merge of the catalogue carries every placement/<node>.json of its merge commit, read whole or retried (gitea_commit_trees listed, mesh-catalog's part of the group).
indexer: writes placement.<node> in its state placement only where it changed and says placement-changed with the modules added, removed or changed (ADR 0549 §2).
view: indexer_placement reads it by node or by module.
assigner: until the third milestone a pair the controller's assignments and the catalogue's placement do not both name gets no want (the one written before stays) and one condition, cleared when they agree; before any placement is read the assignments alone hold (ADR 0549 §5).
Milestone L2 "nodes compose" (issue 1126; ADR 0549 §2, §5; ADR 0555). Member of the delivery group feat/1126-nodes-compose, which the milestone's one review approved; its five changed modules pin mesh-sdk 979644420117 (mesh-sdk #98's head) exactly.
- forge bridge: a merge of the catalogue carries every `placement/<node>.json` of its merge commit, read whole or retried (gitea_commit_trees `listed`, mesh-catalog's part of the group).
- indexer: writes `placement.<node>` in its state `placement` only where it changed and says `placement-changed` with the modules added, removed or changed (ADR 0549 §2).
- view: `indexer_placement` reads it by node or by module.
- assigner: until the third milestone a pair the controller's assignments and the catalogue's placement do not both name gets no want (the one written before stays) and one condition, cleared when they agree; before any placement is read the assignments alone hold (ADR 0549 §5).
Reviewed-by: review-1126@shanks at 297992a4ae5573248e25c84f3d4bbff617588222
Deliverynovox/mesh-delivery@297992a4ae55 — merged since 2026-10-26T21:11:35Z
Source — source.main moved to novox/mesh-delivery@4b36cc29a6. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-10-26 21:10 (new) → proposed (announced): novox/mesh-delivery#76's head announced
2026-10-26 21:10 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 21:11 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@297992a4ae55` — **merged** since 2026-10-26T21:11:35Z
**Source** — source.main moved to novox/mesh-delivery@4b36cc29a6ae. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/1126-nodes-compose`: novox/hq@28d84f31bfcb, novox/mesh-catalog@c0859751461a, novox/mesh-controller@df8ebf6a77c1, novox/mesh-delivery@297992a4ae55, novox/mesh-host@1d442885148a, novox/mesh-sdk@979644420117
**Transitions**
- 2026-10-26 21:10 (new) → proposed (announced): novox/mesh-delivery#76's head announced
- 2026-10-26 21:10 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 21:11 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`.
One commit for the branch feat/1126-nodes-compose of mesh-delivery: its 16 commits squashed so its history does not carry the 17.8 MB compiled mesh-delivery-assigner a commit added by mistake and a later one removed (issue 1577). The tree equals the former head ff6c038d. The operator allowed this rewrite of the feature branch on 2026-10-26.
mesh/check failed: ace: novox/mesh-catalog#505 does not merge into the trunk: files in conflict: .gitignore | 2493aa65299e on df8b9ac3b1b5 | unit 1245…
mesh/check failed: ace: novox/mesh-catalog#505 does not merge into the trunk: files in conflict: .gitignore | 2e0013ec2500 on df8b9ac3b1b5 | unit 1245…
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 L2 "nodes compose" (issue 1126; ADR 0549 §2, §5; ADR 0555). Member of the delivery group feat/1126-nodes-compose, which the milestone's one review approved; its five changed modules pin mesh-sdk 979644420117 (mesh-sdk #98's head) exactly.
placement/<node>.jsonof its merge commit, read whole or retried (gitea_commit_treeslisted, mesh-catalog's part of the group).placement.<node>in its stateplacementonly where it changed and saysplacement-changedwith the modules added, removed or changed (ADR 0549 §2).indexer_placementreads it by node or by module.Reviewed-by: review-1126@shanks at
297992a4aeDelivery
novox/mesh-delivery@297992a4ae55— merged since 2026-10-26T21:11:35ZSource — source.main moved to novox/mesh-delivery@4b36cc29a6. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/1126-nodes-compose: novox/hq@28d84f31bf, novox/mesh-catalog@c085975146, novox/mesh-controller@df8ebf6a77, novox/mesh-delivery@297992a4ae, novox/mesh-host@1d44288514, novox/mesh-sdk@9796444201Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.ff6c038d59to4f75925410