A walk waits for its delivery's word; the verbs mesh-delivery asks with (hq ADR 0239) #102

Merged
mesh-admin merged 1 commits from feat/mesh-delivery into main 2026-10-06 22:30:57 +00:00
Contributor

Part of the mesh-delivery feature (hq ADR 0239, to-be 47; branch feat/mesh-delivery in mesh-controller, mesh-catalog, mesh-host).

What changes

  • Seat mesh-delivery (mesh scope, 10 verbs) in the compiled seat set; seeded by SeedSeats.
  • A plan is now the walk of one trunk commit. With a holder on record (an assigned module claims mesh-delivery) and no core module moved (controller, node-engine, node tools, bus, mesh-delivery), SourceMoved opens the walk with Delivery{Awaits: mesh-delivery} and asks nothing. advanceOnce leaves a waiting walk alone, S3 skips it (a silent owner is D3's holder-silent), and plans says it waits. With no holder on record, nothing changes.
  • Verbs: delivery-plan, delivery-order (built by, version skew, engine before controller, declared after:, by name, cycle named), delivery-check (a group's heads composed: gate --group, builder clones the other heads; or one head again), deliver, delivery-stop, delivery-walks; plans go <id> --why, a person's go, recorded as a hand act (a repair, counted by S15).
  • Event plan-moved (the plan whole) after every save, from the serving controller and from a verb's own command.
  • Migration 0075: release_plan.delivery jsonb.
  • checked carries group and members for a composed check.
  • A consumed <seat>.<event> is the seat's only when the seat emits it, else the module of that name's (mesh-delivery is both).

Tests (merge-check.sh: gofmt, vet, full suite with -race against a throwaway postgres and a bus per test: all green): walk waits only while held, never for the core; merge → wait → deliver → asks; mesh-delivery's own merge never waits; plans go with why while the owner is down; owner's stop; unassigned → back to the controller's path; order rules and cycle; verbs compose their commands; plan-moved said from a verb subprocess (mutation-checked); gate composes a group (fails alone, passes together); builder check of a group on a container runtime (MESH_TEST_DOCKER=1, passed).

Merge order: after mesh-host#44 is merged and rolled out (the genesis-template test reads mesh-host beside, at what the mesh runs). Before mesh-catalog#99 (it claims the new seat and invokes these verbs).

Part of the mesh-delivery feature (hq ADR 0239, to-be 47; branch `feat/mesh-delivery` in mesh-controller, mesh-catalog, mesh-host). **What changes** - Seat `mesh-delivery` (mesh scope, 10 verbs) in the compiled seat set; seeded by `SeedSeats`. - A plan is now the **walk** of one trunk commit. With a holder on record (an assigned module claims `mesh-delivery`) and no core module moved (controller, node-engine, node tools, bus, mesh-delivery), `SourceMoved` opens the walk with `Delivery{Awaits: mesh-delivery}` and **asks nothing**. `advanceOnce` leaves a waiting walk alone, S3 skips it (a silent owner is D3's `holder-silent`), and `plans` says it waits. With no holder on record, nothing changes. - Verbs: `delivery-plan`, `delivery-order` (built by, version skew, engine before controller, declared `after:`, by name, cycle named), `delivery-check` (a group's heads composed: gate `--group`, builder clones the other heads; or one head again), `deliver`, `delivery-stop`, `delivery-walks`; `plans go <id> --why`, a person's go, recorded as a hand act (a repair, counted by S15). - Event `plan-moved` (the plan whole) after every save, from the serving controller and from a verb's own command. - Migration `0075`: `release_plan.delivery jsonb`. - `checked` carries `group` and `members` for a composed check. - A consumed `<seat>.<event>` is the seat's only when the seat emits it, else the module of that name's (mesh-delivery is both). **Tests** (`merge-check.sh`: gofmt, vet, full suite with `-race` against a throwaway postgres and a bus per test: all green): walk waits only while held, never for the core; merge → wait → deliver → asks; mesh-delivery's own merge never waits; `plans go` with why while the owner is down; owner's stop; unassigned → back to the controller's path; order rules and cycle; verbs compose their commands; `plan-moved` said from a verb subprocess (mutation-checked); gate composes a group (fails alone, passes together); builder check of a group on a container runtime (`MESH_TEST_DOCKER=1`, passed). **Merge order:** after mesh-host#44 is merged *and rolled out* (the genesis-template test reads mesh-host beside, at what the mesh runs). Before mesh-catalog#99 (it claims the new seat and invokes these verbs).
mesh-admin added 1 commit 2026-10-06 22:01:55 +00:00
Let a walk wait for its delivery's word, and serve the delivery's owner (hq ADR 0239)
mesh/merge-gate pass: every machine composes with the change as it did without (0 of 4 compose)
mesh/delivery delivered
mesh/delivery-group group feat/mesh-delivery merged: every member is merged
487aa040de
While the mesh-delivery seat has a holder on record, a merge that moves no
core module opens its walk and asks nothing until mesh-delivery or a person
says go; nothing of it is registered before its turn, so no other send
carries it. The controller keeps the planner, the gate, sending and the
walk, and gains the verbs the owner asks with: delivery-plan, -order,
-check (a group composed as one future state), deliver, delivery-stop,
delivery-walks; every walk kept is said as plan-moved.
mesh-admin merged commit b7d9f44936 into main 2026-10-06 22:30:57 +00:00
mesh-admin deleted branch feat/mesh-delivery 2026-10-06 22:30:57 +00:00
Author
Contributor

Delivery novox/mesh-controller@487aa040deeb — delivered since 2026-10-06T23:05:28Z

Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller
  • tier 1: build-agent
  • tier 2: route-proxy
  • ace: receives build-agent, route-proxy
  • g14: receives build-agent
  • novox: receives mesh-controller, build-agent, route-proxy
  • shanks: receives build-agent
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Group feat/mesh-delivery, in order:

Machines

  • build-agent on ace: passed — healthy 3 times over 2m19s
  • build-agent on the rest running it: sent
  • mesh-controller on novox: passed — healthy 3 times over 3m53s
  • mesh-controller on the rest running it: sent
  • route-proxy on ace: passed — healthy 3 times over 2m35s
  • route-proxy on the rest running it: sent

Transitions

  • 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-controller#102's head announced
  • 2026-10-06 23:05 proposed → checked (checked): the verdict names this commit
  • 2026-10-06 23:05 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
  • 2026-10-06 23:05 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
  • 2026-10-06 23:05 held → delivering (go): its walk started on a word that was not this owner's: the controller's own path, which waits for nobody, or a person's plans go
  • 2026-10-06 23:05 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@487aa040deeb` — **delivered** since 2026-10-06T23:05:28Z **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves **Group** `feat/mesh-delivery`, in order: **Machines** - build-agent on ace: passed — healthy 3 times over 2m19s - build-agent on the rest running it: sent - mesh-controller on novox: passed — healthy 3 times over 3m53s - mesh-controller on the rest running it: sent - route-proxy on ace: passed — healthy 3 times over 2m35s - route-proxy on the rest running it: sent **Transitions** - 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-controller#102's head announced - 2026-10-06 23:05 proposed → checked (checked): the verdict names this commit - 2026-10-06 23:05 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed - 2026-10-06 23:05 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on - 2026-10-06 23:05 held → delivering (go): its walk started on a word that was not this owner's: the controller's own path, which waits for nobody, or a person's `plans go` - 2026-10-06 23:05 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
This repo is archived. You cannot comment on pull requests.
No Reviewers
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#102