Issue 309 (report + diagnosis), resolved: a delivery group of the controller, the node-engine and the lab, each ready, was refused as a cycle because built by (the controller's repository moved the build agent, which builds the node-engine) and engine before controller ordered one pair both ways.
ADR 0249: the order rules have a precedence (declared; built by and version skew; engine before controller). The pair says what it won over. Equal-rank rules both ways are refused, naming both and the after: line that settles it. Supersedes in part ADR 0239 decision 4's sentence that made a declared order against an inferred one a cycle; ADR 0239 gets the dated note.
Design 47 amended with the precedence.
Fixed by novox/mesh-controller #134 and novox/mesh-catalog #119; replay R309 in novox/mesh-lab #64 (proved: fails before, passes on the fix).
Checks: records, index, cycle, words and sh merge-check.sh pass. Merge last, after the three code PRs.
- **Issue 309** (report + diagnosis), resolved: a delivery group of the controller, the node-engine and the lab, each ready, was refused as a cycle because *built by* (the controller's repository moved the build agent, which builds the node-engine) and *engine before controller* ordered one pair both ways.
- **ADR 0249**: the order rules have a precedence (declared; built by and version skew; engine before controller). The pair says what it won over. Equal-rank rules both ways are refused, naming both and the `after:` line that settles it. Supersedes in part ADR 0239 decision 4's sentence that made a declared order against an inferred one a cycle; ADR 0239 gets the dated note.
- **Design 47** amended with the precedence.
Fixed by novox/mesh-controller #134 and novox/mesh-catalog #119; replay R309 in novox/mesh-lab #64 (proved: fails before, passes on the fix).
Checks: records, index, cycle, words and `sh merge-check.sh` pass. Merge last, after the three code PRs.
A group of the controller, the node-engine and the lab, each ready, was
refused as a cycle: built by put the controller's member first, engine
before controller the node-engine's. ADR 0249 ranks the rules (declared,
then built by and version skew, then engine before controller) and
supersedes ADR 0239's sentence that made a declared order against an
inferred one a cycle; design 47 says the precedence. Resolved by
mesh-controller #134 and mesh-catalog #119, replay R309 (mesh-lab #64).
Deliverynovox/hq@a3bedeb227b3 — delivered since 2026-10-08T09:12:14Z
Delivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
2026-10-08 08:47 (new) → proposed (announced): novox/hq#194's head announced
2026-10-08 08:48 proposed → checked (checked): the verdict names this commit
2026-10-08 08:48 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 09:12 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-08 09:12 published → delivered (done): nothing for a walk to move
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/hq@a3bedeb227b3` — **delivered** since 2026-10-08T09:12:14Z
**Delivery plan** — builds nothing: the change touches no module of the mesh's graph
**Transitions**
- 2026-10-08 08:47 (new) → proposed (announced): novox/hq#194's head announced
- 2026-10-08 08:48 proposed → checked (checked): the verdict names this commit
- 2026-10-08 08:48 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 09:12 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-08 09:12 published → delivered (done): nothing for a walk to move
The commit's note under `refs/notes/mesh-plan` keeps every transition: `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.
after:line that settles it. Supersedes in part ADR 0239 decision 4's sentence that made a declared order against an inferred one a cycle; ADR 0239 gets the dated note.Fixed by novox/mesh-controller #134 and novox/mesh-catalog #119; replay R309 in novox/mesh-lab #64 (proved: fails before, passes on the fix).
Checks: records, index, cycle, words and
sh merge-check.shpass. Merge last, after the three code PRs.Delivery
novox/hq@a3bedeb227b3— delivered since 2026-10-08T09:12:14ZDelivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.