Give the gate's keys what the forge needs: approved heads, owed targets, escaped names (design 47 R3d, ADR 0450) #45

Merged
mesh-tools merged 3 commits from feat/r3d-sdk-and-controller into main 2026-10-19 22:33:12 +00:00
Member

Design 47 release R3d, mesh-sdk member of the group feat/r3d-sdk-and-controller (with mesh-controller).

  • issue 1323: one escape for every delivery key: a name a key cannot hold keys with =XX; plain names key as before (ADR 0450 §5).
  • issue 1321: Merge.Approved carries the Approve's heads of every member (<owner>/<repo>@<number> → full sha); a handed pull not among them is refused (ADR 0450 §3).
  • issue 1322: an owed status carries its target; an owed act on a commit no pull request names is keyed with number 0; comments are comment.<seq> (ADR 0450 §4).

No reader on mesh-delivery's main changes behaviour: its parts pin an older SDK; plain names key as before. Tried before this pull request: build-1792445606705939314 pass.

Reviewed-by: review-r3d@shanks at 2f1454699a

Design 47 release R3d, mesh-sdk member of the group feat/r3d-sdk-and-controller (with mesh-controller). - issue 1323: one escape for every delivery key: a name a key cannot hold keys with `=XX`; plain names key as before (ADR 0450 §5). - issue 1321: `Merge.Approved` carries the Approve's heads of every member (`<owner>/<repo>@<number>` → full sha); a handed pull not among them is refused (ADR 0450 §3). - issue 1322: an owed status carries its target; an owed act on a commit no pull request names is keyed with number 0; comments are `comment.<seq>` (ADR 0450 §4). No reader on mesh-delivery's main changes behaviour: its parts pin an older SDK; plain names key as before. Tried before this pull request: build-1792445606705939314 pass. Reviewed-by: review-r3d@shanks at 2f1454699a49b3f0af8f79dc4dc9d3fcaba24c2d
mesh-tools added 3 commits 2026-10-19 21:53:56 +00:00
Let an owed act carry a status target, a commit without a pull request and a numbered comment (issue 1322)
mesh/repo-check head 2f1454699a49 merged into trunk 1536dfa74592 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/merge-gate head 2f1454699a49 merged into trunk 1536dfa74592 — pass: group feat/r3d-sdk-and-controller composed: every machine composes with the change…
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792449194411267197 (novox/mesh-sdk at 6079ddfe into main, don…
mesh/delivery-group group feat/r3d-sdk-and-controller delivered: every member is delivered
2f1454699a
Author
Member

Delivery novox/mesh-sdk@2f1454699a49 — failed since 2026-10-19T22:48:50Z

Covered: covered after its failure: a later walk that contains it was delivered: plan-1792449194411267197 (novox/mesh-sdk at 6079ddfe into main, done, contains its merge 6079ddfe)

Delivery plan — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person

  • tier 0: mesh-sdk
  • tier 1: mesh-tools
  • tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh
  • ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables
  • g14: receives netcheck, zsh; waits for a person: nftables
  • novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
  • shanks: receives lab, netcheck, zsh; waits for a person: nftables
  • baserow keeps data (ADR 0233): what it holds is backed up before it moves
  • bazarr keeps data (ADR 0233): what it holds is backed up before it moves
  • bookshelf keeps data (ADR 0233): what it holds is backed up before it moves
  • gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves
  • grafana keeps data (ADR 0233): what it holds is backed up before it moves
  • home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
  • icecast keeps data (ADR 0233): what it holds is backed up before it moves
  • influxdb provides influxdb-api: its consumers are sent again after it
  • influxdb keeps data (ADR 0233): what it holds is backed up before it moves
  • jackett provides jackett-api: its consumers are sent again after it
  • jackett keeps data (ADR 0233): what it holds is backed up before it moves
  • kometa keeps data (ADR 0233): what it holds is backed up before it moves
  • lab keeps data (ADR 0233): what it holds is backed up before it moves
  • lidarr provides lidarr-api: its consumers are sent again after it
  • lidarr keeps data (ADR 0233): what it holds is backed up before it moves
  • mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mailu provides smtp: its consumers are sent again after it
  • mailu keeps data (ADR 0233): what it holds is backed up before it moves
  • minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • minio provides s3-bucket: its consumers are sent again after it
  • minio keeps data (ADR 0233): what it holds is backed up before it moves
  • mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mongodb provides mongodb-database: its consumers are sent again after it
  • mongodb keeps data (ADR 0233): what it holds is backed up before it moves
  • mosquitto provides mqtt-topic: its consumers are sent again after it
  • mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
  • mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mssql provides mssql-database: its consumers are sent again after it
  • mssql keeps data (ADR 0233): what it holds is backed up before it moves
  • nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
  • nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • nodered keeps data (ADR 0233): what it holds is backed up before it moves
  • ombi keeps data (ADR 0233): what it holds is backed up before it moves
  • radarr provides radarr-api: its consumers are sent again after it
  • radarr keeps data (ADR 0233): what it holds is backed up before it moves
  • redis provides redis-cache: its consumers are sent again after it
  • redis keeps data (ADR 0233): what it holds is backed up before it moves
  • searxng keeps data (ADR 0233): what it holds is backed up before it moves
  • sonarr provides sonarr-api: its consumers are sent again after it
  • sonarr keeps data (ADR 0233): what it holds is backed up before it moves
  • tautulli keeps data (ADR 0233): what it holds is backed up before it moves
  • umami provides analytics: its consumers are sent again after it
  • umami keeps data (ADR 0233): what it holds is backed up before it moves
  • unifi keeps data (ADR 0233): what it holds is backed up before it moves
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine

Group feat/r3d-sdk-and-controller: novox/mesh-controller@0aac89f4e2, novox/mesh-sdk@2f1454699a

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-controller on every machine running it: sent
  • mesh-sdk on every machine running it: sent
  • build-agent on every machine running it: sent
  • mesh-tools on every machine running it: sent
  • audit-logger on every machine running it: sent
  • confluence on every machine running it: sent
  • gitlab on every machine running it: sent
  • jira on every machine running it: sent
  • mesh-catalog on every machine running it: sent
  • model-usage on every machine running it: sent
  • openai-consumer on every machine running it: sent
  • route-adapter on every machine running it: sent
  • showcase on every machine running it: sent

Transitions

  • 2026-10-19 21:53 (new) → proposed (announced): novox/mesh-sdk#45's head announced
  • 2026-10-19 21:57 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-19 21:57 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-19 22:34 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-19 22:34 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 — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-19 22:48 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-sdk@2f1454699a49` — **failed** since 2026-10-19T22:48:50Z **Covered**: covered after its failure: a later walk that contains it was delivered: plan-1792449194411267197 (novox/mesh-sdk at 6079ddfe into main, done, contains its merge 6079ddfe) **Delivery plan** — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person - tier 0: mesh-sdk - tier 1: mesh-tools - tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh - ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables - g14: receives netcheck, zsh; waits for a person: nftables - novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables - shanks: receives lab, netcheck, zsh; waits for a person: nftables - baserow keeps data (ADR 0233): what it holds is backed up before it moves - bazarr keeps data (ADR 0233): what it holds is backed up before it moves - bookshelf keeps data (ADR 0233): what it holds is backed up before it moves - gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves - grafana keeps data (ADR 0233): what it holds is backed up before it moves - home-assistant keeps data (ADR 0233): what it holds is backed up before it moves - icecast keeps data (ADR 0233): what it holds is backed up before it moves - influxdb provides influxdb-api: its consumers are sent again after it - influxdb keeps data (ADR 0233): what it holds is backed up before it moves - jackett provides jackett-api: its consumers are sent again after it - jackett keeps data (ADR 0233): what it holds is backed up before it moves - kometa keeps data (ADR 0233): what it holds is backed up before it moves - lab keeps data (ADR 0233): what it holds is backed up before it moves - lidarr provides lidarr-api: its consumers are sent again after it - lidarr keeps data (ADR 0233): what it holds is backed up before it moves - mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mailu provides smtp: its consumers are sent again after it - mailu keeps data (ADR 0233): what it holds is backed up before it moves - minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - minio provides s3-bucket: its consumers are sent again after it - minio keeps data (ADR 0233): what it holds is backed up before it moves - mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mongodb provides mongodb-database: its consumers are sent again after it - mongodb keeps data (ADR 0233): what it holds is backed up before it moves - mosquitto provides mqtt-topic: its consumers are sent again after it - mosquitto keeps data (ADR 0233): what it holds is backed up before it moves - mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mssql provides mssql-database: its consumers are sent again after it - mssql keeps data (ADR 0233): what it holds is backed up before it moves - nextcloud keeps data (ADR 0233): what it holds is backed up before it moves - nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - nodered keeps data (ADR 0233): what it holds is backed up before it moves - ombi keeps data (ADR 0233): what it holds is backed up before it moves - radarr provides radarr-api: its consumers are sent again after it - radarr keeps data (ADR 0233): what it holds is backed up before it moves - redis provides redis-cache: its consumers are sent again after it - redis keeps data (ADR 0233): what it holds is backed up before it moves - searxng keeps data (ADR 0233): what it holds is backed up before it moves - sonarr provides sonarr-api: its consumers are sent again after it - sonarr keeps data (ADR 0233): what it holds is backed up before it moves - tautulli keeps data (ADR 0233): what it holds is backed up before it moves - umami provides analytics: its consumers are sent again after it - umami keeps data (ADR 0233): what it holds is backed up before it moves - unifi keeps data (ADR 0233): what it holds is backed up before it moves - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine **Group** `feat/r3d-sdk-and-controller`: novox/mesh-controller@0aac89f4e22c, novox/mesh-sdk@2f1454699a49 - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on every machine running it: sent - mesh-sdk on every machine running it: sent - build-agent on every machine running it: sent - mesh-tools on every machine running it: sent - audit-logger on every machine running it: sent - confluence on every machine running it: sent - gitlab on every machine running it: sent - jira on every machine running it: sent - mesh-catalog on every machine running it: sent - model-usage on every machine running it: sent - openai-consumer on every machine running it: sent - route-adapter on every machine running it: sent - showcase on every machine running it: sent **Transitions** - 2026-10-19 21:53 (new) → proposed (announced): novox/mesh-sdk#45's head announced - 2026-10-19 21:57 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-19 21:57 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-19 22:34 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-19 22:34 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 — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-19 22:48 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Member

Merge check at 2f145469
Judged: head 2f1454699a49 merged into trunk 1536dfa74592; read beside it: mesh-catalog 954f84ea19b5, mesh-controller caa3fc899501, mesh-controller-main caa3fc899501, mesh-host 2474bf28330f, mesh-tools 7412c5b6c9c5

  • mesh/merge-gate: PASS, WITH A NOTE — a merge rebuilds 42 module(s) in 3 tier(s) (modules: mesh-sdk; built after them: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, mesh-tools, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh)
  • mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript), go/merge-check.sh (go)

Delivery plan — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person

  • tier 0: mesh-sdk
  • tier 1: mesh-tools
  • tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh
  • ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables
  • g14: receives netcheck, zsh; waits for a person: nftables
  • novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
  • shanks: receives lab, netcheck, zsh; waits for a person: nftables
  • baserow keeps data (ADR 0233): what it holds is backed up before it moves
  • bazarr keeps data (ADR 0233): what it holds is backed up before it moves
  • bookshelf keeps data (ADR 0233): what it holds is backed up before it moves
  • gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves
  • grafana keeps data (ADR 0233): what it holds is backed up before it moves
  • home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
  • icecast keeps data (ADR 0233): what it holds is backed up before it moves
  • influxdb provides influxdb-api: its consumers are sent again after it
  • influxdb keeps data (ADR 0233): what it holds is backed up before it moves
  • jackett provides jackett-api: its consumers are sent again after it
  • jackett keeps data (ADR 0233): what it holds is backed up before it moves
  • kometa keeps data (ADR 0233): what it holds is backed up before it moves
  • lab keeps data (ADR 0233): what it holds is backed up before it moves
  • lidarr provides lidarr-api: its consumers are sent again after it
  • lidarr keeps data (ADR 0233): what it holds is backed up before it moves
  • mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mailu provides smtp: its consumers are sent again after it
  • mailu keeps data (ADR 0233): what it holds is backed up before it moves
  • minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • minio provides s3-bucket: its consumers are sent again after it
  • minio keeps data (ADR 0233): what it holds is backed up before it moves
  • mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mongodb provides mongodb-database: its consumers are sent again after it
  • mongodb keeps data (ADR 0233): what it holds is backed up before it moves
  • mosquitto provides mqtt-topic: its consumers are sent again after it
  • mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
  • mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mssql provides mssql-database: its consumers are sent again after it
  • mssql keeps data (ADR 0233): what it holds is backed up before it moves
  • nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
  • nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • nodered keeps data (ADR 0233): what it holds is backed up before it moves
  • ombi keeps data (ADR 0233): what it holds is backed up before it moves
  • radarr provides radarr-api: its consumers are sent again after it
  • radarr keeps data (ADR 0233): what it holds is backed up before it moves
  • redis provides redis-cache: its consumers are sent again after it
  • redis keeps data (ADR 0233): what it holds is backed up before it moves
  • searxng keeps data (ADR 0233): what it holds is backed up before it moves
  • sonarr provides sonarr-api: its consumers are sent again after it
  • sonarr keeps data (ADR 0233): what it holds is backed up before it moves
  • tautulli keeps data (ADR 0233): what it holds is backed up before it moves
  • umami provides analytics: its consumers are sent again after it
  • umami keeps data (ADR 0233): what it holds is backed up before it moves
  • unifi keeps data (ADR 0233): what it holds is backed up before it moves
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine

Run by the build seat on shanks as build-1792446842109019764 (builds --log build-1792446842109019764).

  duration_ms: 0.301334
  type: 'test'
  ...
# Subtest: events: a module emits, a listener and the audit sink (\#) both receive it, with metadata
ok 29 - events: a module emits, a listener and the audit sink (\#) both receive it, with metadata
  ---
  duration_ms: 0.413815
  type: 'test'
  ...
# Subtest: each registration is given the environment asked for it, and sees no other's (ADR 0192)
ok 30 - each registration is given the environment asked for it, and sees no other's (ADR 0192)
  ---
  duration_ms: 0.214003
  type: 'test'
  ...
# Subtest: the provider loop is named for what it is, and its old name stays an alias until its providers move (issue 678)
ok 31 - the provider loop is named for what it is, and its old name stays an alias until its providers move (issue 678)
  ---
  duration_ms: 6.71692
  type: 'test'
  ...
# Subtest: seal: every box the licence manager sealed opens to its plaintext
ok 32 - seal: every box the licence manager sealed opens to its plaintext
  ---
  duration_ms: 4.577644
  type: 'test'
  ...
# Subtest: seal: given the same one-time key and iv, the box is byte for byte the licence manager's
ok 33 - seal: given the same one-time key and iv, the box is byte for byte the licence manager's
  ---
  duration_ms: 4.420123
  type: 'test'
  ...
# Subtest: seal: the agent module's TypeScript box opens
ok 34 - seal: the agent module's TypeScript box opens
  ---
  duration_ms: 14.596114
  type: 'test'
  ...
# Subtest: seal: a box opens for its recipient only, and two boxes share no one-time key or iv
ok 35 - seal: a box opens for its recipient only, and two boxes share no one-time key or iv
  ---
  duration_ms: 1.832892
  type: 'test'
  ...
# Subtest: seal: a box changed in any field, or of another version, does not open
ok 36 - seal: a box changed in any field, or of another version, does not open
  ---
  duration_ms: 1.044602
  type: 'test'
  ...
# Subtest: seal: a key that is not X25519 PEM is refused
ok 37 - seal: a key that is not X25519 PEM is refused
  ---
  duration_ms: 0.293254
  type: 'test'
  ...
# Subtest: a consumer failed for minutes is announced, naming it, its machine and the class, again while it lasts, and recovered
ok 38 - a consumer failed for minutes is announced, naming it, its machine and the class, again while it lasts, and recovered
  ---
  duration_ms: 587.007951
  type: 'test'
  ...
# Subtest: one success between failures starts the run again
ok 39 - one success between failures starts the run again
  ---
  duration_ms: 188.19884
  type: 'test'
  ...
# Subtest: a check that keeps failing is a failure too
ok 40 - a check that keeps failing is a failure too
  ---
  duration_ms: 186.59823
  type: 'test'
  ...
# Subtest: an unreadable secret is announced as such
ok 41 - an unreadable secret is announced as such
  ---
  duration_ms: 174.802919
  type: 'test'
  ...
# Subtest: a consumer no longer asked for is no longer failing
ok 42 - a consumer no longer asked for is no longer failing
  ---
  duration_ms: 183.580935
  type: 'test'
  ...
# Subtest: a failing consumer the mesh stopped asking for is said recovered when it is retired
ok 43 - a failing consumer the mesh stopped asking for is said recovered when it is retired
  ---
  duration_ms: 229.312268
  type: 'test'
  ...
# Subtest: an error is classed by its words
ok 44 - an error is classed by its words
  ---
  duration_ms: 0.217363
  type: 'test'
  ...
# Subtest: an adapter that classes its own errors is believed
ok 45 - an adapter that classes its own errors is believed
  ---
  duration_ms: 172.889018
  type: 'test'
  ...
# Subtest: the first success since start is announced once
ok 46 - the first success since start is announced once
  ---
  duration_ms: 116.842231
  type: 'test'
  ...
# Subtest: without announce the standing is said through the SDK's emit
ok 47 - without announce the standing is said through the SDK's emit
  ---
  duration_ms: 167.623825
  type: 'test'
  ...
# Subtest: a bundle on stdio lists its tools and answers a call, a seat's verb among them
ok 48 - a bundle on stdio lists its tools and answers a call, a seat's verb among them
  ---
  duration_ms: 127.021061
  type: 'test'
  ...
# Subtest: a bundle served as its module lists the seat's verbs as the seat's, whichever registered first (ADR 0193)
ok 49 - a bundle served as its module lists the seat's verbs as the seat's, whichever registered first (ADR 0193)
  ---
  duration_ms: 83.847267
  type: 'test'
  ...
# Subtest: a launched tool's emit is asked of the runtime, and the call answers once the runtime has published (ADR 0193)
ok 50 - a launched tool's emit is asked of the runtime, and the call answers once the runtime has published (ADR 0193)
  ---
  duration_ms: 83.325741
  type: 'test'
  ...
# Subtest: a launched bundle subscribes as it is imported, handles events the runtime hands it, and asks through it (ADR 0198)
ok 51 - a launched bundle subscribes as it is imported, handles events the runtime hands it, and asks through it (ADR 0198)
  ---
  duration_ms: 3202.703949
  type: 'test'
  ...
# Subtest: a subscribe the runtime refused leaves no handler behind, so one event is handled once (novox/hq issue 276)
ok 52 - a subscribe the runtime refused leaves no handler behind, so one event is handled once (novox/hq issue 276)
  ---
  duration_ms: 84.193372
  type: 'test'
  ...
# Subtest: a launched bundle watches its state as it is imported, has the current values before it goes on, and keeps state through the runtime (ADR 0201)
ok 53 - a launched bundle watches its state as it is imported, has the current values before it goes on, and keeps state through the runtime (ADR 0201)
  ---
  duration_ms: 286.28969
  type: 'test'
  ...
# Subtest: topics match as the runtime's do: * one segment, \# and ** any number
ok 54 - topics match as the runtime's do: * one segment, \# and ** any number
  ---
  duration_ms: 2.400659
  type: 'test'
  ...
1..54
# tests 54
# suites 0
# pass 54
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 3980.968132
NOT TESTED HERE: go/ (the Go binding) — the Go toolchain runs it from go/merge-check.sh
NOT TESTED HERE: python/, rust/, c/ — no toolchain of theirs runs a merge check
--- its go/merge-check.sh (go toolchain)
NOT RACE-CHECKED: the Go binding's check runs without the race detector
unit level: 198 tests (0 skipped), 1.04 s (bound 2 s)
    state_counter_test.go:193: 2000 increments, 1295 writes lost to the other writer and tried again
PASS
ok  	git.novox.be/novox/mesh-sdk/go	0.262s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/asker	0.003s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/asks	0.004s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/cli	1.039s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/delivery	0.006s
?   	git.novox.be/novox/mesh-sdk/go/example	[no test files]
PASS
ok  	git.novox.be/novox/mesh-sdk/go/health	0.004s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/internal/testbus	0.141s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/outward	0.070s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/process	6.468s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/provider	0.118s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/provider/harness	0.134s
PASS
ok  	git.novox.be/novox/mesh-sdk/go/seal	0.006s
integration level: 214 tests (0 skipped), 7 s
**Merge check** at `2f145469` Judged: head `2f1454699a49` merged into trunk `1536dfa74592`; read beside it: mesh-catalog `954f84ea19b5`, mesh-controller `caa3fc899501`, mesh-controller-main `caa3fc899501`, mesh-host `2474bf28330f`, mesh-tools `7412c5b6c9c5` - `mesh/merge-gate`: **PASS, WITH A NOTE** — a merge rebuilds 42 module(s) in 3 tier(s) (modules: mesh-sdk; built after them: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, mesh-tools, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh) - `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript), go/merge-check.sh (go) **Delivery plan** — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person - tier 0: mesh-sdk - tier 1: mesh-tools - tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh - ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables - g14: receives netcheck, zsh; waits for a person: nftables - novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables - shanks: receives lab, netcheck, zsh; waits for a person: nftables - baserow keeps data (ADR 0233): what it holds is backed up before it moves - bazarr keeps data (ADR 0233): what it holds is backed up before it moves - bookshelf keeps data (ADR 0233): what it holds is backed up before it moves - gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves - grafana keeps data (ADR 0233): what it holds is backed up before it moves - home-assistant keeps data (ADR 0233): what it holds is backed up before it moves - icecast keeps data (ADR 0233): what it holds is backed up before it moves - influxdb provides influxdb-api: its consumers are sent again after it - influxdb keeps data (ADR 0233): what it holds is backed up before it moves - jackett provides jackett-api: its consumers are sent again after it - jackett keeps data (ADR 0233): what it holds is backed up before it moves - kometa keeps data (ADR 0233): what it holds is backed up before it moves - lab keeps data (ADR 0233): what it holds is backed up before it moves - lidarr provides lidarr-api: its consumers are sent again after it - lidarr keeps data (ADR 0233): what it holds is backed up before it moves - mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mailu provides smtp: its consumers are sent again after it - mailu keeps data (ADR 0233): what it holds is backed up before it moves - minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - minio provides s3-bucket: its consumers are sent again after it - minio keeps data (ADR 0233): what it holds is backed up before it moves - mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mongodb provides mongodb-database: its consumers are sent again after it - mongodb keeps data (ADR 0233): what it holds is backed up before it moves - mosquitto provides mqtt-topic: its consumers are sent again after it - mosquitto keeps data (ADR 0233): what it holds is backed up before it moves - mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mssql provides mssql-database: its consumers are sent again after it - mssql keeps data (ADR 0233): what it holds is backed up before it moves - nextcloud keeps data (ADR 0233): what it holds is backed up before it moves - nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - nodered keeps data (ADR 0233): what it holds is backed up before it moves - ombi keeps data (ADR 0233): what it holds is backed up before it moves - radarr provides radarr-api: its consumers are sent again after it - radarr keeps data (ADR 0233): what it holds is backed up before it moves - redis provides redis-cache: its consumers are sent again after it - redis keeps data (ADR 0233): what it holds is backed up before it moves - searxng keeps data (ADR 0233): what it holds is backed up before it moves - sonarr provides sonarr-api: its consumers are sent again after it - sonarr keeps data (ADR 0233): what it holds is backed up before it moves - tautulli keeps data (ADR 0233): what it holds is backed up before it moves - umami provides analytics: its consumers are sent again after it - umami keeps data (ADR 0233): what it holds is backed up before it moves - unifi keeps data (ADR 0233): what it holds is backed up before it moves - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine Run by the build seat on shanks as `build-1792446842109019764` (`builds --log build-1792446842109019764`). ``` duration_ms: 0.301334 type: 'test' ... # Subtest: events: a module emits, a listener and the audit sink (\#) both receive it, with metadata ok 29 - events: a module emits, a listener and the audit sink (\#) both receive it, with metadata --- duration_ms: 0.413815 type: 'test' ... # Subtest: each registration is given the environment asked for it, and sees no other's (ADR 0192) ok 30 - each registration is given the environment asked for it, and sees no other's (ADR 0192) --- duration_ms: 0.214003 type: 'test' ... # Subtest: the provider loop is named for what it is, and its old name stays an alias until its providers move (issue 678) ok 31 - the provider loop is named for what it is, and its old name stays an alias until its providers move (issue 678) --- duration_ms: 6.71692 type: 'test' ... # Subtest: seal: every box the licence manager sealed opens to its plaintext ok 32 - seal: every box the licence manager sealed opens to its plaintext --- duration_ms: 4.577644 type: 'test' ... # Subtest: seal: given the same one-time key and iv, the box is byte for byte the licence manager's ok 33 - seal: given the same one-time key and iv, the box is byte for byte the licence manager's --- duration_ms: 4.420123 type: 'test' ... # Subtest: seal: the agent module's TypeScript box opens ok 34 - seal: the agent module's TypeScript box opens --- duration_ms: 14.596114 type: 'test' ... # Subtest: seal: a box opens for its recipient only, and two boxes share no one-time key or iv ok 35 - seal: a box opens for its recipient only, and two boxes share no one-time key or iv --- duration_ms: 1.832892 type: 'test' ... # Subtest: seal: a box changed in any field, or of another version, does not open ok 36 - seal: a box changed in any field, or of another version, does not open --- duration_ms: 1.044602 type: 'test' ... # Subtest: seal: a key that is not X25519 PEM is refused ok 37 - seal: a key that is not X25519 PEM is refused --- duration_ms: 0.293254 type: 'test' ... # Subtest: a consumer failed for minutes is announced, naming it, its machine and the class, again while it lasts, and recovered ok 38 - a consumer failed for minutes is announced, naming it, its machine and the class, again while it lasts, and recovered --- duration_ms: 587.007951 type: 'test' ... # Subtest: one success between failures starts the run again ok 39 - one success between failures starts the run again --- duration_ms: 188.19884 type: 'test' ... # Subtest: a check that keeps failing is a failure too ok 40 - a check that keeps failing is a failure too --- duration_ms: 186.59823 type: 'test' ... # Subtest: an unreadable secret is announced as such ok 41 - an unreadable secret is announced as such --- duration_ms: 174.802919 type: 'test' ... # Subtest: a consumer no longer asked for is no longer failing ok 42 - a consumer no longer asked for is no longer failing --- duration_ms: 183.580935 type: 'test' ... # Subtest: a failing consumer the mesh stopped asking for is said recovered when it is retired ok 43 - a failing consumer the mesh stopped asking for is said recovered when it is retired --- duration_ms: 229.312268 type: 'test' ... # Subtest: an error is classed by its words ok 44 - an error is classed by its words --- duration_ms: 0.217363 type: 'test' ... # Subtest: an adapter that classes its own errors is believed ok 45 - an adapter that classes its own errors is believed --- duration_ms: 172.889018 type: 'test' ... # Subtest: the first success since start is announced once ok 46 - the first success since start is announced once --- duration_ms: 116.842231 type: 'test' ... # Subtest: without announce the standing is said through the SDK's emit ok 47 - without announce the standing is said through the SDK's emit --- duration_ms: 167.623825 type: 'test' ... # Subtest: a bundle on stdio lists its tools and answers a call, a seat's verb among them ok 48 - a bundle on stdio lists its tools and answers a call, a seat's verb among them --- duration_ms: 127.021061 type: 'test' ... # Subtest: a bundle served as its module lists the seat's verbs as the seat's, whichever registered first (ADR 0193) ok 49 - a bundle served as its module lists the seat's verbs as the seat's, whichever registered first (ADR 0193) --- duration_ms: 83.847267 type: 'test' ... # Subtest: a launched tool's emit is asked of the runtime, and the call answers once the runtime has published (ADR 0193) ok 50 - a launched tool's emit is asked of the runtime, and the call answers once the runtime has published (ADR 0193) --- duration_ms: 83.325741 type: 'test' ... # Subtest: a launched bundle subscribes as it is imported, handles events the runtime hands it, and asks through it (ADR 0198) ok 51 - a launched bundle subscribes as it is imported, handles events the runtime hands it, and asks through it (ADR 0198) --- duration_ms: 3202.703949 type: 'test' ... # Subtest: a subscribe the runtime refused leaves no handler behind, so one event is handled once (novox/hq issue 276) ok 52 - a subscribe the runtime refused leaves no handler behind, so one event is handled once (novox/hq issue 276) --- duration_ms: 84.193372 type: 'test' ... # Subtest: a launched bundle watches its state as it is imported, has the current values before it goes on, and keeps state through the runtime (ADR 0201) ok 53 - a launched bundle watches its state as it is imported, has the current values before it goes on, and keeps state through the runtime (ADR 0201) --- duration_ms: 286.28969 type: 'test' ... # Subtest: topics match as the runtime's do: * one segment, \# and ** any number ok 54 - topics match as the runtime's do: * one segment, \# and ** any number --- duration_ms: 2.400659 type: 'test' ... 1..54 # tests 54 # suites 0 # pass 54 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 3980.968132 NOT TESTED HERE: go/ (the Go binding) — the Go toolchain runs it from go/merge-check.sh NOT TESTED HERE: python/, rust/, c/ — no toolchain of theirs runs a merge check --- its go/merge-check.sh (go toolchain) NOT RACE-CHECKED: the Go binding's check runs without the race detector unit level: 198 tests (0 skipped), 1.04 s (bound 2 s) state_counter_test.go:193: 2000 increments, 1295 writes lost to the other writer and tried again PASS ok git.novox.be/novox/mesh-sdk/go 0.262s PASS ok git.novox.be/novox/mesh-sdk/go/asker 0.003s PASS ok git.novox.be/novox/mesh-sdk/go/asks 0.004s PASS ok git.novox.be/novox/mesh-sdk/go/cli 1.039s PASS ok git.novox.be/novox/mesh-sdk/go/delivery 0.006s ? git.novox.be/novox/mesh-sdk/go/example [no test files] PASS ok git.novox.be/novox/mesh-sdk/go/health 0.004s PASS ok git.novox.be/novox/mesh-sdk/go/internal/testbus 0.141s PASS ok git.novox.be/novox/mesh-sdk/go/outward 0.070s PASS ok git.novox.be/novox/mesh-sdk/go/process 6.468s PASS ok git.novox.be/novox/mesh-sdk/go/provider 0.118s PASS ok git.novox.be/novox/mesh-sdk/go/provider/harness 0.134s PASS ok git.novox.be/novox/mesh-sdk/go/seal 0.006s integration level: 214 tests (0 skipped), 7 s ```
mesh-tools merged commit 6079ddfe84 into main 2026-10-19 22:33:12 +00:00
mesh-tools deleted branch feat/r3d-sdk-and-controller 2026-10-19 22:33:12 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-sdk#45