A drill is recorded through its own verb, and S15 never counts it (hq issue 292) #109

Merged
mesh-admin merged 1 commits from fix/a-drill-is-no-repair into main 2026-10-07 12:05:40 +00:00
Contributor

S15 raised mesh.hand-acts.drill.healer-wanted on 2026-10-07 after two deliberate ADR 0240 drills were recorded with hand-act record --cause drill. A drill is a person's deliberate test, never a repair.

What changes

  • New hand-act drill <what> --why <what it tests> [--condition <key>] (seat verb drill: what, why, condition). It records verb hand-act drill, cause drill. handActVerbs lists it as a person's decision, so S15 never counts it.
  • hand-act record --cause drill is now refused and points to hand-act drill. Whether an act is a drill is said by the verb chosen. A word typed into a repair's cause is not enough: push, conditions silence and the rest still count with cause drill.
  • The hand-act record entry exempts cause drill only for the acts recorded before this verb existed, because record now refuses that cause. So the two live drills stop counting, and the open condition clears on the next tick.
  • repairingCommand holds command hand-act drill … to --why. The catalogue verb and module.json carry drill.

Tests

  • TestADrillIsNoRepairAndItsHealerWantedClears: repeated drills want no healer. The cause word on other verbs still counts. The open mesh.hand-acts.drill.healer-wanted from the two hand-act record --cause drill acts clears on the next tick.
  • TestADrillIsRecordedThroughItsOwnVerb: record --cause drill is refused. A drill without why or what is refused. The seat's argv is checked, and command is held to why.
  • The existing table, flag and schema tests pass with the new verb.

mesh-controller check-here --registry novox.internal:5100: merge-gate PASS (4 of 4 compose), repo-check PASS.

S15 raised `mesh.hand-acts.drill.healer-wanted` on 2026-10-07 after two deliberate ADR 0240 drills were recorded with `hand-act record --cause drill`. A drill is a person's deliberate test, never a repair. **What changes** - New `hand-act drill <what> --why <what it tests> [--condition <key>]` (seat verb `drill`: what, why, condition). It records verb `hand-act drill`, cause `drill`. `handActVerbs` lists it as a person's decision, so S15 never counts it. - `hand-act record --cause drill` is now **refused** and points to `hand-act drill`. Whether an act is a drill is said by the verb chosen. A word typed into a repair's cause is not enough: `push`, `conditions silence` and the rest still count with cause `drill`. - The `hand-act record` entry exempts cause `drill` only for the acts recorded before this verb existed, because `record` now refuses that cause. So the two live drills stop counting, and the open condition clears on the next tick. - `repairingCommand` holds `command hand-act drill …` to `--why`. The catalogue verb and `module.json` carry `drill`. **Tests** - `TestADrillIsNoRepairAndItsHealerWantedClears`: repeated drills want no healer. The cause word on other verbs still counts. The open `mesh.hand-acts.drill.healer-wanted` from the two `hand-act record --cause drill` acts clears on the next tick. - `TestADrillIsRecordedThroughItsOwnVerb`: `record --cause drill` is refused. A drill without why or what is refused. The seat's argv is checked, and `command` is held to why. - The existing table, flag and schema tests pass with the new verb. `mesh-controller check-here --registry novox.internal:5100`: merge-gate PASS (4 of 4 compose), repo-check PASS.
mesh-admin added 1 commit 2026-10-07 11:55:55 +00:00
Record a drill through its own verb, so S15 never counts a deliberate test as a repair
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
2799e95035
Two ADR 0240 drills recorded with hand-act record --cause drill raised
mesh.hand-acts.drill.healer-wanted. hand-act drill (seat verb drill) records
them as a person's decision; hand-act record now refuses the cause, so the
two recorded before it clear on the next tick and a repair cannot pass for a
drill by the word it gives.
Author
Contributor

Delivery novox/mesh-controller@2799e95035bf — delivered since 2026-10-07T12:32:36Z

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

Machines

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

Transitions

  • 2026-10-07 11:56 (new) → proposed (announced): novox/mesh-controller#109's head announced
  • 2026-10-07 12:04 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 12:04 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 12:05 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-07 12:05 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path
  • 2026-10-07 12:32 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@2799e95035bf` — **delivered** since 2026-10-07T12:32:36Z **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 **Machines** - mesh-controller on novox: passed — healthy 3 times over 3m53s - mesh-controller on the rest running it: sent - build-agent on ace: passed — healthy 3 times over 3m36s - build-agent on the rest running it: sent - route-proxy on ace: passed — healthy 3 times over 3m13s - route-proxy on the rest running it: sent **Transitions** - 2026-10-07 11:56 (new) → proposed (announced): novox/mesh-controller#109's head announced - 2026-10-07 12:04 proposed → checked (checked): the verdict names this commit - 2026-10-07 12:04 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 12:05 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-07 12:05 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path - 2026-10-07 12:32 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`.
Author
Contributor

Merge check at 2799e950

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
  • mesh/repo-check: PASS — its merge-check.sh passed

Change 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

Run by the build seat on ace as build-1791374180578209587 (builds --log build-1791374180578209587).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 46 tool(s)
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T11:26:48Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-07T11:26:48Z

modules the change moves:
  - mesh-controller (changed)

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.032s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	400.003s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.124s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.028s
ok  	github.com/novox/mesh-controller/internal/broker	2.433s
ok  	github.com/novox/mesh-controller/internal/builder	1.367s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.605s
ok  	github.com/novox/mesh-controller/internal/conditions	2.007s
ok  	github.com/novox/mesh-controller/internal/envfile	1.065s
ok  	github.com/novox/mesh-controller/internal/facts	1.065s
ok  	github.com/novox/mesh-controller/internal/identity	39.756s
ok  	github.com/novox/mesh-controller/internal/inventory	250.709s
ok  	github.com/novox/mesh-controller/internal/lease	17.692s
ok  	github.com/novox/mesh-controller/internal/licences	39.158s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.081s
ok  	github.com/novox/mesh-controller/internal/link	78.407s
ok  	github.com/novox/mesh-controller/internal/lint	1.764s
ok  	github.com/novox/mesh-controller/internal/outward	1.089s
ok  	github.com/novox/mesh-controller/internal/overlay	1.074s
ok  	github.com/novox/mesh-controller/internal/secrets	1.441s
ok  	github.com/novox/mesh-controller/internal/store	23.280s
ok  	github.com/novox/mesh-controller/internal/testbus	1.224s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `2799e950` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Change 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 Run by the build seat on ace as `build-1791374180578209587` (`builds --log build-1791374180578209587`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 46 tool(s) 1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T11:26:48Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-07T11:26:48Z modules the change moves: - mesh-controller (changed) machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s ok github.com/novox/mesh-controller/cmd/mesh-controller 400.003s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.016s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.012s ok github.com/novox/mesh-controller/examples/route-proxy 1.124s ok github.com/novox/mesh-controller/internal/artifacts 1.028s ok github.com/novox/mesh-controller/internal/broker 2.433s ok github.com/novox/mesh-controller/internal/builder 1.367s ok github.com/novox/mesh-controller/internal/catalogue 3.605s ok github.com/novox/mesh-controller/internal/conditions 2.007s ok github.com/novox/mesh-controller/internal/envfile 1.065s ok github.com/novox/mesh-controller/internal/facts 1.065s ok github.com/novox/mesh-controller/internal/identity 39.756s ok github.com/novox/mesh-controller/internal/inventory 250.709s ok github.com/novox/mesh-controller/internal/lease 17.692s ok github.com/novox/mesh-controller/internal/licences 39.158s ok github.com/novox/mesh-controller/internal/licences/adapters 1.081s ok github.com/novox/mesh-controller/internal/link 78.407s ok github.com/novox/mesh-controller/internal/lint 1.764s ok github.com/novox/mesh-controller/internal/outward 1.089s ok github.com/novox/mesh-controller/internal/overlay 1.074s ok github.com/novox/mesh-controller/internal/secrets 1.441s ok github.com/novox/mesh-controller/internal/store 23.280s ok github.com/novox/mesh-controller/internal/testbus 1.224s ok github.com/novox/mesh-controller/internal/token 1.016s ```
mesh-admin merged commit 863ebd4277 into main 2026-10-07 12:05:40 +00:00
mesh-admin deleted branch fix/a-drill-is-no-repair 2026-10-07 12:05:40 +00:00
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#109