Feature 57's mesh-catalog part. Head ac46c36a has tree fb529905, equal to the local reviewed head 3e932251 (feature head 5dac1ef9, r3 APPROVE; sync merge with main 173c5d5e 9a68d710 and issue 874's test fixes 3e932251: merge-only review APPROVE, round 1, Opus).
Two commits instead of one: the patch route dropped the blank last line of ten files (issue 875); ac46c36a restores them whole.
Local checks: merge-check.sh green over 103 modules (gate = controller 04dad56a, tree = release controller cf897e89's); merge-check-typescript.sh fails only showcase, as main does.
Member of delivery group 57-config-and-provisioning (mesh-sdk #28, mesh-host #114, mesh-controller #346, hq #373 merged). Issues: 874, 875.
Feature 57's mesh-catalog part. Head ac46c36a has tree fb529905, equal to the local reviewed head 3e932251 (feature head 5dac1ef9, r3 APPROVE; sync merge with main 173c5d5e 9a68d710 and issue 874's test fixes 3e932251: merge-only review APPROVE, round 1, Opus).
Two commits instead of one: the patch route dropped the blank last line of ten files (issue 875); ac46c36a restores them whole.
Local checks: merge-check.sh green over 103 modules (gate = controller 04dad56a, tree = release controller cf897e89's); merge-check-typescript.sh fails only showcase, as main does.
Member of delivery group 57-config-and-provisioning (mesh-sdk #28, mesh-host #114, mesh-controller #346, hq #373 merged). Issues: 874, 875.
mesh/repo-check head ac46c36a3daf merged into trunk 1a2c917abfdb — fail: [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] T…
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
Transitions
2026-10-16 08:50 (new) → proposed (announced): novox/mesh-catalog#328's head announced
2026-10-16 09:00 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-16 09:00 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-16 09:02 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-16 09:02 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-16 09:02 delivering → stopped (stop): its walk plan-1792141267854645683 was stopped by a person (mesh-controller): mesh-catalog #328 merged into the release branch feat/57-config-and-provisioning (53913255), not main; this walk would send release-branch catalogue (98 modules) to ace, g14, novox and shanks, which ADR 0358 §7 forbids. Stopped before any send by 57-lead@novox, as plan-1792114347281764422 was at 03:33; feature 57's catalogue reaches the machines through its release pull request into main (bundle B).
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@881c956590c7` — **stopped** since 2026-10-16T09:02:04Z
**Delivery plan** — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
- tier 0: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- ace: receives build-agent, ca-trust, docker, hostname, localization, logrotate, matrix, n8n, node-env, pacman, power, powerlevel10k, sudo, supabase, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- g14: receives adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, memory-pressure, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- novox: receives build-agent, ca-trust, docker, hostname, localization, logrotate, mesh-delivery, messenger, node-env, pacman, power, powerlevel10k, sudo, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting; waits for a person: nats
- shanks: receives adwaita, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- matrix keeps data (ADR 0233): what it holds is backed up before it moves
- n8n keeps data (ADR 0233): what it holds is backed up before it moves
- merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until `mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}` runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
- nats provides mesh-bus: its consumers are sent again after it
- nats keeps data (ADR 0233): what it holds is backed up before it moves
- supabase keeps data (ADR 0233): what it holds is backed up before it moves
- xorg provides x11-display: its consumers are sent again after it
- 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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
**Transitions**
- 2026-10-16 08:50 (new) → proposed (announced): novox/mesh-catalog#328's head announced
- 2026-10-16 09:00 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-16 09:00 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-16 09:02 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-16 09:02 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-16 09:02 delivering → stopped (stop): its walk plan-1792141267854645683 was stopped by a person (mesh-controller): mesh-catalog #328 merged into the release branch feat/57-config-and-provisioning (53913255), not main; this walk would send release-branch catalogue (98 modules) to ace, g14, novox and shanks, which ADR 0358 §7 forbids. Stopped before any send by 57-lead@novox, as plan-1792114347281764422 was at 03:33; feature 57's catalogue reaches the machines through its release pull request into main (bundle B).
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Merge check at ac46c36a
Judged: head ac46c36a3daf merged into trunk 1a2c917abfdb; read beside it: mesh-controller cf897e89fe31, mesh-controller-main d70bb1f38867, mesh-host b546d4316c3b, mesh-tools 6b3e15042fee
mesh/merge-gate: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] 29 problem(s) the change brings; the first: modules/adwaita: adwaita is not registrable — this manifest cannot be used: - adwaita is marked moved and names no template: a moved module's files are filled from template files of its own, "template": "files/<name>" (novox/hq ADR 0349 §2) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
mesh/repo-check: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; merge-check.sh (go) passed; its merge-check-typescript.sh failed: TypeScript modules that failed: nftables showcase
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
Run by the build seat on shanks as build-1792136398815349320 (builds --log build-1792136398815349320).
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 284.211755
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.209935ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.172672ms)
✔ the options shell itself holds no secret (0.191592ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.474296ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.227632ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (125.46882ms)
✔ a consumer that contributed nothing gets its own subtree (1.247495ms)
✔ a contributed list is granted exactly, duplicates once (0.277393ms)
✔ a list that is not topic filters is refused whole (0.280893ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.346734ms)
✔ the role is brought to exactly the wanted ACLs (0.356915ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 222.992003
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (3.594254ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.498856ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (0.426435ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.243043ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 279.446697
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (1.946804ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 90.71591
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.736931ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.334754ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.505176ms)
✔ what is not the operator's to remove is refused by name (0.927901ms)
✔ which chains jump to a target is read from a listing (0.221012ms)
✖ the filter's commands run as given by root and through sudo without a prompt by anyone else (1.088283ms)
✔ the filter file is the one the manifest's filtering names (0.355304ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.542256ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.543607ms)
ℹ tests 9
ℹ suites 0
ℹ pass 8
ℹ fail 1
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 107.723815
✖ failing tests:
test at test/remove.test.ts:77:1
✖ the filter's commands run as given by root and through sudo without a prompt by anyone else (1.088283ms)
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
[
+ 'iptables-legacy',
- 'sudo',
[
- '-n',
- 'iptables-legacy',
'-S'
]
]
at TestContext.<anonymous> (file:///tmp/tmp.0iwMqmlmiB/nftables/test/remove.test.ts:80:10)
at Test.runInAsyncScope (node:async_hooks:214:14)
at Test.run (node:internal/test_runner/test:1047:25)
at Test.processPendingSubtests (node:internal/test_runner/test:744:18)
at Test.postRun (node:internal/test_runner/test:1173:19)
at Test.run (node:internal/test_runner/test:1101:12)
at async Test.processPendingSubtests (node:internal/test_runner/test:744:7) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [ 'iptables-legacy', [ '-S' ] ],
expected: [ 'sudo', [ '-n', 'iptables-legacy', '-S' ] ],
operator: 'deepStrictEqual',
diff: 'simple'
}
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.498251ms)
✔ fresh: with nothing named, the step makes its own broker node (0.371924ms)
✔ a login the broker does not take is never written (0.188222ms)
✔ a named node that is not there, or a loopback broker, is refused (0.292704ms)
✔ a deploy that raced another is read again once (1.251455ms)
✔ settings name broker nodes under mqtt.brokers (0.168502ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 101.883105
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.343506ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.174043ms)
✔ both are unpacked under the account's home, owned by the account (0.149552ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.381885ms)
✔ the README names the upstream, the version and the licence (0.203492ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 93.582174
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (7.504511ms)
✔ it removes the file it wrote when that contribution goes (2.849474ms)
✔ it never touches a file it did not write (4.181301ms)
✔ the target port follows what the contributor publishes (1.868502ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.382707ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.298316ms)
✔ a contribution it cannot act on is skipped and named (0.224942ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.258163ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.912283ms)
✔ a body limit is written as the predecessor's buffering middleware (1.960184ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.323284ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 120.735233
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
provisioner/index.ts(6,10): error TS2724: '"@novox/mesh-sdk/provisioner"' has no exported member named 'provisioner'. Did you mean 'Provisioner'?
tools/index.ts(4,10): error TS2305: Module '"@novox/mesh-sdk/tools"' has no exported member 'tool'.
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (10.044161ms)
✔ it runs in the directory it is given (4.035439ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (503.196669ms)
✔ output beyond the bound is cut and the answer says so (8.984119ms)
✔ a job left in the background does not hold the answer (204.959344ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.666802ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.164672ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.268223ms)
✔ zsh_config counts the mesh's block in a file (3.737745ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.482908ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.130331ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.224283ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.299554ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.304344ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.575687ms)
✔ it keeps the package and sets the login shell through the user shape (0.165002ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.253983ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.475075ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.407455ms)
✔ execute is served only when the machine's setting says serve (0.838071ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.271523ms)
✔ the setting is read from the file the bundle's word names (0.617417ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 829.914209
TypeScript modules that failed: nftables showcase
**Merge check** at `ac46c36a`
Judged: head `ac46c36a3daf` merged into trunk `1a2c917abfdb`; read beside it: mesh-controller `cf897e89fe31`, mesh-controller-main `d70bb1f38867`, mesh-host `b546d4316c3b`, mesh-tools `6b3e15042fee`
- `mesh/merge-gate`: **FAIL** — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] 29 problem(s) the change brings; the first: modules/adwaita: adwaita is not registrable — this manifest cannot be used: - adwaita is marked moved and names no template: a moved module's files are filled from template files of its own, `"template": "files/<name>"` (novox/hq ADR 0349 §2) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
- `mesh/repo-check`: **FAIL** — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; merge-check.sh (go) passed; its merge-check-typescript.sh failed: TypeScript modules that failed: nftables showcase
**Delivery plan** — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
- tier 0: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- ace: receives build-agent, ca-trust, docker, hostname, localization, logrotate, matrix, n8n, node-env, pacman, power, powerlevel10k, sudo, supabase, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- g14: receives adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, memory-pressure, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- novox: receives build-agent, ca-trust, docker, hostname, localization, logrotate, mesh-delivery, messenger, node-env, pacman, power, powerlevel10k, sudo, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting; waits for a person: nats
- shanks: receives adwaita, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- matrix keeps data (ADR 0233): what it holds is backed up before it moves
- n8n keeps data (ADR 0233): what it holds is backed up before it moves
- merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until `mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}` runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
- nats provides mesh-bus: its consumers are sent again after it
- nats keeps data (ADR 0233): what it holds is backed up before it moves
- supabase keeps data (ADR 0233): what it holds is backed up before it moves
- xorg provides x11-display: its consumers are sent again after it
- 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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
- read by no module's build: .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/artifact-store-tools/module.json, modules/baserow/files/config.json, modules/baserow/files/server.env, modules/baserow/module.json, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/configuration.go, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/betterbird/module.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge.go, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/main.go, modules/claude-code/cmd/claude-code/node.go, modules/claude-code/cmd/claude-code/render.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-code/module.json, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/claude-licence-manager/module.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/confluence/files/config.json, modules/confluence/module.json, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/desk-channel/module.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cgroups.go, modules/disk-load/cmd/disk-load/cpu.go, modules/disk-load/cmd/disk-load/cpu_test.go, modules/disk-load/cmd/disk-load/tools.go, modules/disk-load/module.json, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/dnsmasq/module.json, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/fail2ban/module.json, modules/gitea/README.md, modules/gitea/client.ts, modules/gitea/cmd/agent-teams/main.go, modules/gitea/cmd/agent-teams/teams.go, modules/gitea/cmd/agent-teams/teams_test.go, modules/gitea/cmd/agent-token/main.go, modules/gitea/cmd/agent-token/token.go, modules/gitea/cmd/agent-token/token_test.go, modules/gitea/cmd/forge/account_test.go, modules/gitea/cmd/forge/commit.go, modules/gitea/cmd/forge/forge.go, modules/gitea/cmd/forge/forge_test.go, modules/gitea/cmd/forge/main.go, modules/gitea/cmd/forge/patchfile.go, modules/gitea/cmd/forge/patchfile_test.go, modules/gitea/cmd/forge/templates_test.go, modules/gitea/files/agent-teams.json, modules/gitea/files/config.json, modules/gitea/files/origins, modules/gitea/files/ready-authors, modules/gitea/files/server.env, modules/gitea/go.mod, modules/gitea/go.sum, modules/gitea/index.ts, modules/gitea/internal/forgehttp/forgehttp.go, modules/gitea/merge.ts, modules/gitea/module.json, modules/gitea/pulls.ts, modules/gitea/siblings.ts, modules/gitea/test/announcing.test.ts, modules/gitea/test/guard.test.ts, modules/gitea/test/protection-read.test.ts, modules/gitea/test/siblings.test.ts, modules/gitea/test/token.test.ts, modules/gitea/test/tools-account.test.ts, modules/gitea/test/trunk.test.ts, modules/gitea/test/webhook.test.ts, modules/gitea/token.ts, modules/gitea/tools-account.ts, modules/gitea/tools/index.ts, modules/gitea/trunk.ts, modules/gitea/webhook.ts, modules/gitlab/files/config.json, modules/gitlab/module.json, modules/grafana/files/admin.secret, modules/grafana/files/config.json, modules/grafana/files/influxdb-api, modules/grafana/files/mesh-influxdb.yaml, modules/grafana/files/oidc-client.secret, modules/grafana/files/oidc.env, modules/grafana/module.json, modules/grafana/test/manifest.test.ts, modules/home-assistant/files/config.json, modules/home-assistant/files/provisions.env, modules/home-assistant/module.json, modules/icecast/files/config.json, modules/icecast/files/icecast.xml, modules/icecast/module.json, modules/influxdb/files/config.json, modules/influxdb/files/server.env, modules/influxdb/module.json, modules/invoicing/files/api.env, modules/invoicing/module.json, modules/jira/files/config.json, modules/jira/module.json, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages.go, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/machine.go, modules/kernel/cmd/kernel-tools/main.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/kernel/go.mod, modules/kernel/go.sum, modules/kernel/module.json, modules/keycloak/cmd/keycloak-provider/main.go, modules/keycloak/cmd/keycloak-provider/moved.go, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/keycloak/go.mod, modules/keycloak/go.sum, modules/keycloak/module.json, modules/lab/files/lab.env, modules/lab/module.json, modules/lab/test/base.test.ts, modules/lab/test/runs.test.ts, modules/lab/tools/index.ts, modules/lab/tools/runs.ts, modules/letta/files/config.json, modules/letta/files/pgpass, modules/letta/files/server.env, modules/letta/files/start.sh, modules/letta/module.json, modules/mailu/files/admin.env, modules/mailu/files/config.json, modules/mailu/files/database.env, modules/mailu/files/mailu.env, modules/mailu/files/secret.env, modules/mailu/health.ts, modules/mailu/module.json, modules/mailu/test/mail-flows.test.ts, modules/mailu/tools/index.ts, modules/mailu/tsconfig.json, modules/mesh-catalog/files/database.url, modules/mesh-catalog/heard.ts, modules/mesh-catalog/index.ts, modules/mesh-catalog/module.json, modules/mesh-catalog/test/heard.test.ts, modules/mesh-catalog/tsconfig.json, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-cli/module.json, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-issues/module.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/answers.go, modules/mesh-knowledge/cmd/mesh-knowledge/kb.go, modules/mesh-knowledge/cmd/mesh-knowledge/main.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/operator.go, modules/mesh-knowledge/cmd/mesh-knowledge/record.go, modules/mesh-knowledge/cmd/mesh-knowledge/review.go, modules/mesh-knowledge/cmd/mesh-knowledge/rules.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-knowledge/module.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/mailevent.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/main.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail-notifier/go.mod, modules/mesh-mail-notifier/go.sum, modules/mesh-mail-notifier/module.json, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/content_rule.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/mailevent.go, modules/mesh-mail/cmd/mesh-mail/main.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/migrations/0001-the-index-holds-messages-folders-account-states-and-events-to-say.sql, modules/mesh-mail/cmd/mesh-mail/mime.go, modules/mesh-mail/cmd/mesh-mail/objects.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/schema.sql, modules/mesh-mail/cmd/mesh-mail/send.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/smtp.go, modules/mesh-mail/cmd/mesh-mail/store.go, modules/mesh-mail/cmd/mesh-mail/tools.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/mesh-mail/go.mod, modules/mesh-mail/go.sum, modules/mesh-mail/module.json, modules/mesh-vault/README.md, modules/mesh-vault/cmd/mesh-vault/askers.go, modules/mesh-vault/cmd/mesh-vault/core.go, modules/mesh-vault/cmd/mesh-vault/core_test.go, modules/mesh-vault/cmd/mesh-vault/followups_test.go, modules/mesh-vault/cmd/mesh-vault/form_test.go, modules/mesh-vault/cmd/mesh-vault/intake.go, modules/mesh-vault/cmd/mesh-vault/intake_test.go, modules/mesh-vault/cmd/mesh-vault/issued_account_test.go, modules/mesh-vault/cmd/mesh-vault/main.go, modules/mesh-vault/cmd/mesh-vault/move.go, modules/mesh-vault/cmd/mesh-vault/move_test.go, modules/mesh-vault/cmd/mesh-vault/named_pair_test.go, modules/mesh-vault/cmd/mesh-vault/nodekey_test.go, modules/mesh-vault/cmd/mesh-vault/owncalls_test.go, modules/mesh-vault/cmd/mesh-vault/pair.go, modules/mesh-vault/cmd/mesh-vault/pair_test.go, modules/mesh-vault/cmd/mesh-vault/perholder.go, modules/mesh-vault/cmd/mesh-vault/perholder_bus_test.go, modules/mesh-vault/cmd/mesh-vault/perholder_test.go, modules/mesh-vault/cmd/mesh-vault/providers_test.go, modules/mesh-vault/cmd/mesh-vault/pulled_in_test.go, modules/mesh-vault/cmd/mesh-vault/reseal_health.go, modules/mesh-vault/cmd/mesh-vault/reseal_health_test.go, modules/mesh-vault/cmd/mesh-vault/rotate_one_test.go, modules/mesh-vault/cmd/mesh-vault/store.go, modules/mesh-vault/cmd/mesh-vault/tools.go, modules/mesh-vault/cmd/mesh-vault/vault.go, modules/mesh-vault/cmd/mesh-vault/vault_test.go, modules/mesh-vault/go.mod, modules/mesh-vault/go.sum, modules/mesh-vault/module.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/minio/files/root.env, modules/minio/module.json, modules/mongodb/files/server-root.secret, modules/mongodb/module.json, modules/mosquitto/files/bootstrap.env, modules/mosquitto/files/mosquitto.conf, modules/mosquitto/module.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/mounts/module.json, modules/mssql/files/backup.sql, modules/mssql/files/sa.env, modules/mssql/module.json, modules/networkmanager/cmd/uplink-tools/templates_test.go, modules/networkmanager/files/50-mesh.conf, modules/networkmanager/module.json, modules/nextcloud/files/config.json, modules/nextcloud/files/server.env, modules/nextcloud/module.json, modules/nfs-server/cmd/nfs-server/manifest_test.go, modules/nfs-server/cmd/nfs-server/templates_test.go, modules/nfs-server/files/50-mesh.conf, modules/nfs-server/files/shares.conf, modules/nfs-server/module.json, modules/nftables/files/mesh-filter.service, modules/nftables/files/mesh.conf, modules/nftables/module.json, modules/nodered/files/config.json, modules/nodered/files/mqtt.env, modules/nodered/files/settings.js, modules/nodered/files/settings.json, modules/nodered/module.json, modules/only-office/files/server.env, modules/only-office/module.json, modules/postgres/cmd/postgres-provider/main.go, modules/postgres/cmd/postgres-provider/moved.go, modules/postgres/cmd/postgres-provider/moved_test.go, modules/postgres/files/consumers.json, modules/postgres/go.mod, modules/postgres/go.sum, modules/postgres/module.json, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/records/module.json, modules/redis/files/redis.conf, modules/redis/module.json, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/restic/module.json, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-adapter/README.md, modules/route-adapter/cmd/route-provider/main.go, modules/route-adapter/cmd/route-provider/provider.go, modules/route-adapter/cmd/route-provider/provider_test.go, modules/route-adapter/files/config.json, modules/route-adapter/go.mod, modules/route-adapter/go.sum, modules/route-adapter/module.json, modules/route-proxy/Dockerfile, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum, modules/route-proxy/module.json, modules/searxng/files/config.json, modules/searxng/files/settings.yml, modules/searxng/module.json, modules/ssh-client/cmd/ssh-client-tools/ssh_test.go, modules/ssh-client/cmd/ssh-client-tools/templates_test.go, modules/ssh-client/files/config, modules/ssh-client/module.json, modules/sshd/files/10-mesh.conf, modules/sshd/module.json, modules/step-ca/files/config.json, modules/step-ca/files/init.env, modules/step-ca/module.json, modules/systemd-networkd/cmd/uplink-tools/templates_test.go, modules/systemd-networkd/files/00-mesh0.network, modules/systemd-networkd/module.json, modules/telegram/cmd/telegram/render.go, modules/telegram/cmd/telegram/render_test.go, modules/umami/files/server.env, modules/umami/module.json, modules/unifi/files/config.json, modules/unifi/module.json, modules/zfs/cmd/zfs-tools/manifest_test.go, modules/zfs/cmd/zfs-tools/templates_test.go, modules/zfs/files/scrub.conf, modules/zfs/module.json
Run by the build seat on shanks as `build-1792136398815349320` (`builds --log build-1792136398815349320`).
```
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 284.211755
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.209935ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.172672ms)
✔ the options shell itself holds no secret (0.191592ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.474296ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.227632ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (125.46882ms)
✔ a consumer that contributed nothing gets its own subtree (1.247495ms)
✔ a contributed list is granted exactly, duplicates once (0.277393ms)
✔ a list that is not topic filters is refused whole (0.280893ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.346734ms)
✔ the role is brought to exactly the wanted ACLs (0.356915ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 222.992003
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (3.594254ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.498856ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (0.426435ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.243043ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 279.446697
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (1.946804ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 90.71591
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.736931ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.334754ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.505176ms)
✔ what is not the operator's to remove is refused by name (0.927901ms)
✔ which chains jump to a target is read from a listing (0.221012ms)
✖ the filter's commands run as given by root and through sudo without a prompt by anyone else (1.088283ms)
✔ the filter file is the one the manifest's filtering names (0.355304ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.542256ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.543607ms)
ℹ tests 9
ℹ suites 0
ℹ pass 8
ℹ fail 1
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 107.723815
✖ failing tests:
test at test/remove.test.ts:77:1
✖ the filter's commands run as given by root and through sudo without a prompt by anyone else (1.088283ms)
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
[
+ 'iptables-legacy',
- 'sudo',
[
- '-n',
- 'iptables-legacy',
'-S'
]
]
at TestContext.<anonymous> (file:///tmp/tmp.0iwMqmlmiB/nftables/test/remove.test.ts:80:10)
at Test.runInAsyncScope (node:async_hooks:214:14)
at Test.run (node:internal/test_runner/test:1047:25)
at Test.processPendingSubtests (node:internal/test_runner/test:744:18)
at Test.postRun (node:internal/test_runner/test:1173:19)
at Test.run (node:internal/test_runner/test:1101:12)
at async Test.processPendingSubtests (node:internal/test_runner/test:744:7) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [ 'iptables-legacy', [ '-S' ] ],
expected: [ 'sudo', [ '-n', 'iptables-legacy', '-S' ] ],
operator: 'deepStrictEqual',
diff: 'simple'
}
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.498251ms)
✔ fresh: with nothing named, the step makes its own broker node (0.371924ms)
✔ a login the broker does not take is never written (0.188222ms)
✔ a named node that is not there, or a loopback broker, is refused (0.292704ms)
✔ a deploy that raced another is read again once (1.251455ms)
✔ settings name broker nodes under mqtt.brokers (0.168502ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 101.883105
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.343506ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.174043ms)
✔ both are unpacked under the account's home, owned by the account (0.149552ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.381885ms)
✔ the README names the upstream, the version and the licence (0.203492ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 93.582174
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (7.504511ms)
✔ it removes the file it wrote when that contribution goes (2.849474ms)
✔ it never touches a file it did not write (4.181301ms)
✔ the target port follows what the contributor publishes (1.868502ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.382707ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.298316ms)
✔ a contribution it cannot act on is skipped and named (0.224942ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.258163ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.912283ms)
✔ a body limit is written as the predecessor's buffering middleware (1.960184ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.323284ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 120.735233
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
provisioner/index.ts(6,10): error TS2724: '"@novox/mesh-sdk/provisioner"' has no exported member named 'provisioner'. Did you mean 'Provisioner'?
tools/index.ts(4,10): error TS2305: Module '"@novox/mesh-sdk/tools"' has no exported member 'tool'.
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (10.044161ms)
✔ it runs in the directory it is given (4.035439ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (503.196669ms)
✔ output beyond the bound is cut and the answer says so (8.984119ms)
✔ a job left in the background does not hold the answer (204.959344ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.666802ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.164672ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.268223ms)
✔ zsh_config counts the mesh's block in a file (3.737745ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.482908ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.130331ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.224283ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.299554ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.304344ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.575687ms)
✔ it keeps the package and sets the login shell through the user shape (0.165002ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.253983ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.475075ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.407455ms)
✔ execute is served only when the machine's setting says serve (0.838071ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.271523ms)
✔ the setting is read from the file the bundle's word names (0.617417ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 829.914209
TypeScript modules that failed: nftables showcase
```
Merge check at 5b1515c6
Judged: head 5b1515c6f3b1 merged into trunk 1a2c917abfdb; read beside it: mesh-controller cf897e89fe31, mesh-controller-main d70bb1f38867, mesh-host b546d4316c3b, mesh-tools 6b3e15042fee
mesh/merge-gate: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] 29 problem(s) the change brings; the first: modules/adwaita: adwaita is not registrable — this manifest cannot be used: - adwaita is marked moved and names no template: a moved module's files are filled from template files of its own, "template": "files/<name>" (novox/hq ADR 0349 §2) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
mesh/repo-check: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; merge-check.sh (go) passed; its merge-check-typescript.sh failed: TypeScript modules that failed: showcase
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
Run by the build seat on shanks as build-1792138012729908255 (builds --log build-1792138012729908255).
ℹ todo 0
ℹ duration_ms 107.032903
type-checking modules/mesh-catalog (TypeScript)
testing modules/mesh-catalog (TypeScript)
✔ the catalogue hears the build seat that builds now, not only the retired one (issue 712) (3.815402ms)
✔ a walk's build is placed, under its module and commit (0.65773ms)
✔ a merge check, a try, a dry run and a failure are passed over without a fault (0.234043ms)
✔ an outcome that names no module or commit is said as the builder's fault (0.183632ms)
✔ a branch built through the build verb is passed over; a commit on the trunk, or from a seat that names none, is placed (ADR 0238) (0.163782ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 92.458671
type-checking modules/minio (TypeScript)
NOT TESTED: modules/minio is TypeScript and has no tests of its own
type-checking modules/model-usage (TypeScript)
testing modules/model-usage (TypeScript)
✔ a store that refuses a row is thrown, so the event is offered again, and it is spooled (24.366164ms)
✔ a redelivered event writes the same reading, never a second, and clears its spooled copy (10.256081ms)
✔ on its last delivery a usage event is spooled and taken (47.094997ms)
✔ the spool replays once the store answers, and an older reading replayed late does not overwrite a newer (50.792878ms)
✔ an event without a body is taken without a TypeError; a row the store could never take is skipped, not retried (0.796631ms)
✔ model_usage_status reports the spool, and is offered even when the store cannot be opened (46.515478ms)
﹣ against postgres: migrations are numbered and repeatable, and the upsert keeps the reading observed latest (0.166492ms) # TEST_DATABASE_URL is not set
ℹ tests 7
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 293.171966
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.201827ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.745801ms)
✔ the options shell itself holds no secret (0.201303ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.480147ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.228123ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (9.985747ms)
✔ a consumer that contributed nothing gets its own subtree (1.217606ms)
✔ a contributed list is granted exactly, duplicates once (0.280304ms)
✔ a list that is not topic filters is refused whole (0.259134ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.344325ms)
✔ the role is brought to exactly the wanted ACLs (0.361095ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 105.76293
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (3.590539ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.533777ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (0.424436ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.239353ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 286.366936
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (1.902885ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 91.352501
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.868766ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.292024ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.521377ms)
✔ what is not the operator's to remove is refused by name (1.816974ms)
✔ which chains jump to a target is read from a listing (0.241814ms)
✔ the filter's commands run as given by root and through sudo without a prompt by anyone else (0.229503ms)
✔ without a uid given, the process's own decides: as given for root, through sudo for anyone else (0.133562ms)
✔ the filter file is the one the manifest's filtering names (0.417085ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.69441ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.654869ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 111.137022
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.465804ms)
✔ fresh: with nothing named, the step makes its own broker node (0.360685ms)
✔ a login the broker does not take is never written (0.191082ms)
✔ a named node that is not there, or a loopback broker, is refused (0.277094ms)
✔ a deploy that raced another is read again once (0.543537ms)
✔ settings name broker nodes under mqtt.brokers (0.153902ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 105.806048
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.336459ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.175603ms)
✔ both are unpacked under the account's home, owned by the account (0.147782ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.373195ms)
✔ the README names the upstream, the version and the licence (0.201713ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 93.315037
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (7.515073ms)
✔ it removes the file it wrote when that contribution goes (2.904089ms)
✔ it never touches a file it did not write (4.075616ms)
✔ the target port follows what the contributor publishes (2.850999ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.383829ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.252807ms)
✔ a contribution it cannot act on is skipped and named (0.218923ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.268653ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.523421ms)
✔ a body limit is written as the predecessor's buffering middleware (2.013708ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.412386ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 121.374899
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
provisioner/index.ts(6,10): error TS2724: '"@novox/mesh-sdk/provisioner"' has no exported member named 'provisioner'. Did you mean 'Provisioner'?
tools/index.ts(4,10): error TS2305: Module '"@novox/mesh-sdk/tools"' has no exported member 'tool'.
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (9.243406ms)
✔ it runs in the directory it is given (4.328799ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (503.332467ms)
✔ output beyond the bound is cut and the answer says so (6.635801ms)
✔ a job left in the background does not hold the answer (203.889452ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.813549ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.167203ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.262004ms)
✔ zsh_config counts the mesh's block in a file (4.067975ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.47679ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.125352ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.227633ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.299934ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.303614ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.499167ms)
✔ it keeps the package and sets the login shell through the user shape (0.134001ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.246803ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.459846ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.403426ms)
✔ execute is served only when the machine's setting says serve (0.810252ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.255984ms)
✔ the setting is read from the file the bundle's word names (0.587188ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 827.625641
TypeScript modules that failed: showcase
**Merge check** at `5b1515c6`
Judged: head `5b1515c6f3b1` merged into trunk `1a2c917abfdb`; read beside it: mesh-controller `cf897e89fe31`, mesh-controller-main `d70bb1f38867`, mesh-host `b546d4316c3b`, mesh-tools `6b3e15042fee`
- `mesh/merge-gate`: **FAIL** — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] 29 problem(s) the change brings; the first: modules/adwaita: adwaita is not registrable — this manifest cannot be used: - adwaita is marked moved and names no template: a moved module's files are filled from template files of its own, `"template": "files/<name>"` (novox/hq ADR 0349 §2) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
- `mesh/repo-check`: **FAIL** — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; merge-check.sh (go) passed; its merge-check-typescript.sh failed: TypeScript modules that failed: showcase
**Delivery plan** — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
- tier 0: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- ace: receives build-agent, ca-trust, docker, hostname, localization, logrotate, matrix, n8n, node-env, pacman, power, powerlevel10k, sudo, supabase, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- g14: receives adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, memory-pressure, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- novox: receives build-agent, ca-trust, docker, hostname, localization, logrotate, mesh-delivery, messenger, node-env, pacman, power, powerlevel10k, sudo, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting; waits for a person: nats
- shanks: receives adwaita, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- matrix keeps data (ADR 0233): what it holds is backed up before it moves
- n8n keeps data (ADR 0233): what it holds is backed up before it moves
- merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until `mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}` runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
- nats provides mesh-bus: its consumers are sent again after it
- nats keeps data (ADR 0233): what it holds is backed up before it moves
- supabase keeps data (ADR 0233): what it holds is backed up before it moves
- xorg provides x11-display: its consumers are sent again after it
- 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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
- read by no module's build: .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/artifact-store-tools/module.json, modules/baserow/files/config.json, modules/baserow/files/server.env, modules/baserow/module.json, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/configuration.go, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/betterbird/module.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge.go, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/main.go, modules/claude-code/cmd/claude-code/node.go, modules/claude-code/cmd/claude-code/render.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-code/module.json, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/claude-licence-manager/module.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/confluence/files/config.json, modules/confluence/module.json, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/desk-channel/module.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cgroups.go, modules/disk-load/cmd/disk-load/cpu.go, modules/disk-load/cmd/disk-load/cpu_test.go, modules/disk-load/cmd/disk-load/tools.go, modules/disk-load/module.json, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/dnsmasq/module.json, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/fail2ban/module.json, modules/gitea/README.md, modules/gitea/client.ts, modules/gitea/cmd/agent-teams/main.go, modules/gitea/cmd/agent-teams/teams.go, modules/gitea/cmd/agent-teams/teams_test.go, modules/gitea/cmd/agent-token/main.go, modules/gitea/cmd/agent-token/token.go, modules/gitea/cmd/agent-token/token_test.go, modules/gitea/cmd/forge/account_test.go, modules/gitea/cmd/forge/commit.go, modules/gitea/cmd/forge/forge.go, modules/gitea/cmd/forge/forge_test.go, modules/gitea/cmd/forge/main.go, modules/gitea/cmd/forge/patchfile.go, modules/gitea/cmd/forge/patchfile_test.go, modules/gitea/cmd/forge/templates_test.go, modules/gitea/files/agent-teams.json, modules/gitea/files/config.json, modules/gitea/files/origins, modules/gitea/files/ready-authors, modules/gitea/files/server.env, modules/gitea/go.mod, modules/gitea/go.sum, modules/gitea/index.ts, modules/gitea/internal/forgehttp/forgehttp.go, modules/gitea/merge.ts, modules/gitea/module.json, modules/gitea/pulls.ts, modules/gitea/siblings.ts, modules/gitea/test/announcing.test.ts, modules/gitea/test/guard.test.ts, modules/gitea/test/protection-read.test.ts, modules/gitea/test/siblings.test.ts, modules/gitea/test/token.test.ts, modules/gitea/test/tools-account.test.ts, modules/gitea/test/trunk.test.ts, modules/gitea/test/webhook.test.ts, modules/gitea/token.ts, modules/gitea/tools-account.ts, modules/gitea/tools/index.ts, modules/gitea/trunk.ts, modules/gitea/webhook.ts, modules/gitlab/files/config.json, modules/gitlab/module.json, modules/grafana/files/admin.secret, modules/grafana/files/config.json, modules/grafana/files/influxdb-api, modules/grafana/files/mesh-influxdb.yaml, modules/grafana/files/oidc-client.secret, modules/grafana/files/oidc.env, modules/grafana/module.json, modules/grafana/test/manifest.test.ts, modules/home-assistant/files/config.json, modules/home-assistant/files/provisions.env, modules/home-assistant/module.json, modules/icecast/files/config.json, modules/icecast/files/icecast.xml, modules/icecast/module.json, modules/influxdb/files/config.json, modules/influxdb/files/server.env, modules/influxdb/module.json, modules/invoicing/files/api.env, modules/invoicing/module.json, modules/jira/files/config.json, modules/jira/module.json, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages.go, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/machine.go, modules/kernel/cmd/kernel-tools/main.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/kernel/go.mod, modules/kernel/go.sum, modules/kernel/module.json, modules/keycloak/cmd/keycloak-provider/main.go, modules/keycloak/cmd/keycloak-provider/moved.go, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/keycloak/go.mod, modules/keycloak/go.sum, modules/keycloak/module.json, modules/lab/files/lab.env, modules/lab/module.json, modules/lab/test/base.test.ts, modules/lab/test/runs.test.ts, modules/lab/tools/index.ts, modules/lab/tools/runs.ts, modules/letta/files/config.json, modules/letta/files/pgpass, modules/letta/files/server.env, modules/letta/files/start.sh, modules/letta/module.json, modules/mailu/files/admin.env, modules/mailu/files/config.json, modules/mailu/files/database.env, modules/mailu/files/mailu.env, modules/mailu/files/secret.env, modules/mailu/health.ts, modules/mailu/module.json, modules/mailu/test/mail-flows.test.ts, modules/mailu/tools/index.ts, modules/mailu/tsconfig.json, modules/mesh-catalog/files/database.url, modules/mesh-catalog/heard.ts, modules/mesh-catalog/index.ts, modules/mesh-catalog/module.json, modules/mesh-catalog/test/heard.test.ts, modules/mesh-catalog/tsconfig.json, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-cli/module.json, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-issues/module.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/answers.go, modules/mesh-knowledge/cmd/mesh-knowledge/kb.go, modules/mesh-knowledge/cmd/mesh-knowledge/main.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/operator.go, modules/mesh-knowledge/cmd/mesh-knowledge/record.go, modules/mesh-knowledge/cmd/mesh-knowledge/review.go, modules/mesh-knowledge/cmd/mesh-knowledge/rules.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-knowledge/module.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/mailevent.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/main.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail-notifier/go.mod, modules/mesh-mail-notifier/go.sum, modules/mesh-mail-notifier/module.json, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/content_rule.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/mailevent.go, modules/mesh-mail/cmd/mesh-mail/main.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/migrations/0001-the-index-holds-messages-folders-account-states-and-events-to-say.sql, modules/mesh-mail/cmd/mesh-mail/mime.go, modules/mesh-mail/cmd/mesh-mail/objects.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/schema.sql, modules/mesh-mail/cmd/mesh-mail/send.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/smtp.go, modules/mesh-mail/cmd/mesh-mail/store.go, modules/mesh-mail/cmd/mesh-mail/tools.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/mesh-mail/go.mod, modules/mesh-mail/go.sum, modules/mesh-mail/module.json, modules/mesh-vault/README.md, modules/mesh-vault/cmd/mesh-vault/askers.go, modules/mesh-vault/cmd/mesh-vault/core.go, modules/mesh-vault/cmd/mesh-vault/core_test.go, modules/mesh-vault/cmd/mesh-vault/followups_test.go, modules/mesh-vault/cmd/mesh-vault/form_test.go, modules/mesh-vault/cmd/mesh-vault/intake.go, modules/mesh-vault/cmd/mesh-vault/intake_test.go, modules/mesh-vault/cmd/mesh-vault/issued_account_test.go, modules/mesh-vault/cmd/mesh-vault/main.go, modules/mesh-vault/cmd/mesh-vault/move.go, modules/mesh-vault/cmd/mesh-vault/move_test.go, modules/mesh-vault/cmd/mesh-vault/named_pair_test.go, modules/mesh-vault/cmd/mesh-vault/nodekey_test.go, modules/mesh-vault/cmd/mesh-vault/owncalls_test.go, modules/mesh-vault/cmd/mesh-vault/pair.go, modules/mesh-vault/cmd/mesh-vault/pair_test.go, modules/mesh-vault/cmd/mesh-vault/perholder.go, modules/mesh-vault/cmd/mesh-vault/perholder_bus_test.go, modules/mesh-vault/cmd/mesh-vault/perholder_test.go, modules/mesh-vault/cmd/mesh-vault/providers_test.go, modules/mesh-vault/cmd/mesh-vault/pulled_in_test.go, modules/mesh-vault/cmd/mesh-vault/reseal_health.go, modules/mesh-vault/cmd/mesh-vault/reseal_health_test.go, modules/mesh-vault/cmd/mesh-vault/rotate_one_test.go, modules/mesh-vault/cmd/mesh-vault/store.go, modules/mesh-vault/cmd/mesh-vault/tools.go, modules/mesh-vault/cmd/mesh-vault/vault.go, modules/mesh-vault/cmd/mesh-vault/vault_test.go, modules/mesh-vault/go.mod, modules/mesh-vault/go.sum, modules/mesh-vault/module.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/minio/files/root.env, modules/minio/module.json, modules/mongodb/files/server-root.secret, modules/mongodb/module.json, modules/mosquitto/files/bootstrap.env, modules/mosquitto/files/mosquitto.conf, modules/mosquitto/module.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/mounts/module.json, modules/mssql/files/backup.sql, modules/mssql/files/sa.env, modules/mssql/module.json, modules/networkmanager/cmd/uplink-tools/templates_test.go, modules/networkmanager/files/50-mesh.conf, modules/networkmanager/module.json, modules/nextcloud/files/config.json, modules/nextcloud/files/server.env, modules/nextcloud/module.json, modules/nfs-server/cmd/nfs-server/manifest_test.go, modules/nfs-server/cmd/nfs-server/templates_test.go, modules/nfs-server/files/50-mesh.conf, modules/nfs-server/files/shares.conf, modules/nfs-server/module.json, modules/nftables/files/mesh-filter.service, modules/nftables/files/mesh.conf, modules/nftables/module.json, modules/nftables/test/remove.test.ts, modules/nodered/files/config.json, modules/nodered/files/mqtt.env, modules/nodered/files/settings.js, modules/nodered/files/settings.json, modules/nodered/module.json, modules/only-office/files/server.env, modules/only-office/module.json, modules/postgres/cmd/postgres-provider/main.go, modules/postgres/cmd/postgres-provider/moved.go, modules/postgres/cmd/postgres-provider/moved_test.go, modules/postgres/files/consumers.json, modules/postgres/go.mod, modules/postgres/go.sum, modules/postgres/module.json, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/records/module.json, modules/redis/files/redis.conf, modules/redis/module.json, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/restic/module.json, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-adapter/README.md, modules/route-adapter/cmd/route-provider/main.go, modules/route-adapter/cmd/route-provider/provider.go, modules/route-adapter/cmd/route-provider/provider_test.go, modules/route-adapter/files/config.json, modules/route-adapter/go.mod, modules/route-adapter/go.sum, modules/route-adapter/module.json, modules/route-proxy/Dockerfile, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum, modules/route-proxy/module.json, modules/searxng/files/config.json, modules/searxng/files/settings.yml, modules/searxng/module.json, modules/ssh-client/cmd/ssh-client-tools/ssh_test.go, modules/ssh-client/cmd/ssh-client-tools/templates_test.go, modules/ssh-client/files/config, modules/ssh-client/module.json, modules/sshd/files/10-mesh.conf, modules/sshd/module.json, modules/step-ca/files/config.json, modules/step-ca/files/init.env, modules/step-ca/module.json, modules/systemd-networkd/cmd/uplink-tools/templates_test.go, modules/systemd-networkd/files/00-mesh0.network, modules/systemd-networkd/module.json, modules/telegram/cmd/telegram/render.go, modules/telegram/cmd/telegram/render_test.go, modules/umami/files/server.env, modules/umami/module.json, modules/unifi/files/config.json, modules/unifi/module.json, modules/zfs/cmd/zfs-tools/manifest_test.go, modules/zfs/cmd/zfs-tools/templates_test.go, modules/zfs/files/scrub.conf, modules/zfs/module.json
Run by the build seat on shanks as `build-1792138012729908255` (`builds --log build-1792138012729908255`).
```
ℹ todo 0
ℹ duration_ms 107.032903
type-checking modules/mesh-catalog (TypeScript)
testing modules/mesh-catalog (TypeScript)
✔ the catalogue hears the build seat that builds now, not only the retired one (issue 712) (3.815402ms)
✔ a walk's build is placed, under its module and commit (0.65773ms)
✔ a merge check, a try, a dry run and a failure are passed over without a fault (0.234043ms)
✔ an outcome that names no module or commit is said as the builder's fault (0.183632ms)
✔ a branch built through the build verb is passed over; a commit on the trunk, or from a seat that names none, is placed (ADR 0238) (0.163782ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 92.458671
type-checking modules/minio (TypeScript)
NOT TESTED: modules/minio is TypeScript and has no tests of its own
type-checking modules/model-usage (TypeScript)
testing modules/model-usage (TypeScript)
✔ a store that refuses a row is thrown, so the event is offered again, and it is spooled (24.366164ms)
✔ a redelivered event writes the same reading, never a second, and clears its spooled copy (10.256081ms)
✔ on its last delivery a usage event is spooled and taken (47.094997ms)
✔ the spool replays once the store answers, and an older reading replayed late does not overwrite a newer (50.792878ms)
✔ an event without a body is taken without a TypeError; a row the store could never take is skipped, not retried (0.796631ms)
✔ model_usage_status reports the spool, and is offered even when the store cannot be opened (46.515478ms)
﹣ against postgres: migrations are numbered and repeatable, and the upsert keeps the reading observed latest (0.166492ms) # TEST_DATABASE_URL is not set
ℹ tests 7
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 293.171966
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.201827ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.745801ms)
✔ the options shell itself holds no secret (0.201303ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.480147ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.228123ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (9.985747ms)
✔ a consumer that contributed nothing gets its own subtree (1.217606ms)
✔ a contributed list is granted exactly, duplicates once (0.280304ms)
✔ a list that is not topic filters is refused whole (0.259134ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.344325ms)
✔ the role is brought to exactly the wanted ACLs (0.361095ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 105.76293
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (3.590539ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.533777ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (0.424436ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.239353ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 286.366936
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (1.902885ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 91.352501
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.868766ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.292024ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.521377ms)
✔ what is not the operator's to remove is refused by name (1.816974ms)
✔ which chains jump to a target is read from a listing (0.241814ms)
✔ the filter's commands run as given by root and through sudo without a prompt by anyone else (0.229503ms)
✔ without a uid given, the process's own decides: as given for root, through sudo for anyone else (0.133562ms)
✔ the filter file is the one the manifest's filtering names (0.417085ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.69441ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.654869ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 111.137022
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.465804ms)
✔ fresh: with nothing named, the step makes its own broker node (0.360685ms)
✔ a login the broker does not take is never written (0.191082ms)
✔ a named node that is not there, or a loopback broker, is refused (0.277094ms)
✔ a deploy that raced another is read again once (0.543537ms)
✔ settings name broker nodes under mqtt.brokers (0.153902ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 105.806048
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.336459ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.175603ms)
✔ both are unpacked under the account's home, owned by the account (0.147782ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.373195ms)
✔ the README names the upstream, the version and the licence (0.201713ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 93.315037
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (7.515073ms)
✔ it removes the file it wrote when that contribution goes (2.904089ms)
✔ it never touches a file it did not write (4.075616ms)
✔ the target port follows what the contributor publishes (2.850999ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.383829ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.252807ms)
✔ a contribution it cannot act on is skipped and named (0.218923ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.268653ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.523421ms)
✔ a body limit is written as the predecessor's buffering middleware (2.013708ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.412386ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 121.374899
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
provisioner/index.ts(6,10): error TS2724: '"@novox/mesh-sdk/provisioner"' has no exported member named 'provisioner'. Did you mean 'Provisioner'?
tools/index.ts(4,10): error TS2305: Module '"@novox/mesh-sdk/tools"' has no exported member 'tool'.
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (9.243406ms)
✔ it runs in the directory it is given (4.328799ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (503.332467ms)
✔ output beyond the bound is cut and the answer says so (6.635801ms)
✔ a job left in the background does not hold the answer (203.889452ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.813549ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.167203ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.262004ms)
✔ zsh_config counts the mesh's block in a file (4.067975ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.47679ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.125352ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.227633ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.299934ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.303614ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.499167ms)
✔ it keeps the package and sets the login shell through the user shape (0.134001ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.246803ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.459846ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.403426ms)
✔ execute is served only when the machine's setting says serve (0.810252ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.255984ms)
✔ the setting is read from the file the bundle's word names (0.587188ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 827.625641
TypeScript modules that failed: showcase
```
mesh/repo-check head afd002a9004a merged into trunk 1a2c917abfdb — pass: [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] T…
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
mesh-delivery: the ready mark at is cleared: the head is now afd002a900, pushed after it. Mark the new head ready once it is reviewed.
mesh-delivery: the ready mark at is cleared: the head is now afd002a9004a1783989d5cfa26d8c5c8fcaa43c6, pushed after it. Mark the new head ready once it is reviewed.
Tree f6956c8b = local 25022bd6. Reviews (Opus): feature r3 APPROVE (5dac1ef9); sync with main + issue 874 APPROVE; issue 877 APPROVE; issue 894 APPROVE. Issue 875's dropped blank lines restored in ac46c36a. The operator's word for feature 57: 10:10.
ready at afd002a9004a1783989d5cfa26d8c5c8fcaa43c6
Tree f6956c8b = local 25022bd6. Reviews (Opus): feature r3 APPROVE (5dac1ef9); sync with main + issue 874 APPROVE; issue 877 APPROVE; issue 894 APPROVE. Issue 875's dropped blank lines restored in ac46c36a. The operator's word for feature 57: 10:10.
Merge check at afd002a9
Judged: head afd002a9004a merged into trunk 1a2c917abfdb; read beside it: mesh-controller 6a6628a76961, mesh-controller-main d70bb1f38867, mesh-host b546d4316c3b, mesh-tools 6b3e15042fee
mesh/merge-gate: FAIL — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] 1 problem(s) the change brings; the first: modules/de-spiegel defines de-spiegel, which the mesh builds from novox/de-spiegel: two definitions of one module name (issue 239) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
mesh/repo-check: PASS — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
Run by the build seat on shanks as build-1792138867367407860 (builds --log build-1792138867367407860).
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 105.342539
type-checking modules/mesh-catalog (TypeScript)
testing modules/mesh-catalog (TypeScript)
✔ the catalogue hears the build seat that builds now, not only the retired one (issue 712) (3.850881ms)
✔ a walk's build is placed, under its module and commit (0.643318ms)
✔ a merge check, a try, a dry run and a failure are passed over without a fault (0.236873ms)
✔ an outcome that names no module or commit is said as the builder's fault (0.194223ms)
✔ a branch built through the build verb is passed over; a commit on the trunk, or from a seat that names none, is placed (ADR 0238) (0.166512ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 92.745763
type-checking modules/minio (TypeScript)
NOT TESTED: modules/minio is TypeScript and has no tests of its own
type-checking modules/model-usage (TypeScript)
testing modules/model-usage (TypeScript)
✔ a store that refuses a row is thrown, so the event is offered again, and it is spooled (19.996702ms)
✔ a redelivered event writes the same reading, never a second, and clears its spooled copy (10.374166ms)
✔ on its last delivery a usage event is spooled and taken (47.41329ms)
✔ the spool replays once the store answers, and an older reading replayed late does not overwrite a newer (49.002341ms)
✔ an event without a body is taken without a TypeError; a row the store could never take is skipped, not retried (0.79893ms)
✔ model_usage_status reports the spool, and is offered even when the store cannot be opened (46.847953ms)
﹣ against postgres: migrations are numbered and repeatable, and the upsert keeps the reading observed latest (0.161932ms) # TEST_DATABASE_URL is not set
ℹ tests 7
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 287.277148
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.878604ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.177352ms)
✔ the options shell itself holds no secret (0.208703ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.462677ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.232823ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (72.276955ms)
✔ a consumer that contributed nothing gets its own subtree (1.218516ms)
✔ a contributed list is granted exactly, duplicates once (0.283654ms)
✔ a list that is not topic filters is refused whole (0.258304ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.345465ms)
✔ the role is brought to exactly the wanted ACLs (0.353864ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 167.47054
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (3.923242ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.582168ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (0.413675ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.254433ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 282.14173
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (1.917105ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 93.497363
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.801573ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.283364ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.547077ms)
✔ what is not the operator's to remove is refused by name (1.645491ms)
✔ which chains jump to a target is read from a listing (0.218693ms)
✔ the filter's commands run as given by root and through sudo without a prompt by anyone else (0.218502ms)
✔ without a uid given, the process's own decides: as given for root, through sudo for anyone else (0.124161ms)
✔ the filter file is the one the manifest's filtering names (0.335144ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.642979ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.627539ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 107.737358
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.445392ms)
✔ fresh: with nothing named, the step makes its own broker node (0.363645ms)
✔ a login the broker does not take is never written (0.186833ms)
✔ a named node that is not there, or a loopback broker, is refused (0.972383ms)
✔ a deploy that raced another is read again once (0.567137ms)
✔ settings name broker nodes under mqtt.brokers (0.158582ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 101.70467
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.341537ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.174642ms)
✔ both are unpacked under the account's home, owned by the account (0.147522ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.372065ms)
✔ the README names the upstream, the version and the licence (0.217193ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 94.485795
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (8.142757ms)
✔ it removes the file it wrote when that contribution goes (2.760416ms)
✔ it never touches a file it did not write (4.257926ms)
✔ the target port follows what the contributor publishes (1.826284ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.370988ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.346608ms)
✔ a contribution it cannot act on is skipped and named (0.237053ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.257614ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.57858ms)
✔ a body limit is written as the predecessor's buffering middleware (1.817124ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.309614ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 119.291969
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
NOT TESTED: modules/showcase is TypeScript and has no tests of its own
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (8.793835ms)
✔ it runs in the directory it is given (3.588647ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (503.451277ms)
✔ output beyond the bound is cut and the answer says so (7.010561ms)
✔ a job left in the background does not hold the answer (204.881267ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.655465ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.172232ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.262003ms)
✔ zsh_config counts the mesh's block in a file (3.871341ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.610551ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.134792ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.232373ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.331764ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.328944ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.504887ms)
✔ it keeps the package and sets the login shell through the user shape (0.142772ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.249394ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.474186ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.409405ms)
✔ execute is served only when the machine's setting says serve (0.839552ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.258943ms)
✔ the setting is read from the file the bundle's word names (0.589957ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 827.043465
**Merge check** at `afd002a9`
Judged: head `afd002a9004a` merged into trunk `1a2c917abfdb`; read beside it: mesh-controller `6a6628a76961`, mesh-controller-main `d70bb1f38867`, mesh-host `b546d4316c3b`, mesh-tools `6b3e15042fee`
- `mesh/merge-gate`: **FAIL** — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] 1 problem(s) the change brings; the first: modules/de-spiegel defines de-spiegel, which the mesh builds from novox/de-spiegel: two definitions of one module name (issue 239) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
- `mesh/repo-check`: **PASS** — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
**Delivery plan** — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
- tier 0: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- ace: receives build-agent, ca-trust, docker, hostname, localization, logrotate, matrix, n8n, node-env, pacman, power, powerlevel10k, sudo, supabase, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- g14: receives adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, memory-pressure, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- novox: receives build-agent, ca-trust, docker, hostname, localization, logrotate, mesh-delivery, messenger, node-env, pacman, power, powerlevel10k, sudo, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting; waits for a person: nats
- shanks: receives adwaita, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- matrix keeps data (ADR 0233): what it holds is backed up before it moves
- n8n keeps data (ADR 0233): what it holds is backed up before it moves
- merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until `mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}` runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
- nats provides mesh-bus: its consumers are sent again after it
- nats keeps data (ADR 0233): what it holds is backed up before it moves
- supabase keeps data (ADR 0233): what it holds is backed up before it moves
- xorg provides x11-display: its consumers are sent again after it
- 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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
- read by no module's build: .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/artifact-store-tools/module.json, modules/baserow/files/config.json, modules/baserow/files/server.env, modules/baserow/module.json, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/configuration.go, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/betterbird/module.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge.go, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/main.go, modules/claude-code/cmd/claude-code/node.go, modules/claude-code/cmd/claude-code/render.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-code/module.json, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/claude-licence-manager/module.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/confluence/files/config.json, modules/confluence/module.json, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/desk-channel/module.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cgroups.go, modules/disk-load/cmd/disk-load/cpu.go, modules/disk-load/cmd/disk-load/cpu_test.go, modules/disk-load/cmd/disk-load/tools.go, modules/disk-load/module.json, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/dnsmasq/module.json, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/fail2ban/module.json, modules/gitea/README.md, modules/gitea/client.ts, modules/gitea/cmd/agent-teams/main.go, modules/gitea/cmd/agent-teams/teams.go, modules/gitea/cmd/agent-teams/teams_test.go, modules/gitea/cmd/agent-token/main.go, modules/gitea/cmd/agent-token/token.go, modules/gitea/cmd/agent-token/token_test.go, modules/gitea/cmd/forge/account_test.go, modules/gitea/cmd/forge/commit.go, modules/gitea/cmd/forge/forge.go, modules/gitea/cmd/forge/forge_test.go, modules/gitea/cmd/forge/main.go, modules/gitea/cmd/forge/patchfile.go, modules/gitea/cmd/forge/patchfile_test.go, modules/gitea/cmd/forge/templates_test.go, modules/gitea/files/agent-teams.json, modules/gitea/files/config.json, modules/gitea/files/origins, modules/gitea/files/ready-authors, modules/gitea/files/server.env, modules/gitea/go.mod, modules/gitea/go.sum, modules/gitea/index.ts, modules/gitea/internal/forgehttp/forgehttp.go, modules/gitea/merge.ts, modules/gitea/module.json, modules/gitea/pulls.ts, modules/gitea/siblings.ts, modules/gitea/test/announcing.test.ts, modules/gitea/test/guard.test.ts, modules/gitea/test/protection-read.test.ts, modules/gitea/test/siblings.test.ts, modules/gitea/test/token.test.ts, modules/gitea/test/tools-account.test.ts, modules/gitea/test/trunk.test.ts, modules/gitea/test/webhook.test.ts, modules/gitea/token.ts, modules/gitea/tools-account.ts, modules/gitea/tools/index.ts, modules/gitea/trunk.ts, modules/gitea/webhook.ts, modules/gitlab/files/config.json, modules/gitlab/module.json, modules/grafana/files/admin.secret, modules/grafana/files/config.json, modules/grafana/files/influxdb-api, modules/grafana/files/mesh-influxdb.yaml, modules/grafana/files/oidc-client.secret, modules/grafana/files/oidc.env, modules/grafana/module.json, modules/grafana/test/manifest.test.ts, modules/home-assistant/files/config.json, modules/home-assistant/files/provisions.env, modules/home-assistant/module.json, modules/icecast/files/config.json, modules/icecast/files/icecast.xml, modules/icecast/module.json, modules/influxdb/files/config.json, modules/influxdb/files/server.env, modules/influxdb/module.json, modules/invoicing/files/api.env, modules/invoicing/module.json, modules/jira/files/config.json, modules/jira/module.json, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages.go, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/machine.go, modules/kernel/cmd/kernel-tools/main.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/kernel/go.mod, modules/kernel/go.sum, modules/kernel/module.json, modules/keycloak/cmd/keycloak-provider/main.go, modules/keycloak/cmd/keycloak-provider/moved.go, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/keycloak/go.mod, modules/keycloak/go.sum, modules/keycloak/module.json, modules/lab/files/lab.env, modules/lab/module.json, modules/lab/test/base.test.ts, modules/lab/test/runs.test.ts, modules/lab/tools/index.ts, modules/lab/tools/runs.ts, modules/letta/files/config.json, modules/letta/files/pgpass, modules/letta/files/server.env, modules/letta/files/start.sh, modules/letta/module.json, modules/mailu/files/admin.env, modules/mailu/files/config.json, modules/mailu/files/database.env, modules/mailu/files/mailu.env, modules/mailu/files/secret.env, modules/mailu/health.ts, modules/mailu/module.json, modules/mailu/test/mail-flows.test.ts, modules/mailu/tools/index.ts, modules/mailu/tsconfig.json, modules/mesh-catalog/files/database.url, modules/mesh-catalog/heard.ts, modules/mesh-catalog/index.ts, modules/mesh-catalog/module.json, modules/mesh-catalog/test/heard.test.ts, modules/mesh-catalog/tsconfig.json, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-cli/module.json, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-issues/module.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/answers.go, modules/mesh-knowledge/cmd/mesh-knowledge/kb.go, modules/mesh-knowledge/cmd/mesh-knowledge/main.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/operator.go, modules/mesh-knowledge/cmd/mesh-knowledge/record.go, modules/mesh-knowledge/cmd/mesh-knowledge/review.go, modules/mesh-knowledge/cmd/mesh-knowledge/rules.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-knowledge/module.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/mailevent.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/main.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail-notifier/go.mod, modules/mesh-mail-notifier/go.sum, modules/mesh-mail-notifier/module.json, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/content_rule.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/mailevent.go, modules/mesh-mail/cmd/mesh-mail/main.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/migrations/0001-the-index-holds-messages-folders-account-states-and-events-to-say.sql, modules/mesh-mail/cmd/mesh-mail/mime.go, modules/mesh-mail/cmd/mesh-mail/objects.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/schema.sql, modules/mesh-mail/cmd/mesh-mail/send.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/smtp.go, modules/mesh-mail/cmd/mesh-mail/store.go, modules/mesh-mail/cmd/mesh-mail/tools.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/mesh-mail/go.mod, modules/mesh-mail/go.sum, modules/mesh-mail/module.json, modules/mesh-vault/README.md, modules/mesh-vault/cmd/mesh-vault/askers.go, modules/mesh-vault/cmd/mesh-vault/core.go, modules/mesh-vault/cmd/mesh-vault/core_test.go, modules/mesh-vault/cmd/mesh-vault/followups_test.go, modules/mesh-vault/cmd/mesh-vault/form_test.go, modules/mesh-vault/cmd/mesh-vault/intake.go, modules/mesh-vault/cmd/mesh-vault/intake_test.go, modules/mesh-vault/cmd/mesh-vault/issued_account_test.go, modules/mesh-vault/cmd/mesh-vault/main.go, modules/mesh-vault/cmd/mesh-vault/move.go, modules/mesh-vault/cmd/mesh-vault/move_test.go, modules/mesh-vault/cmd/mesh-vault/named_pair_test.go, modules/mesh-vault/cmd/mesh-vault/nodekey_test.go, modules/mesh-vault/cmd/mesh-vault/owncalls_test.go, modules/mesh-vault/cmd/mesh-vault/pair.go, modules/mesh-vault/cmd/mesh-vault/pair_test.go, modules/mesh-vault/cmd/mesh-vault/perholder.go, modules/mesh-vault/cmd/mesh-vault/perholder_bus_test.go, modules/mesh-vault/cmd/mesh-vault/perholder_test.go, modules/mesh-vault/cmd/mesh-vault/providers_test.go, modules/mesh-vault/cmd/mesh-vault/pulled_in_test.go, modules/mesh-vault/cmd/mesh-vault/reseal_health.go, modules/mesh-vault/cmd/mesh-vault/reseal_health_test.go, modules/mesh-vault/cmd/mesh-vault/rotate_one_test.go, modules/mesh-vault/cmd/mesh-vault/store.go, modules/mesh-vault/cmd/mesh-vault/tools.go, modules/mesh-vault/cmd/mesh-vault/vault.go, modules/mesh-vault/cmd/mesh-vault/vault_test.go, modules/mesh-vault/go.mod, modules/mesh-vault/go.sum, modules/mesh-vault/module.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/minio/files/root.env, modules/minio/module.json, modules/mongodb/files/server-root.secret, modules/mongodb/module.json, modules/mosquitto/files/bootstrap.env, modules/mosquitto/files/mosquitto.conf, modules/mosquitto/module.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/mounts/module.json, modules/mssql/files/backup.sql, modules/mssql/files/sa.env, modules/mssql/module.json, modules/networkmanager/cmd/uplink-tools/templates_test.go, modules/networkmanager/files/50-mesh.conf, modules/networkmanager/module.json, modules/nextcloud/files/config.json, modules/nextcloud/files/server.env, modules/nextcloud/module.json, modules/nfs-server/cmd/nfs-server/manifest_test.go, modules/nfs-server/cmd/nfs-server/templates_test.go, modules/nfs-server/files/50-mesh.conf, modules/nfs-server/files/shares.conf, modules/nfs-server/module.json, modules/nftables/files/mesh-filter.service, modules/nftables/files/mesh.conf, modules/nftables/module.json, modules/nftables/test/remove.test.ts, modules/nodered/files/config.json, modules/nodered/files/mqtt.env, modules/nodered/files/settings.js, modules/nodered/files/settings.json, modules/nodered/module.json, modules/only-office/files/server.env, modules/only-office/module.json, modules/postgres/cmd/postgres-provider/main.go, modules/postgres/cmd/postgres-provider/moved.go, modules/postgres/cmd/postgres-provider/moved_test.go, modules/postgres/files/consumers.json, modules/postgres/go.mod, modules/postgres/go.sum, modules/postgres/module.json, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/records/module.json, modules/redis/files/redis.conf, modules/redis/module.json, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/restic/module.json, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-adapter/README.md, modules/route-adapter/cmd/route-provider/main.go, modules/route-adapter/cmd/route-provider/provider.go, modules/route-adapter/cmd/route-provider/provider_test.go, modules/route-adapter/files/config.json, modules/route-adapter/go.mod, modules/route-adapter/go.sum, modules/route-adapter/module.json, modules/route-proxy/Dockerfile, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum, modules/route-proxy/module.json, modules/searxng/files/config.json, modules/searxng/files/settings.yml, modules/searxng/module.json, modules/ssh-client/cmd/ssh-client-tools/ssh_test.go, modules/ssh-client/cmd/ssh-client-tools/templates_test.go, modules/ssh-client/files/config, modules/ssh-client/module.json, modules/sshd/files/10-mesh.conf, modules/sshd/module.json, modules/step-ca/files/config.json, modules/step-ca/files/init.env, modules/step-ca/module.json, modules/systemd-networkd/cmd/uplink-tools/templates_test.go, modules/systemd-networkd/files/00-mesh0.network, modules/systemd-networkd/module.json, modules/telegram/cmd/telegram/render.go, modules/telegram/cmd/telegram/render_test.go, modules/umami/files/server.env, modules/umami/module.json, modules/unifi/files/config.json, modules/unifi/module.json, modules/zfs/cmd/zfs-tools/manifest_test.go, modules/zfs/cmd/zfs-tools/templates_test.go, modules/zfs/files/scrub.conf, modules/zfs/module.json
Run by the build seat on shanks as `build-1792138867367407860` (`builds --log build-1792138867367407860`).
```
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 105.342539
type-checking modules/mesh-catalog (TypeScript)
testing modules/mesh-catalog (TypeScript)
✔ the catalogue hears the build seat that builds now, not only the retired one (issue 712) (3.850881ms)
✔ a walk's build is placed, under its module and commit (0.643318ms)
✔ a merge check, a try, a dry run and a failure are passed over without a fault (0.236873ms)
✔ an outcome that names no module or commit is said as the builder's fault (0.194223ms)
✔ a branch built through the build verb is passed over; a commit on the trunk, or from a seat that names none, is placed (ADR 0238) (0.166512ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 92.745763
type-checking modules/minio (TypeScript)
NOT TESTED: modules/minio is TypeScript and has no tests of its own
type-checking modules/model-usage (TypeScript)
testing modules/model-usage (TypeScript)
✔ a store that refuses a row is thrown, so the event is offered again, and it is spooled (19.996702ms)
✔ a redelivered event writes the same reading, never a second, and clears its spooled copy (10.374166ms)
✔ on its last delivery a usage event is spooled and taken (47.41329ms)
✔ the spool replays once the store answers, and an older reading replayed late does not overwrite a newer (49.002341ms)
✔ an event without a body is taken without a TypeError; a row the store could never take is skipped, not retried (0.79893ms)
✔ model_usage_status reports the spool, and is offered even when the store cannot be opened (46.847953ms)
﹣ against postgres: migrations are numbered and repeatable, and the upsert keeps the reading observed latest (0.161932ms) # TEST_DATABASE_URL is not set
ℹ tests 7
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 287.277148
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.878604ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.177352ms)
✔ the options shell itself holds no secret (0.208703ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.462677ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.232823ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (72.276955ms)
✔ a consumer that contributed nothing gets its own subtree (1.218516ms)
✔ a contributed list is granted exactly, duplicates once (0.283654ms)
✔ a list that is not topic filters is refused whole (0.258304ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.345465ms)
✔ the role is brought to exactly the wanted ACLs (0.353864ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 167.47054
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (3.923242ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.582168ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (0.413675ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.254433ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 282.14173
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (1.917105ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 93.497363
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.801573ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.283364ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.547077ms)
✔ what is not the operator's to remove is refused by name (1.645491ms)
✔ which chains jump to a target is read from a listing (0.218693ms)
✔ the filter's commands run as given by root and through sudo without a prompt by anyone else (0.218502ms)
✔ without a uid given, the process's own decides: as given for root, through sudo for anyone else (0.124161ms)
✔ the filter file is the one the manifest's filtering names (0.335144ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.642979ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.627539ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 107.737358
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.445392ms)
✔ fresh: with nothing named, the step makes its own broker node (0.363645ms)
✔ a login the broker does not take is never written (0.186833ms)
✔ a named node that is not there, or a loopback broker, is refused (0.972383ms)
✔ a deploy that raced another is read again once (0.567137ms)
✔ settings name broker nodes under mqtt.brokers (0.158582ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 101.70467
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.341537ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.174642ms)
✔ both are unpacked under the account's home, owned by the account (0.147522ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.372065ms)
✔ the README names the upstream, the version and the licence (0.217193ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 94.485795
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (8.142757ms)
✔ it removes the file it wrote when that contribution goes (2.760416ms)
✔ it never touches a file it did not write (4.257926ms)
✔ the target port follows what the contributor publishes (1.826284ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.370988ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.346608ms)
✔ a contribution it cannot act on is skipped and named (0.237053ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.257614ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.57858ms)
✔ a body limit is written as the predecessor's buffering middleware (1.817124ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.309614ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 119.291969
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
NOT TESTED: modules/showcase is TypeScript and has no tests of its own
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (8.793835ms)
✔ it runs in the directory it is given (3.588647ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (503.451277ms)
✔ output beyond the bound is cut and the answer says so (7.010561ms)
✔ a job left in the background does not hold the answer (204.881267ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.655465ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.172232ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.262003ms)
✔ zsh_config counts the mesh's block in a file (3.871341ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.610551ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.134792ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.232373ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.331764ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.328944ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.504887ms)
✔ it keeps the package and sets the login shell through the user shape (0.142772ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.249394ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.474186ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.409405ms)
✔ execute is served only when the machine's setting says serve (0.839552ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.258943ms)
✔ the setting is read from the file the bundle's word names (0.589957ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 827.043465
```
mesh/merge-gate head 8dc3cb8d271e merged into trunk 1a2c917abfdb — pass, with a note: builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, d…
mesh/repo-check head 8dc3cb8d271e merged into trunk 1a2c917abfdb — fail: [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] T…
Tree 654f7a08 = local 2b1fea3b. Adds issue 820 (the shadowed de-spiegel copy removed, at the operator's word 10:38) to the reviewed afd002a9.
ready at 8dc3cb8d271ef2874f337efd0f68ebae077ca34d
Tree 654f7a08 = local 2b1fea3b. Adds issue 820 (the shadowed de-spiegel copy removed, at the operator's word 10:38) to the reviewed afd002a9.
mesh/repo-check: FAIL — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: the long-running resources without health fell from 62 to 61: write 61 in health-undeclared, so the count cannot rise again
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
Run by the build seat on ace as build-1792139932395988493 (builds --log build-1792139932395988493).
--- judged for the release branch feat/57-config-and-provisioning by its controller at 6a6628a76961, with mesh-host's validator of feat/57-config-and-provisioning at b546d4316c3b; read beside it: mesh-controller feat/57-config-and-provisioning at 6a6628a76961, mesh-controller-main main at d70bb1f38867, mesh-host feat/57-config-and-provisioning at b546d4316c3b, mesh-tools main at 6b3e15042fee
--- the gate: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase
adwaita: ok, 4 tool(s)
asus-zephyrus-g14: ok, 11 tool(s); WARNING: asusd, supergfxd, upower stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
build-agent: ok, keeps workspace (cache), judge-cache (cache), ready: server by exec every 10s
ca-trust: ok; WARNING: trust stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
clipmenu: ok, 3 tool(s), ready: daemon by unit every 30s
docker: ok, 22 tool(s), invokes seat:mesh-controller.images; WARNING: socket, runtime, prune stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
dunst: ok, 6 tool(s)
feh: ok, 2 tool(s)
fonts: ok, 6 tool(s)
gnome-keyring: ok, 4 tool(s)
hello-web: ok; WARNING: server stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
hostname: ok; WARNING: name ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
i3: ok, 10 tool(s)
i3status-rust: ok, 4 tool(s)
lemurs: ok, 2 tool(s); WARNING: service stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
local-model-consumer: ok
localization: ok, 4 tool(s)
logrotate: ok, 7 tool(s); WARNING: timer stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
matrix: ok, keeps db (valuable), ready: element by its image's own check every 30s; WARNING: element-conf ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: homeserver stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
memory-pressure: ok, 6 tool(s); WARNING: oomd stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
mesh-config: ok, invokes seat:mesh-controller.hand-act, seat:mesh-controller.warranted, keeps state values, resolved, predefined, proposals, keeps log history (1024 MiB), reads mesh-controller.assignments, mesh-controller.declared-config, mesh-controller.predefined
mesh-delivery: ok, 1 tool(s), invokes seat:mesh-controller.delivery-plan, seat:mesh-controller.delivery-order, seat:mesh-controller.delivery-check, seat:mesh-controller.deliver, seat:mesh-controller.delivery-stop, seat:mesh-controller.delivery-walks, seat:mesh-controller.forget-checks, gitea.gitea_note_append, gitea.gitea_delivery_view, gitea.gitea_commit_status, gitea.gitea_commit_statuses, gitea.gitea_contains, gitea.gitea_open_pulls, gitea.gitea_merge_pull_request, gitea.gitea_add_comment, gitea.gitea_api, keeps state deliveries, groups
mesh-provisioner: ok, keeps state registry, needs, applied, collect
mesh-provisioner-client: ok, ready: client by unit every 30s
mesh-watcher: ok, 4 tool(s), invokes mesh-watcher.watcher_ping, seat:mesh-controller.seats; WARNING: settings ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
messenger: ok, 7 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, seat:issue-tracker.tracking, keeps state open, sent, asks, identities, walks; WARNING: settings ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
model-usage: ok, keeps state (cache), spool (valuable)
n8n: ok, keeps data (valuable), cache (cache), ready: server by http /healthz/readiness on web expecting 200 every 30s; WARNING: cache-server, browser stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
nats: ok, 9 tool(s), keeps jetstream (valuable), snapshots (rebuildable); WARNING: server stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
node-env: ok
pacman: ok, 15 tool(s); WARNING: mirror-refresh, cache-cleaning stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
picom: ok, 4 tool(s); WARNING: configuration ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
polychromatic: ok, 3 tool(s)
power: ok, 5 tool(s), keeps state draw, ready: draw by unit every 30s; WARNING: logind-power ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: after-boot, before-shutdown stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
powerlevel10k: ok
rofi: ok, 3 tool(s)
screen-lock: ok, 3 tool(s)
showcase: ok; WARNING: server, tools stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
slack: ok, 4 tool(s)
sudo: ok, 4 tool(s)
supabase: ok, keeps db (valuable), dumps (rebuildable), storage (valuable), functions (valuable), db-config (rebuildable), ready: db by its image's own check every 30s; kong by its image's own check every 30s; meta by its image's own check every 30s; studio by its image's own check every 30s; WARNING: settings ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: vector, analytics, auth, rest, realtime, imgproxy, storage-api, edge-functions, pooler stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
time-sync: ok, 3 tool(s); WARNING: daemon stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
triggerhappy: ok, 4 tool(s); WARNING: service stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
xdg: ok, 5 tool(s); WARNING: user-dirs ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
xorg: ok, 9 tool(s)
xterm: ok, 2 tool(s)
zsh: ok, 1 tool(s); WARNING: tools-conf ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
zsh-autosuggestions: ok
zsh-syntax-highlighting: ok
long-running resources without health: 32
files asking for a setting without saying whether it is trusted: 9
49 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 82 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T01:34:49Z 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: WARNING — a merge rebuilds 98 module(s) in 1 tier(s)
judged by controller development build against the facts of 2026-10-16T01:34:49Z
warns:
- a merge rebuilds 98 module(s) in 1 tier(s)
modules the change moves:
- adwaita (changed)
- artifact-store-tools (changed)
- asus-zephyrus-g14 (changed)
- baserow (changed)
- betterbird (changed)
- claude-code (changed)
- claude-licence-manager (changed)
- clipmenu (changed)
- confluence (changed)
- desk-channel (changed)
- docker (changed)
- dunst (changed)
- fail2ban (changed)
- feh (changed)
- gitea (changed)
- gitlab (changed)
- gnome-keyring (changed)
- grafana (changed)
- hello-web (added)
- home-assistant (changed)
- hostname (changed)
- i3 (changed)
- i3status-rust (changed)
- icecast (changed)
- influxdb (changed)
- jira (changed)
- kernel (changed)
- keycloak (changed)
- lab (changed)
- letta (changed)
- local-model-consumer (added)
- mailu (changed)
- matrix (changed)
- mesh-catalog (changed)
- mesh-cli (changed)
- mesh-config (added)
- mesh-issues (changed)
- mesh-knowledge (changed)
- mesh-mail (changed)
- mesh-provisioner (added)
- mesh-provisioner-client (added)
- mesh-vault (changed)
- mesh-watcher (changed)
- messenger (changed)
- minio (changed)
- model-usage (added)
- mongodb (changed)
- mosquitto (changed)
- mounts (changed)
- mssql (changed)
- nextcloud (changed)
- nfs-server (changed)
- nftables (changed)
- node-env (changed)
- nodered (changed)
- picom (changed)
- polychromatic (changed)
- postgres (changed)
- power (changed)
- powerlevel10k (changed)
- records (changed)
- redis (changed)
- restic (changed)
- rofi (changed)
- route-adapter (changed)
- route-proxy (changed)
- screen-lock (changed)
- searxng (changed)
- showcase (added)
- slack (changed)
- step-ca (changed)
- supabase (changed)
- triggerhappy (changed)
- umami (changed)
- unifi (changed)
- xdg (changed)
- xorg (changed)
- xterm (changed)
- zfs (changed)
- zsh (changed)
- zsh-autosuggestions (changed)
- zsh-syntax-highlighting (changed)
machines:
- a machine (f35): composes; the change adds 1 resource(s) and removes 0 (+file:claude-code.secret-gitea-read)
- holds mesh-dns-resolver (idt): composes; the change adds 2 resource(s) and removes 0 (+archive:route-proxy.bundle-provider, +file:claude-code.secret-gitea-read)
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes; the change adds 11 resource(s) and removes 0
- a machine (yvbpsm): composes; the change adds 1 resource(s) and removes 0 (+file:claude-code.secret-gitea-read)
a merge would rebuild 98 module(s) in 1 tier(s)
notes:
- hello-web could not be tried on a machine: these assignments cannot be applied: - 2 providers of "route", wanted by hello-web — say which with `pin f35 route <node> <module>`: idt/route-proxy, ygcyr/route-proxy
- local-model-consumer could not be tried on a machine: these assignments cannot be applied: - nothing provides "model-access", wanted by local-model-consumer
- mesh-config could not be tried on a machine: mesh-config on f35 has no bus credential: nothing was issued for f35.mesh-config, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue mesh-config --node f35`, then push again
- mesh-provisioner could not be tried on a machine: mesh-provisioner on f35 has no bus credential: nothing was issued for f35.mesh-provisioner, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue mesh-provisioner --node f35`, then push again
- mesh-provisioner-client could not be tried on a machine: mesh-provisioner-client on f35 has no bus credential: nothing was issued for provisioner.f35, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue mesh-provisioner-client --node f35`, then push again
- showcase could not be tried on a machine: showcase on f35 has no bus credential: nothing was issued for f35.showcase, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue showcase --node f35`, then push again
- .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cpu_test.go, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum and modules/telegram/cmd/telegram/render_test.go read by no module's build, and rebuild nothing (issue 280)
--- THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.002s
words: 12 retired words and 70 daemons' lines, none in the 52624 strings of 794 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.010s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.012s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/predefined 0.230s
predefined.json: 2 key(s), none removed that a module names
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
the long-running resources without health fell from 62 to 61: write 61 in health-undeclared, so the count cannot rise again
**Merge check** at `8dc3cb8d`
Judged: head `8dc3cb8d271e` merged into trunk `1a2c917abfdb`; read beside it: mesh-controller `6a6628a76961`, mesh-controller-main `d70bb1f38867`, mesh-host `b546d4316c3b`, mesh-tools `6b3e15042fee`
- `mesh/merge-gate`: **PASS, WITH A NOTE** — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
- `mesh/repo-check`: **FAIL** — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: the long-running resources without health fell from 62 to 61: write 61 in health-undeclared, so the count cannot rise again
**Delivery plan** — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
- tier 0: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- ace: receives build-agent, ca-trust, docker, hostname, localization, logrotate, matrix, n8n, node-env, pacman, power, powerlevel10k, sudo, supabase, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- g14: receives adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, memory-pressure, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- novox: receives build-agent, ca-trust, docker, hostname, localization, logrotate, mesh-delivery, messenger, node-env, pacman, power, powerlevel10k, sudo, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting; waits for a person: nats
- shanks: receives adwaita, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- matrix keeps data (ADR 0233): what it holds is backed up before it moves
- n8n keeps data (ADR 0233): what it holds is backed up before it moves
- merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until `mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}` runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
- nats provides mesh-bus: its consumers are sent again after it
- nats keeps data (ADR 0233): what it holds is backed up before it moves
- supabase keeps data (ADR 0233): what it holds is backed up before it moves
- xorg provides x11-display: its consumers are sent again after it
- 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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
- read by no module's build: .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/artifact-store-tools/module.json, modules/baserow/files/config.json, modules/baserow/files/server.env, modules/baserow/module.json, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/configuration.go, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/betterbird/module.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge.go, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/main.go, modules/claude-code/cmd/claude-code/node.go, modules/claude-code/cmd/claude-code/render.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-code/module.json, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/claude-licence-manager/module.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/confluence/files/config.json, modules/confluence/module.json, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/desk-channel/module.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cgroups.go, modules/disk-load/cmd/disk-load/cpu.go, modules/disk-load/cmd/disk-load/cpu_test.go, modules/disk-load/cmd/disk-load/tools.go, modules/disk-load/module.json, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/dnsmasq/module.json, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/fail2ban/module.json, modules/gitea/README.md, modules/gitea/client.ts, modules/gitea/cmd/agent-teams/main.go, modules/gitea/cmd/agent-teams/teams.go, modules/gitea/cmd/agent-teams/teams_test.go, modules/gitea/cmd/agent-token/main.go, modules/gitea/cmd/agent-token/token.go, modules/gitea/cmd/agent-token/token_test.go, modules/gitea/cmd/forge/account_test.go, modules/gitea/cmd/forge/commit.go, modules/gitea/cmd/forge/forge.go, modules/gitea/cmd/forge/forge_test.go, modules/gitea/cmd/forge/main.go, modules/gitea/cmd/forge/patchfile.go, modules/gitea/cmd/forge/patchfile_test.go, modules/gitea/cmd/forge/templates_test.go, modules/gitea/files/agent-teams.json, modules/gitea/files/config.json, modules/gitea/files/origins, modules/gitea/files/ready-authors, modules/gitea/files/server.env, modules/gitea/go.mod, modules/gitea/go.sum, modules/gitea/index.ts, modules/gitea/internal/forgehttp/forgehttp.go, modules/gitea/merge.ts, modules/gitea/module.json, modules/gitea/pulls.ts, modules/gitea/siblings.ts, modules/gitea/test/announcing.test.ts, modules/gitea/test/guard.test.ts, modules/gitea/test/protection-read.test.ts, modules/gitea/test/siblings.test.ts, modules/gitea/test/token.test.ts, modules/gitea/test/tools-account.test.ts, modules/gitea/test/trunk.test.ts, modules/gitea/test/webhook.test.ts, modules/gitea/token.ts, modules/gitea/tools-account.ts, modules/gitea/tools/index.ts, modules/gitea/trunk.ts, modules/gitea/webhook.ts, modules/gitlab/files/config.json, modules/gitlab/module.json, modules/grafana/files/admin.secret, modules/grafana/files/config.json, modules/grafana/files/influxdb-api, modules/grafana/files/mesh-influxdb.yaml, modules/grafana/files/oidc-client.secret, modules/grafana/files/oidc.env, modules/grafana/module.json, modules/grafana/test/manifest.test.ts, modules/home-assistant/files/config.json, modules/home-assistant/files/provisions.env, modules/home-assistant/module.json, modules/icecast/files/config.json, modules/icecast/files/icecast.xml, modules/icecast/module.json, modules/influxdb/files/config.json, modules/influxdb/files/server.env, modules/influxdb/module.json, modules/invoicing/files/api.env, modules/invoicing/module.json, modules/jira/files/config.json, modules/jira/module.json, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages.go, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/machine.go, modules/kernel/cmd/kernel-tools/main.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/kernel/go.mod, modules/kernel/go.sum, modules/kernel/module.json, modules/keycloak/cmd/keycloak-provider/main.go, modules/keycloak/cmd/keycloak-provider/moved.go, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/keycloak/go.mod, modules/keycloak/go.sum, modules/keycloak/module.json, modules/lab/files/lab.env, modules/lab/module.json, modules/lab/test/base.test.ts, modules/lab/test/runs.test.ts, modules/lab/tools/index.ts, modules/lab/tools/runs.ts, modules/letta/files/config.json, modules/letta/files/pgpass, modules/letta/files/server.env, modules/letta/files/start.sh, modules/letta/module.json, modules/mailu/files/admin.env, modules/mailu/files/config.json, modules/mailu/files/database.env, modules/mailu/files/mailu.env, modules/mailu/files/secret.env, modules/mailu/health.ts, modules/mailu/module.json, modules/mailu/test/mail-flows.test.ts, modules/mailu/tools/index.ts, modules/mailu/tsconfig.json, modules/mesh-catalog/files/database.url, modules/mesh-catalog/heard.ts, modules/mesh-catalog/index.ts, modules/mesh-catalog/module.json, modules/mesh-catalog/test/heard.test.ts, modules/mesh-catalog/tsconfig.json, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-cli/module.json, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-issues/module.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/answers.go, modules/mesh-knowledge/cmd/mesh-knowledge/kb.go, modules/mesh-knowledge/cmd/mesh-knowledge/main.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/operator.go, modules/mesh-knowledge/cmd/mesh-knowledge/record.go, modules/mesh-knowledge/cmd/mesh-knowledge/review.go, modules/mesh-knowledge/cmd/mesh-knowledge/rules.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-knowledge/module.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/mailevent.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/main.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail-notifier/go.mod, modules/mesh-mail-notifier/go.sum, modules/mesh-mail-notifier/module.json, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/content_rule.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/mailevent.go, modules/mesh-mail/cmd/mesh-mail/main.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/migrations/0001-the-index-holds-messages-folders-account-states-and-events-to-say.sql, modules/mesh-mail/cmd/mesh-mail/mime.go, modules/mesh-mail/cmd/mesh-mail/objects.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/schema.sql, modules/mesh-mail/cmd/mesh-mail/send.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/smtp.go, modules/mesh-mail/cmd/mesh-mail/store.go, modules/mesh-mail/cmd/mesh-mail/tools.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/mesh-mail/go.mod, modules/mesh-mail/go.sum, modules/mesh-mail/module.json, modules/mesh-vault/README.md, modules/mesh-vault/cmd/mesh-vault/askers.go, modules/mesh-vault/cmd/mesh-vault/core.go, modules/mesh-vault/cmd/mesh-vault/core_test.go, modules/mesh-vault/cmd/mesh-vault/followups_test.go, modules/mesh-vault/cmd/mesh-vault/form_test.go, modules/mesh-vault/cmd/mesh-vault/intake.go, modules/mesh-vault/cmd/mesh-vault/intake_test.go, modules/mesh-vault/cmd/mesh-vault/issued_account_test.go, modules/mesh-vault/cmd/mesh-vault/main.go, modules/mesh-vault/cmd/mesh-vault/move.go, modules/mesh-vault/cmd/mesh-vault/move_test.go, modules/mesh-vault/cmd/mesh-vault/named_pair_test.go, modules/mesh-vault/cmd/mesh-vault/nodekey_test.go, modules/mesh-vault/cmd/mesh-vault/owncalls_test.go, modules/mesh-vault/cmd/mesh-vault/pair.go, modules/mesh-vault/cmd/mesh-vault/pair_test.go, modules/mesh-vault/cmd/mesh-vault/perholder.go, modules/mesh-vault/cmd/mesh-vault/perholder_bus_test.go, modules/mesh-vault/cmd/mesh-vault/perholder_test.go, modules/mesh-vault/cmd/mesh-vault/providers_test.go, modules/mesh-vault/cmd/mesh-vault/pulled_in_test.go, modules/mesh-vault/cmd/mesh-vault/reseal_health.go, modules/mesh-vault/cmd/mesh-vault/reseal_health_test.go, modules/mesh-vault/cmd/mesh-vault/rotate_one_test.go, modules/mesh-vault/cmd/mesh-vault/store.go, modules/mesh-vault/cmd/mesh-vault/tools.go, modules/mesh-vault/cmd/mesh-vault/vault.go, modules/mesh-vault/cmd/mesh-vault/vault_test.go, modules/mesh-vault/go.mod, modules/mesh-vault/go.sum, modules/mesh-vault/module.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/minio/files/root.env, modules/minio/module.json, modules/mongodb/files/server-root.secret, modules/mongodb/module.json, modules/mosquitto/files/bootstrap.env, modules/mosquitto/files/mosquitto.conf, modules/mosquitto/module.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/mounts/module.json, modules/mssql/files/backup.sql, modules/mssql/files/sa.env, modules/mssql/module.json, modules/networkmanager/cmd/uplink-tools/templates_test.go, modules/networkmanager/files/50-mesh.conf, modules/networkmanager/module.json, modules/nextcloud/files/config.json, modules/nextcloud/files/server.env, modules/nextcloud/module.json, modules/nfs-server/cmd/nfs-server/manifest_test.go, modules/nfs-server/cmd/nfs-server/templates_test.go, modules/nfs-server/files/50-mesh.conf, modules/nfs-server/files/shares.conf, modules/nfs-server/module.json, modules/nftables/files/mesh-filter.service, modules/nftables/files/mesh.conf, modules/nftables/module.json, modules/nftables/test/remove.test.ts, modules/nodered/files/config.json, modules/nodered/files/mqtt.env, modules/nodered/files/settings.js, modules/nodered/files/settings.json, modules/nodered/module.json, modules/only-office/files/server.env, modules/only-office/module.json, modules/postgres/cmd/postgres-provider/main.go, modules/postgres/cmd/postgres-provider/moved.go, modules/postgres/cmd/postgres-provider/moved_test.go, modules/postgres/files/consumers.json, modules/postgres/go.mod, modules/postgres/go.sum, modules/postgres/module.json, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/records/module.json, modules/redis/files/redis.conf, modules/redis/module.json, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/restic/module.json, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-adapter/README.md, modules/route-adapter/cmd/route-provider/main.go, modules/route-adapter/cmd/route-provider/provider.go, modules/route-adapter/cmd/route-provider/provider_test.go, modules/route-adapter/files/config.json, modules/route-adapter/go.mod, modules/route-adapter/go.sum, modules/route-adapter/module.json, modules/route-proxy/Dockerfile, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum, modules/route-proxy/module.json, modules/searxng/files/config.json, modules/searxng/files/settings.yml, modules/searxng/module.json, modules/ssh-client/cmd/ssh-client-tools/ssh_test.go, modules/ssh-client/cmd/ssh-client-tools/templates_test.go, modules/ssh-client/files/config, modules/ssh-client/module.json, modules/sshd/files/10-mesh.conf, modules/sshd/module.json, modules/step-ca/files/config.json, modules/step-ca/files/init.env, modules/step-ca/module.json, modules/systemd-networkd/cmd/uplink-tools/templates_test.go, modules/systemd-networkd/files/00-mesh0.network, modules/systemd-networkd/module.json, modules/telegram/cmd/telegram/render.go, modules/telegram/cmd/telegram/render_test.go, modules/umami/files/server.env, modules/umami/module.json, modules/unifi/files/config.json, modules/unifi/module.json, modules/zfs/cmd/zfs-tools/manifest_test.go, modules/zfs/cmd/zfs-tools/templates_test.go, modules/zfs/files/scrub.conf, modules/zfs/module.json
Run by the build seat on ace as `build-1792139932395988493` (`builds --log build-1792139932395988493`).
```
--- judged for the release branch feat/57-config-and-provisioning by its controller at 6a6628a76961, with mesh-host's validator of feat/57-config-and-provisioning at b546d4316c3b; read beside it: mesh-controller feat/57-config-and-provisioning at 6a6628a76961, mesh-controller-main main at d70bb1f38867, mesh-host feat/57-config-and-provisioning at b546d4316c3b, mesh-tools main at 6b3e15042fee
--- the gate: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase
adwaita: ok, 4 tool(s)
asus-zephyrus-g14: ok, 11 tool(s); WARNING: asusd, supergfxd, upower stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
build-agent: ok, keeps workspace (cache), judge-cache (cache), ready: server by exec every 10s
ca-trust: ok; WARNING: trust stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
clipmenu: ok, 3 tool(s), ready: daemon by unit every 30s
docker: ok, 22 tool(s), invokes seat:mesh-controller.images; WARNING: socket, runtime, prune stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
dunst: ok, 6 tool(s)
feh: ok, 2 tool(s)
fonts: ok, 6 tool(s)
gnome-keyring: ok, 4 tool(s)
hello-web: ok; WARNING: server stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
hostname: ok; WARNING: name ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
i3: ok, 10 tool(s)
i3status-rust: ok, 4 tool(s)
lemurs: ok, 2 tool(s); WARNING: service stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
local-model-consumer: ok
localization: ok, 4 tool(s)
logrotate: ok, 7 tool(s); WARNING: timer stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
matrix: ok, keeps db (valuable), ready: element by its image's own check every 30s; WARNING: element-conf ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: homeserver stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
memory-pressure: ok, 6 tool(s); WARNING: oomd stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
mesh-config: ok, invokes seat:mesh-controller.hand-act, seat:mesh-controller.warranted, keeps state values, resolved, predefined, proposals, keeps log history (1024 MiB), reads mesh-controller.assignments, mesh-controller.declared-config, mesh-controller.predefined
mesh-delivery: ok, 1 tool(s), invokes seat:mesh-controller.delivery-plan, seat:mesh-controller.delivery-order, seat:mesh-controller.delivery-check, seat:mesh-controller.deliver, seat:mesh-controller.delivery-stop, seat:mesh-controller.delivery-walks, seat:mesh-controller.forget-checks, gitea.gitea_note_append, gitea.gitea_delivery_view, gitea.gitea_commit_status, gitea.gitea_commit_statuses, gitea.gitea_contains, gitea.gitea_open_pulls, gitea.gitea_merge_pull_request, gitea.gitea_add_comment, gitea.gitea_api, keeps state deliveries, groups
mesh-provisioner: ok, keeps state registry, needs, applied, collect
mesh-provisioner-client: ok, ready: client by unit every 30s
mesh-watcher: ok, 4 tool(s), invokes mesh-watcher.watcher_ping, seat:mesh-controller.seats; WARNING: settings ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
messenger: ok, 7 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, seat:issue-tracker.tracking, keeps state open, sent, asks, identities, walks; WARNING: settings ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
model-usage: ok, keeps state (cache), spool (valuable)
n8n: ok, keeps data (valuable), cache (cache), ready: server by http /healthz/readiness on web expecting 200 every 30s; WARNING: cache-server, browser stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
nats: ok, 9 tool(s), keeps jetstream (valuable), snapshots (rebuildable); WARNING: server stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
node-env: ok
pacman: ok, 15 tool(s); WARNING: mirror-refresh, cache-cleaning stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
picom: ok, 4 tool(s); WARNING: configuration ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
polychromatic: ok, 3 tool(s)
power: ok, 5 tool(s), keeps state draw, ready: draw by unit every 30s; WARNING: logind-power ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: after-boot, before-shutdown stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
powerlevel10k: ok
rofi: ok, 3 tool(s)
screen-lock: ok, 3 tool(s)
showcase: ok; WARNING: server, tools stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
slack: ok, 4 tool(s)
sudo: ok, 4 tool(s)
supabase: ok, keeps db (valuable), dumps (rebuildable), storage (valuable), functions (valuable), db-config (rebuildable), ready: db by its image's own check every 30s; kong by its image's own check every 30s; meta by its image's own check every 30s; studio by its image's own check every 30s; WARNING: settings ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: vector, analytics, auth, rest, realtime, imgproxy, storage-api, edge-functions, pooler stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
time-sync: ok, 3 tool(s); WARNING: daemon stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
triggerhappy: ok, 4 tool(s); WARNING: service stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
xdg: ok, 5 tool(s); WARNING: user-dirs ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
xorg: ok, 9 tool(s)
xterm: ok, 2 tool(s)
zsh: ok, 1 tool(s); WARNING: tools-conf ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339)
zsh-autosuggestions: ok
zsh-syntax-highlighting: ok
long-running resources without health: 32
files asking for a setting without saying whether it is trusted: 9
49 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 82 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T01:34:49Z 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: WARNING — a merge rebuilds 98 module(s) in 1 tier(s)
judged by controller development build against the facts of 2026-10-16T01:34:49Z
warns:
- a merge rebuilds 98 module(s) in 1 tier(s)
modules the change moves:
- adwaita (changed)
- artifact-store-tools (changed)
- asus-zephyrus-g14 (changed)
- baserow (changed)
- betterbird (changed)
- claude-code (changed)
- claude-licence-manager (changed)
- clipmenu (changed)
- confluence (changed)
- desk-channel (changed)
- docker (changed)
- dunst (changed)
- fail2ban (changed)
- feh (changed)
- gitea (changed)
- gitlab (changed)
- gnome-keyring (changed)
- grafana (changed)
- hello-web (added)
- home-assistant (changed)
- hostname (changed)
- i3 (changed)
- i3status-rust (changed)
- icecast (changed)
- influxdb (changed)
- jira (changed)
- kernel (changed)
- keycloak (changed)
- lab (changed)
- letta (changed)
- local-model-consumer (added)
- mailu (changed)
- matrix (changed)
- mesh-catalog (changed)
- mesh-cli (changed)
- mesh-config (added)
- mesh-issues (changed)
- mesh-knowledge (changed)
- mesh-mail (changed)
- mesh-provisioner (added)
- mesh-provisioner-client (added)
- mesh-vault (changed)
- mesh-watcher (changed)
- messenger (changed)
- minio (changed)
- model-usage (added)
- mongodb (changed)
- mosquitto (changed)
- mounts (changed)
- mssql (changed)
- nextcloud (changed)
- nfs-server (changed)
- nftables (changed)
- node-env (changed)
- nodered (changed)
- picom (changed)
- polychromatic (changed)
- postgres (changed)
- power (changed)
- powerlevel10k (changed)
- records (changed)
- redis (changed)
- restic (changed)
- rofi (changed)
- route-adapter (changed)
- route-proxy (changed)
- screen-lock (changed)
- searxng (changed)
- showcase (added)
- slack (changed)
- step-ca (changed)
- supabase (changed)
- triggerhappy (changed)
- umami (changed)
- unifi (changed)
- xdg (changed)
- xorg (changed)
- xterm (changed)
- zfs (changed)
- zsh (changed)
- zsh-autosuggestions (changed)
- zsh-syntax-highlighting (changed)
machines:
- a machine (f35): composes; the change adds 1 resource(s) and removes 0 (+file:claude-code.secret-gitea-read)
- holds mesh-dns-resolver (idt): composes; the change adds 2 resource(s) and removes 0 (+archive:route-proxy.bundle-provider, +file:claude-code.secret-gitea-read)
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes; the change adds 11 resource(s) and removes 0
- a machine (yvbpsm): composes; the change adds 1 resource(s) and removes 0 (+file:claude-code.secret-gitea-read)
a merge would rebuild 98 module(s) in 1 tier(s)
notes:
- hello-web could not be tried on a machine: these assignments cannot be applied: - 2 providers of "route", wanted by hello-web — say which with `pin f35 route <node> <module>`: idt/route-proxy, ygcyr/route-proxy
- local-model-consumer could not be tried on a machine: these assignments cannot be applied: - nothing provides "model-access", wanted by local-model-consumer
- mesh-config could not be tried on a machine: mesh-config on f35 has no bus credential: nothing was issued for f35.mesh-config, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue mesh-config --node f35`, then push again
- mesh-provisioner could not be tried on a machine: mesh-provisioner on f35 has no bus credential: nothing was issued for f35.mesh-provisioner, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue mesh-provisioner --node f35`, then push again
- mesh-provisioner-client could not be tried on a machine: mesh-provisioner-client on f35 has no bus credential: nothing was issued for provisioner.f35, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue mesh-provisioner-client --node f35`, then push again
- showcase could not be tried on a machine: showcase on f35 has no bus credential: nothing was issued for f35.showcase, and a push would seal a placeholder its process cannot read (novox/hq issue 203). `module issue showcase --node f35`, then push again
- .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cpu_test.go, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum and modules/telegram/cmd/telegram/render_test.go read by no module's build, and rebuild nothing (issue 280)
--- THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.002s
words: 12 retired words and 70 daemons' lines, none in the 52624 strings of 794 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.010s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.012s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/predefined 0.230s
predefined.json: 2 key(s), none removed that a module names
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
the long-running resources without health fell from 62 to 61: write 61 in health-undeclared, so the count cannot rise again
```
mesh-delivery: not merged. This pull request is marked ready at 8dc3cb8d27, and its check failed: [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (head 8dc3cb8d27 merged into trunk 1a2c917abf). A new head, marked ready once reviewed, or a recheck that passes, merges it.
mesh-delivery: **not merged.** This pull request is marked ready at 8dc3cb8d271ef2874f337efd0f68ebae077ca34d, and its check failed: [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (head 8dc3cb8d271e merged into trunk 1a2c917abfdb). A new head, marked ready once reviewed, or a recheck that passes, merges it.
mesh/merge-gate head 881c956590c7 merged into trunk 1a2c917abfdb — pass, with a note: builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, d…
mesh/repo-check head 881c956590c7 merged into trunk 1a2c917abfdb — pass: [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] T…
mesh/delivery stopped: its walk plan-1792141267854645683 was stopped by a person (mesh-controller): mesh-catalog #328 merged into the release branch feat…
Tree ebd28aeb = local b7a112f1: health-undeclared 62 -> 61, the ratchet's own step after issue 820's removal.
ready at 881c956590c7c390bd878b90e2837f298b5a5373
Tree ebd28aeb = local b7a112f1: health-undeclared 62 -> 61, the ratchet's own step after issue 820's removal.
mesh/repo-check: PASS — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
matrix keeps data (ADR 0233): what it holds is backed up before it moves
n8n keeps data (ADR 0233): what it holds is backed up before it moves
merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"} runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
nats provides mesh-bus: its consumers are sent again after it
nats keeps data (ADR 0233): what it holds is backed up before it moves
supabase keeps data (ADR 0233): what it holds is backed up before it moves
xorg provides x11-display: its consumers are sent again after it
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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
Run by the build seat on shanks as build-1792140637367123149 (builds --log build-1792140637367123149).
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 113.383059
type-checking modules/mesh-catalog (TypeScript)
testing modules/mesh-catalog (TypeScript)
✔ the catalogue hears the build seat that builds now, not only the retired one (issue 712) (3.794938ms)
✔ a walk's build is placed, under its module and commit (0.640103ms)
✔ a merge check, a try, a dry run and a failure are passed over without a fault (0.239131ms)
✔ an outcome that names no module or commit is said as the builder's fault (0.191151ms)
✔ a branch built through the build verb is passed over; a commit on the trunk, or from a seat that names none, is placed (ADR 0238) (0.161971ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 90.266672
type-checking modules/minio (TypeScript)
NOT TESTED: modules/minio is TypeScript and has no tests of its own
type-checking modules/model-usage (TypeScript)
testing modules/model-usage (TypeScript)
✔ a store that refuses a row is thrown, so the event is offered again, and it is spooled (74.533662ms)
✔ a redelivered event writes the same reading, never a second, and clears its spooled copy (10.65276ms)
✔ on its last delivery a usage event is spooled and taken (47.152353ms)
✔ the spool replays once the store answers, and an older reading replayed late does not overwrite a newer (48.318288ms)
✔ an event without a body is taken without a TypeError; a row the store could never take is skipped, not retried (0.819724ms)
✔ model_usage_status reports the spool, and is offered even when the store cannot be opened (47.242613ms)
﹣ against postgres: migrations are numbered and repeatable, and the upsert keeps the reading observed latest (0.220371ms) # TEST_DATABASE_URL is not set
ℹ tests 7
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 339.803972
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.220796ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.188101ms)
✔ the options shell itself holds no secret (0.743813ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.485463ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.229991ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (35.681609ms)
✔ a consumer that contributed nothing gets its own subtree (1.233206ms)
✔ a contributed list is granted exactly, duplicates once (0.269721ms)
✔ a list that is not topic filters is refused whole (0.273281ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.397832ms)
✔ the role is brought to exactly the wanted ACLs (0.381552ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 129.890686
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (2.10036ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.562462ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (2.330782ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.254941ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 274.913961
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (31.781482ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 122.352576
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.854589ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.286452ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.493752ms)
✔ what is not the operator's to remove is refused by name (1.550508ms)
✔ which chains jump to a target is read from a listing (0.201621ms)
✔ the filter's commands run as given by root and through sudo without a prompt by anyone else (0.213161ms)
✔ without a uid given, the process's own decides: as given for root, through sudo for anyone else (0.126731ms)
✔ the filter file is the one the manifest's filtering names (0.353162ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.643493ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.604153ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 108.08158
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.440582ms)
✔ fresh: with nothing named, the step makes its own broker node (0.355342ms)
✔ a login the broker does not take is never written (0.186651ms)
✔ a named node that is not there, or a loopback broker, is refused (0.943164ms)
✔ a deploy that raced another is read again once (0.549013ms)
✔ settings name broker nodes under mqtt.brokers (0.156081ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 102.129713
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.351427ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.174391ms)
✔ both are unpacked under the account's home, owned by the account (0.160221ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.376302ms)
✔ the README names the upstream, the version and the licence (0.203371ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 95.35011
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (7.247045ms)
✔ it removes the file it wrote when that contribution goes (2.637383ms)
✔ it never touches a file it did not write (4.0266ms)
✔ the target port follows what the contributor publishes (1.921609ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.509737ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.580747ms)
✔ a contribution it cannot act on is skipped and named (0.279442ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.354202ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.691989ms)
✔ a body limit is written as the predecessor's buffering middleware (1.904599ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.327511ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 118.723927
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
NOT TESTED: modules/showcase is TypeScript and has no tests of its own
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (8.894253ms)
✔ it runs in the directory it is given (3.822609ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (502.656563ms)
✔ output beyond the bound is cut and the answer says so (7.176865ms)
✔ a job left in the background does not hold the answer (205.103889ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.722993ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.162291ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.250422ms)
✔ zsh_config counts the mesh's block in a file (23.869218ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.489047ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.128011ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.216021ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.323242ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.312112ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.500273ms)
✔ it keeps the package and sets the login shell through the user shape (0.137801ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.247041ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.466943ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.413822ms)
✔ execute is served only when the machine's setting says serve (0.863644ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.282501ms)
✔ the setting is read from the file the bundle's word names (0.602783ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 847.913813
**Merge check** at `881c9565`
Judged: head `881c956590c7` merged into trunk `1a2c917abfdb`; read beside it: mesh-controller `6a6628a76961`, mesh-controller-main `18c58b4903ad`, mesh-host `b546d4316c3b`, mesh-tools `6b3e15042fee`
- `mesh/merge-gate`: **PASS, WITH A NOTE** — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)
- `mesh/repo-check`: **PASS** — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
**Delivery plan** — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
- tier 0: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- ace: receives build-agent, ca-trust, docker, hostname, localization, logrotate, matrix, n8n, node-env, pacman, power, powerlevel10k, sudo, supabase, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- g14: receives adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, memory-pressure, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- novox: receives build-agent, ca-trust, docker, hostname, localization, logrotate, mesh-delivery, messenger, node-env, pacman, power, powerlevel10k, sudo, time-sync, zsh, zsh-autosuggestions, zsh-syntax-highlighting; waits for a person: nats
- shanks: receives adwaita, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, time-sync, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- matrix keeps data (ADR 0233): what it holds is backed up before it moves
- n8n keeps data (ADR 0233): what it holds is backed up before it moves
- merging this needs a person's bus upgrade: nats is never sent by an ordinary send, and until `mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}` runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)
- nats provides mesh-bus: its consumers are sent again after it
- nats keeps data (ADR 0233): what it holds is backed up before it moves
- supabase keeps data (ADR 0233): what it holds is backed up before it moves
- xorg provides x11-display: its consumers are sent again after it
- 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 adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, n8n, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting is judged on its first machine
- read by no module's build: .gitignore, checks/config/go.mod, checks/config/main.go, checks/config/main_test.go, checks/config/unmoved, checks/mailstore/go.mod, checks/mailstore/main.go, checks/mailstore/main_test.go, checks/secrets/main.go, checks/secrets/main_test.go, checks/templates/go.mod, checks/templates/inline, checks/templates/main.go, checks/templates/main_test.go, health-undeclared, merge-check-typescript.sh, merge-check.sh, modules/artifact-store-tools/cmd/artifact-store-tools/templates_test.go, modules/artifact-store-tools/files/store-names, modules/artifact-store-tools/module.json, modules/baserow/files/config.json, modules/baserow/files/server.env, modules/baserow/module.json, modules/betterbird/README.md, modules/betterbird/cmd/betterbird-tools/configuration.go, modules/betterbird/cmd/betterbird-tools/manifest_test.go, modules/betterbird/cmd/betterbird-tools/templates_test.go, modules/betterbird/files/accounts.json, modules/betterbird/files/betterbird, modules/betterbird/files/configuration.json, modules/betterbird/files/eu.betterbird.Betterbird.desktop, modules/betterbird/files/prefs.json, modules/betterbird/files/tags.json, modules/betterbird/module.json, modules/build-agent/files/build-agent.env, modules/build-agent/manifest_test.go, modules/build-agent/templates_test.go, modules/claude-code/README.md, modules/claude-code/cmd/claude-code/forge.go, modules/claude-code/cmd/claude-code/forge_test.go, modules/claude-code/cmd/claude-code/main.go, modules/claude-code/cmd/claude-code/node.go, modules/claude-code/cmd/claude-code/render.go, modules/claude-code/cmd/claude-code/shell_test.go, modules/claude-code/cmd/claude-code/templates_test.go, modules/claude-code/files/agent-account, modules/claude-code/files/claude-agent, modules/claude-code/files/facts.json, modules/claude-code/files/settings.json, modules/claude-code/files/zsh-normal, modules/claude-code/module.json, modules/claude-licence-manager/cmd/claude-licence-manager/templates_test.go, modules/claude-licence-manager/files/database.url, modules/claude-licence-manager/files/settings.json, modules/claude-licence-manager/module.json, modules/clipmenu/README.md, modules/clipmenu/cmd/clipmenu-tools/clipboard_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_helpers_test.go, modules/clipmenu/cmd/clipmenu-tools/manifest_test.go, modules/clipmenu/files/bin/clipmenud-session, modules/clipmenu/files/bin/xsel, modules/clipmenu/files/env-cm-histlength, modules/clipmenu/files/env-cm-max-clips, modules/clipmenu/files/env-cm-selections, modules/clipmenu/files/systemd/clipmenud-mesh.conf, modules/confluence/files/config.json, modules/confluence/module.json, modules/desk-channel/cmd/desk-channel/templates_test.go, modules/desk-channel/files/settings.json, modules/desk-channel/module.json, modules/disk-load/README.md, modules/disk-load/cmd/disk-load/cgroups.go, modules/disk-load/cmd/disk-load/cpu.go, modules/disk-load/cmd/disk-load/cpu_test.go, modules/disk-load/cmd/disk-load/tools.go, modules/disk-load/module.json, modules/dnsmasq/cmd/dnsmasq-tools/templates_test.go, modules/dnsmasq/files/dnsmasq.conf, modules/dnsmasq/files/mesh.conf, modules/dnsmasq/module.json, modules/docker/cmd/docker-tools/logrotation_test.go, modules/docker/cmd/docker-tools/templates_test.go, modules/docker/files/daemon.json, modules/docker/files/docker-prune.service, modules/docker/files/docker-prune.timer, modules/docker/files/log-rotation.conf, modules/fail2ban/cmd/fail2ban-tools/own_test.go, modules/fail2ban/cmd/fail2ban-tools/templates_test.go, modules/fail2ban/files/fail2ban, modules/fail2ban/files/iptables-allports-dualchain.conf, modules/fail2ban/files/jail.local, modules/fail2ban/files/mesh-own-addresses.json, modules/fail2ban/files/own-addresses, modules/fail2ban/files/recidive.conf, modules/fail2ban/files/sshd.conf, modules/fail2ban/module.json, modules/gitea/README.md, modules/gitea/client.ts, modules/gitea/cmd/agent-teams/main.go, modules/gitea/cmd/agent-teams/teams.go, modules/gitea/cmd/agent-teams/teams_test.go, modules/gitea/cmd/agent-token/main.go, modules/gitea/cmd/agent-token/token.go, modules/gitea/cmd/agent-token/token_test.go, modules/gitea/cmd/forge/account_test.go, modules/gitea/cmd/forge/commit.go, modules/gitea/cmd/forge/forge.go, modules/gitea/cmd/forge/forge_test.go, modules/gitea/cmd/forge/main.go, modules/gitea/cmd/forge/patchfile.go, modules/gitea/cmd/forge/patchfile_test.go, modules/gitea/cmd/forge/templates_test.go, modules/gitea/files/agent-teams.json, modules/gitea/files/config.json, modules/gitea/files/origins, modules/gitea/files/ready-authors, modules/gitea/files/server.env, modules/gitea/go.mod, modules/gitea/go.sum, modules/gitea/index.ts, modules/gitea/internal/forgehttp/forgehttp.go, modules/gitea/merge.ts, modules/gitea/module.json, modules/gitea/pulls.ts, modules/gitea/siblings.ts, modules/gitea/test/announcing.test.ts, modules/gitea/test/guard.test.ts, modules/gitea/test/protection-read.test.ts, modules/gitea/test/siblings.test.ts, modules/gitea/test/token.test.ts, modules/gitea/test/tools-account.test.ts, modules/gitea/test/trunk.test.ts, modules/gitea/test/webhook.test.ts, modules/gitea/token.ts, modules/gitea/tools-account.ts, modules/gitea/tools/index.ts, modules/gitea/trunk.ts, modules/gitea/webhook.ts, modules/gitlab/files/config.json, modules/gitlab/module.json, modules/grafana/files/admin.secret, modules/grafana/files/config.json, modules/grafana/files/influxdb-api, modules/grafana/files/mesh-influxdb.yaml, modules/grafana/files/oidc-client.secret, modules/grafana/files/oidc.env, modules/grafana/module.json, modules/grafana/test/manifest.test.ts, modules/home-assistant/files/config.json, modules/home-assistant/files/provisions.env, modules/home-assistant/module.json, modules/icecast/files/config.json, modules/icecast/files/icecast.xml, modules/icecast/module.json, modules/influxdb/files/config.json, modules/influxdb/files/server.env, modules/influxdb/module.json, modules/invoicing/files/api.env, modules/invoicing/module.json, modules/jira/files/config.json, modules/jira/module.json, modules/kernel/README.md, modules/kernel/cmd/kernel-tools/hugepages.go, modules/kernel/cmd/kernel-tools/hugepages_test.go, modules/kernel/cmd/kernel-tools/machine.go, modules/kernel/cmd/kernel-tools/main.go, modules/kernel/cmd/kernel-tools/manifest_test.go, modules/kernel/cmd/kernel-tools/shape_test.go, modules/kernel/files/huge-pages.sh, modules/kernel/files/mesh-kernel-huge-pages.service, modules/kernel/go.mod, modules/kernel/go.sum, modules/kernel/module.json, modules/keycloak/cmd/keycloak-provider/main.go, modules/keycloak/cmd/keycloak-provider/moved.go, modules/keycloak/cmd/keycloak-provider/moved_test.go, modules/keycloak/cmd/keycloak-provider/templates_test.go, modules/keycloak/files/admin.env, modules/keycloak/files/config.json, modules/keycloak/files/consumers.json, modules/keycloak/files/database.env, modules/keycloak/files/hostname.env, modules/keycloak/go.mod, modules/keycloak/go.sum, modules/keycloak/module.json, modules/lab/files/lab.env, modules/lab/module.json, modules/lab/test/base.test.ts, modules/lab/test/runs.test.ts, modules/lab/tools/index.ts, modules/lab/tools/runs.ts, modules/letta/files/config.json, modules/letta/files/pgpass, modules/letta/files/server.env, modules/letta/files/start.sh, modules/letta/module.json, modules/mailu/files/admin.env, modules/mailu/files/config.json, modules/mailu/files/database.env, modules/mailu/files/mailu.env, modules/mailu/files/secret.env, modules/mailu/health.ts, modules/mailu/module.json, modules/mailu/test/mail-flows.test.ts, modules/mailu/tools/index.ts, modules/mailu/tsconfig.json, modules/mesh-catalog/files/database.url, modules/mesh-catalog/heard.ts, modules/mesh-catalog/index.ts, modules/mesh-catalog/module.json, modules/mesh-catalog/test/heard.test.ts, modules/mesh-catalog/tsconfig.json, modules/mesh-cli/cmd/mesh-cli/manifest_test.go, modules/mesh-cli/files/zsh-normal, modules/mesh-cli/module.json, modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go, modules/mesh-delivery/cmd/mesh-delivery/holder_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue747_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue753_test.go, modules/mesh-delivery/cmd/mesh-delivery/issue783_test.go, modules/mesh-delivery/cmd/mesh-delivery/manifest_test.go, modules/mesh-delivery/cmd/mesh-delivery/ready_test.go, modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go, modules/mesh-issues/cmd/mesh-issues/manifest_test.go, modules/mesh-issues/cmd/mesh-issues/templates_test.go, modules/mesh-issues/files/settings.json, modules/mesh-issues/module.json, modules/mesh-knowledge/README.md, modules/mesh-knowledge/cmd/mesh-knowledge/active_effort_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/answers.go, modules/mesh-knowledge/cmd/mesh-knowledge/kb.go, modules/mesh-knowledge/cmd/mesh-knowledge/main.go, modules/mesh-knowledge/cmd/mesh-knowledge/manifest_test.go, modules/mesh-knowledge/cmd/mesh-knowledge/operator.go, modules/mesh-knowledge/cmd/mesh-knowledge/record.go, modules/mesh-knowledge/cmd/mesh-knowledge/review.go, modules/mesh-knowledge/cmd/mesh-knowledge/rules.go, modules/mesh-knowledge/cmd/mesh-knowledge/templates_test.go, modules/mesh-knowledge/files/database.url, modules/mesh-knowledge/files/settings.json, modules/mesh-knowledge/module.json, modules/mesh-mail-notifier/README.md, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/copies_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/health_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/mailevent.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/main.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/manifest_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/notifier_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/run_test.go, modules/mesh-mail-notifier/cmd/mesh-mail-notifier/send_test.go, modules/mesh-mail-notifier/go.mod, modules/mesh-mail-notifier/go.sum, modules/mesh-mail-notifier/module.json, modules/mesh-mail/README.md, modules/mesh-mail/cmd/mesh-mail/ask_test.go, modules/mesh-mail/cmd/mesh-mail/config.go, modules/mesh-mail/cmd/mesh-mail/config_test.go, modules/mesh-mail/cmd/mesh-mail/content_rule.go, modules/mesh-mail/cmd/mesh-mail/copies_test.go, modules/mesh-mail/cmd/mesh-mail/health.go, modules/mesh-mail/cmd/mesh-mail/health_test.go, modules/mesh-mail/cmd/mesh-mail/imap.go, modules/mesh-mail/cmd/mesh-mail/imap_test.go, modules/mesh-mail/cmd/mesh-mail/kit_test.go, modules/mesh-mail/cmd/mesh-mail/mailevent.go, modules/mesh-mail/cmd/mesh-mail/main.go, modules/mesh-mail/cmd/mesh-mail/manifest_test.go, modules/mesh-mail/cmd/mesh-mail/migrations/0001-the-index-holds-messages-folders-account-states-and-events-to-say.sql, modules/mesh-mail/cmd/mesh-mail/mime.go, modules/mesh-mail/cmd/mesh-mail/objects.go, modules/mesh-mail/cmd/mesh-mail/objects_test.go, modules/mesh-mail/cmd/mesh-mail/pgstore.go, modules/mesh-mail/cmd/mesh-mail/pgstore_test.go, modules/mesh-mail/cmd/mesh-mail/schema.sql, modules/mesh-mail/cmd/mesh-mail/send.go, modules/mesh-mail/cmd/mesh-mail/send_test.go, modules/mesh-mail/cmd/mesh-mail/smtp.go, modules/mesh-mail/cmd/mesh-mail/store.go, modules/mesh-mail/cmd/mesh-mail/tools.go, modules/mesh-mail/cmd/mesh-mail/tools_test.go, modules/mesh-mail/files/accounts.json, modules/mesh-mail/files/database-url, modules/mesh-mail/files/grants.json, modules/mesh-mail/files/store.json, modules/mesh-mail/go.mod, modules/mesh-mail/go.sum, modules/mesh-mail/module.json, modules/mesh-vault/README.md, modules/mesh-vault/cmd/mesh-vault/askers.go, modules/mesh-vault/cmd/mesh-vault/core.go, modules/mesh-vault/cmd/mesh-vault/core_test.go, modules/mesh-vault/cmd/mesh-vault/followups_test.go, modules/mesh-vault/cmd/mesh-vault/form_test.go, modules/mesh-vault/cmd/mesh-vault/intake.go, modules/mesh-vault/cmd/mesh-vault/intake_test.go, modules/mesh-vault/cmd/mesh-vault/issued_account_test.go, modules/mesh-vault/cmd/mesh-vault/main.go, modules/mesh-vault/cmd/mesh-vault/move.go, modules/mesh-vault/cmd/mesh-vault/move_test.go, modules/mesh-vault/cmd/mesh-vault/named_pair_test.go, modules/mesh-vault/cmd/mesh-vault/nodekey_test.go, modules/mesh-vault/cmd/mesh-vault/owncalls_test.go, modules/mesh-vault/cmd/mesh-vault/pair.go, modules/mesh-vault/cmd/mesh-vault/pair_test.go, modules/mesh-vault/cmd/mesh-vault/perholder.go, modules/mesh-vault/cmd/mesh-vault/perholder_bus_test.go, modules/mesh-vault/cmd/mesh-vault/perholder_test.go, modules/mesh-vault/cmd/mesh-vault/providers_test.go, modules/mesh-vault/cmd/mesh-vault/pulled_in_test.go, modules/mesh-vault/cmd/mesh-vault/reseal_health.go, modules/mesh-vault/cmd/mesh-vault/reseal_health_test.go, modules/mesh-vault/cmd/mesh-vault/rotate_one_test.go, modules/mesh-vault/cmd/mesh-vault/store.go, modules/mesh-vault/cmd/mesh-vault/tools.go, modules/mesh-vault/cmd/mesh-vault/vault.go, modules/mesh-vault/cmd/mesh-vault/vault_test.go, modules/mesh-vault/go.mod, modules/mesh-vault/go.sum, modules/mesh-vault/module.json, modules/messenger/README.md, modules/messenger/cmd/messenger/answers_test.go, modules/messenger/cmd/messenger/feedback_test.go, modules/messenger/cmd/messenger/glance_test.go, modules/messenger/cmd/messenger/holder_test.go, modules/messenger/cmd/messenger/manifest_test.go, modules/messenger/cmd/messenger/replaced_test.go, modules/messenger/cmd/messenger/templates_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/messenger/files/settings.json, modules/minio/files/root.env, modules/minio/module.json, modules/mongodb/files/server-root.secret, modules/mongodb/module.json, modules/mosquitto/files/bootstrap.env, modules/mosquitto/files/mosquitto.conf, modules/mosquitto/module.json, modules/mounts/cmd/mounts/manifest_test.go, modules/mounts/cmd/mounts/templates_test.go, modules/mounts/files/mounts.conf, modules/mounts/module.json, modules/mssql/files/backup.sql, modules/mssql/files/sa.env, modules/mssql/module.json, modules/networkmanager/cmd/uplink-tools/templates_test.go, modules/networkmanager/files/50-mesh.conf, modules/networkmanager/module.json, modules/nextcloud/files/config.json, modules/nextcloud/files/server.env, modules/nextcloud/module.json, modules/nfs-server/cmd/nfs-server/manifest_test.go, modules/nfs-server/cmd/nfs-server/templates_test.go, modules/nfs-server/files/50-mesh.conf, modules/nfs-server/files/shares.conf, modules/nfs-server/module.json, modules/nftables/files/mesh-filter.service, modules/nftables/files/mesh.conf, modules/nftables/module.json, modules/nftables/test/remove.test.ts, modules/nodered/files/config.json, modules/nodered/files/mqtt.env, modules/nodered/files/settings.js, modules/nodered/files/settings.json, modules/nodered/module.json, modules/only-office/files/server.env, modules/only-office/module.json, modules/postgres/cmd/postgres-provider/main.go, modules/postgres/cmd/postgres-provider/moved.go, modules/postgres/cmd/postgres-provider/moved_test.go, modules/postgres/files/consumers.json, modules/postgres/go.mod, modules/postgres/go.sum, modules/postgres/module.json, modules/records/cmd/records/templates_test.go, modules/records/files/config.json, modules/records/files/origin, modules/records/module.json, modules/redis/files/redis.conf, modules/redis/module.json, modules/restic/cmd/restic-backups/retention_test.go, modules/restic/cmd/restic-backups/templates_test.go, modules/restic/files/backups.conf, modules/restic/files/data.conf, modules/restic/files/retention.conf, modules/restic/module.json, modules/rofi/cmd/rofi-tools/manifest_helpers_test.go, modules/rofi/cmd/rofi-tools/manifest_test.go, modules/rofi/cmd/rofi-tools/secret_test.go, modules/route-adapter/README.md, modules/route-adapter/cmd/route-provider/main.go, modules/route-adapter/cmd/route-provider/provider.go, modules/route-adapter/cmd/route-provider/provider_test.go, modules/route-adapter/files/config.json, modules/route-adapter/go.mod, modules/route-adapter/go.sum, modules/route-adapter/module.json, modules/route-proxy/Dockerfile, modules/route-proxy/README.md, modules/route-proxy/cmd/route-provider/main.go, modules/route-proxy/cmd/route-provider/provider.go, modules/route-proxy/cmd/route-provider/provider_test.go, modules/route-proxy/files/acme.env, modules/route-proxy/files/internal-acme.env, modules/route-proxy/go.mod, modules/route-proxy/go.sum, modules/route-proxy/module.json, modules/searxng/files/config.json, modules/searxng/files/settings.yml, modules/searxng/module.json, modules/ssh-client/cmd/ssh-client-tools/ssh_test.go, modules/ssh-client/cmd/ssh-client-tools/templates_test.go, modules/ssh-client/files/config, modules/ssh-client/module.json, modules/sshd/files/10-mesh.conf, modules/sshd/module.json, modules/step-ca/files/config.json, modules/step-ca/files/init.env, modules/step-ca/module.json, modules/systemd-networkd/cmd/uplink-tools/templates_test.go, modules/systemd-networkd/files/00-mesh0.network, modules/systemd-networkd/module.json, modules/telegram/cmd/telegram/render.go, modules/telegram/cmd/telegram/render_test.go, modules/umami/files/server.env, modules/umami/module.json, modules/unifi/files/config.json, modules/unifi/module.json, modules/zfs/cmd/zfs-tools/manifest_test.go, modules/zfs/cmd/zfs-tools/templates_test.go, modules/zfs/files/scrub.conf, modules/zfs/module.json
Run by the build seat on shanks as `build-1792140637367123149` (`builds --log build-1792140637367123149`).
```
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 113.383059
type-checking modules/mesh-catalog (TypeScript)
testing modules/mesh-catalog (TypeScript)
✔ the catalogue hears the build seat that builds now, not only the retired one (issue 712) (3.794938ms)
✔ a walk's build is placed, under its module and commit (0.640103ms)
✔ a merge check, a try, a dry run and a failure are passed over without a fault (0.239131ms)
✔ an outcome that names no module or commit is said as the builder's fault (0.191151ms)
✔ a branch built through the build verb is passed over; a commit on the trunk, or from a seat that names none, is placed (ADR 0238) (0.161971ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 90.266672
type-checking modules/minio (TypeScript)
NOT TESTED: modules/minio is TypeScript and has no tests of its own
type-checking modules/model-usage (TypeScript)
testing modules/model-usage (TypeScript)
✔ a store that refuses a row is thrown, so the event is offered again, and it is spooled (74.533662ms)
✔ a redelivered event writes the same reading, never a second, and clears its spooled copy (10.65276ms)
✔ on its last delivery a usage event is spooled and taken (47.152353ms)
✔ the spool replays once the store answers, and an older reading replayed late does not overwrite a newer (48.318288ms)
✔ an event without a body is taken without a TypeError; a row the store could never take is skipped, not retried (0.819724ms)
✔ model_usage_status reports the spool, and is offered even when the store cannot be opened (47.242613ms)
﹣ against postgres: migrations are numbered and repeatable, and the upsert keeps the reading observed latest (0.220371ms) # TEST_DATABASE_URL is not set
ℹ tests 7
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 339.803972
type-checking modules/mongodb (TypeScript)
NOT TESTED: modules/mongodb is TypeScript and has no tests of its own
type-checking modules/mosquitto (TypeScript)
testing modules/mosquitto (TypeScript)
✔ named, the broker's container runs mosquitto_ctrl under the options shell, stdin open (1.220796ms)
✔ unnamed, this machine's mosquitto_ctrl runs under the same shell (0.188101ms)
✔ the options shell itself holds no secret (0.743813ms)
✔ an argv carrying the admin password or a password being set is refused, by name (0.485463ms)
✔ the admin tool refuses a dynsec command that would put a password on a command line (0.229991ms)
✔ the admin's name and password reach mosquitto_ctrl in a 0600 options file, and a password being set at its prompt (35.681609ms)
✔ a consumer that contributed nothing gets its own subtree (1.233206ms)
✔ a contributed list is granted exactly, duplicates once (0.269721ms)
✔ a list that is not topic filters is refused whole (0.273281ms)
✔ getRole's ACL lines are read, the warning and headings are not (0.397832ms)
✔ the role is brought to exactly the wanted ACLs (0.381552ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 129.890686
type-checking modules/mssql (TypeScript)
testing modules/mssql (TypeScript)
✔ a caller's statement runs as the reader, as it was written, on the database it names (2.10036ms)
✔ the reader is made as the administrator, kept out of sysadmin, and granted only reading (0.562462ms)
✔ without the reader's password the statement is refused, and nothing runs as the administrator (2.330782ms)
✔ a consumer's password is checked as a bound parameter, never in the text (0.254941ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 274.913961
type-checking modules/nextcloud (TypeScript)
testing modules/nextcloud (TypeScript)
✔ the vault's password is used, a setting of it is ignored and said once, without its value (31.781482ms)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 122.352576
type-checking modules/nftables (TypeScript)
testing modules/nftables (TypeScript)
✔ a predecessor's chain in the legacy filter loses its jumps, is flushed and deleted (1.854589ms)
✔ the runtime's user chain is emptied back to its one return, never deleted (0.286452ms)
✔ a chain of the machine's own nftables table goes with the rules that reach it (0.493752ms)
✔ what is not the operator's to remove is refused by name (1.550508ms)
✔ which chains jump to a target is read from a listing (0.201621ms)
✔ the filter's commands run as given by root and through sudo without a prompt by anyone else (0.213161ms)
✔ without a uid given, the process's own decides: as given for root, through sudo for anyone else (0.126731ms)
✔ the filter file is the one the manifest's filtering names (0.353162ms)
✔ a tool is installed when an executable of its name is on the path, and not otherwise (0.643493ms)
✔ a found firewall that is absent guards nothing; one that will not answer stops the removal (0.604153ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 108.08158
type-checking modules/nodered (TypeScript)
testing modules/nodered (TypeScript)
✔ ace: the named broker node is moved to the bound broker and login; the other broker is not touched (2.440582ms)
✔ fresh: with nothing named, the step makes its own broker node (0.355342ms)
✔ a login the broker does not take is never written (0.186651ms)
✔ a named node that is not there, or a loopback broker, is refused (0.943164ms)
✔ a deploy that raced another is read again once (0.549013ms)
✔ settings name broker nodes under mqtt.brokers (0.156081ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 102.129713
modules/powerlevel10k has no TypeScript sources of its own to type-check: its tests read its files
testing modules/powerlevel10k (TypeScript)
✔ the theme archive is built from the vendored release and carries its licence (1.351427ms)
✔ the configuration archive holds the prompt's configuration and nothing else (0.174391ms)
✔ both are unpacked under the account's home, owned by the account (0.160221ms)
✔ the zsh code in the normal slot sources the theme, then the configuration, and turns on no instant prompt (0.376302ms)
✔ the README names the upstream, the version and the licence (0.203371ms)
ℹ tests 5
ℹ suites 0
ℹ pass 5
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 95.35011
type-checking modules/redis (TypeScript)
NOT TESTED: modules/redis is TypeScript and has no tests of its own
type-checking modules/route-adapter (TypeScript)
testing modules/route-adapter (TypeScript)
✔ it writes one route file per contribution, in the predecessor's own shape (7.247045ms)
✔ it removes the file it wrote when that contribution goes (2.637383ms)
✔ it never touches a file it did not write (4.0266ms)
✔ the target port follows what the contributor publishes (1.921609ms)
✔ a contributor on another node is reached at the address the mesh gave it (1.509737ms)
✔ a node's settings are laid over the module's defaults, and nothing else changes (1.580747ms)
✔ a contribution it cannot act on is skipped and named (0.279442ms)
✔ a contribution the file shape cannot say is skipped and says which part (0.354202ms)
✔ it refuses when the predecessor's directory is not there, and says why (1.691989ms)
✔ a body limit is written as the predecessor's buffering middleware (1.904599ms)
✔ a body limit that is not a whole number of bytes is skipped and named (0.327511ms)
ℹ tests 11
ℹ suites 0
ℹ pass 11
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 118.723927
type-checking modules/searxng (TypeScript)
NOT TESTED: modules/searxng is TypeScript and has no tests of its own
type-checking modules/showcase (TypeScript)
NOT TESTED: modules/showcase is TypeScript and has no tests of its own
type-checking modules/umami (TypeScript)
NOT TESTED: modules/umami is TypeScript and has no tests of its own
type-checking modules/unifi (TypeScript)
NOT TESTED: modules/unifi is TypeScript and has no tests of its own
type-checking modules/zsh (TypeScript)
testing modules/zsh (TypeScript)
✔ the exit status and both streams are answered (8.894253ms)
✔ it runs in the directory it is given (3.822609ms)
✔ on timeout the whole process group is ended, a backgrounded grandchild included (502.656563ms)
✔ output beyond the bound is cut and the answer says so (7.176865ms)
✔ a job left in the background does not hold the answer (205.103889ms)
﹣ zsh runs the command as a login shell, when zsh is here (2.722993ms) # zsh is not installed here
✔ the timeout is held below the runtime's call limit (0.162291ms)
✔ the command's environment drops the mesh's words and gains the account's session words when they exist (0.250422ms)
✔ zsh_config counts the mesh's block in a file (23.869218ms)
✔ no file carries its text inline: each names its template, and the build packs files/ into one archive (1.489047ms)
✔ it claims node-login-shell serving execute, and declares no seat (0.128011ms)
✔ the .zshrc block is at the start and holds the three slots in order, after the defaults' header (0.216021ms)
✔ the .zshrc block carries the shared defaults and none of the operator's own lines (0.323242ms)
✔ the .zshenv block sources exactly the environment file node-environment fixes (0.312112ms)
✔ its environment is a contribution: the editor, the configuration home, and three PATH entries at the start (0.500273ms)
✔ it keeps the package and sets the login shell through the user shape (0.137801ms)
✔ the tools bundle registers the seat's verb under node-login-shell (0.247041ms)
✔ execute is a per-machine config value, served unless a machine withholds it (ADR 0268, ADR 0348 §4) (0.466943ms)
✔ the tools bundle registers execute only where the machine's setting serves it (0.413822ms)
✔ execute is served only when the machine's setting says serve (0.863644ms)
✔ anything but serve withholds it: a wrong value, no line, no file (0.282501ms)
✔ the setting is read from the file the bundle's word names (0.602783ms)
ℹ tests 22
ℹ suites 0
ℹ pass 21
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 847.913813
```
mesh-tools
merged commit 5391325544 into feat/57-config-and-provisioning2026-10-16 09:00:50 +00:00
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.
Feature 57's mesh-catalog part. Head
ac46c36ahas treefb529905, equal to the local reviewed head 3e932251 (feature head 5dac1ef9, r3 APPROVE; sync merge with main173c5d5e9a68d710 and issue 874's test fixes 3e932251: merge-only review APPROVE, round 1, Opus).Two commits instead of one: the patch route dropped the blank last line of ten files (issue 875);
ac46c36arestores them whole.Local checks: merge-check.sh green over 103 modules (gate = controller 04dad56a, tree = release controller cf897e89's); merge-check-typescript.sh fails only showcase, as main does.
Member of delivery group 57-config-and-provisioning (mesh-sdk #28, mesh-host #114, mesh-controller #346, hq #373 merged). Issues: 874, 875.
Delivery
novox/mesh-catalog@881c956590c7— stopped since 2026-10-16T09:02:04ZDelivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Transitions
53913255), not main; this walk would send release-branch catalogue (98 modules) to ace, g14, novox and shanks, which ADR 0358 §7 forbids. Stopped before any send by 57-lead@novox, as plan-1792114347281764422 was at 03:33; feature 57's catalogue reaches the machines through its release pull request into main (bundle B).The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
ac46c36aJudged: head
ac46c36a3dafmerged into trunk1a2c917abfdb; read beside it: mesh-controllercf897e89fe31, mesh-controller-maind70bb1f38867, mesh-hostb546d4316c3b, mesh-tools6b3e15042feemesh/merge-gate: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] 29 problem(s) the change brings; the first: modules/adwaita: adwaita is not registrable — this manifest cannot be used: - adwaita is marked moved and names no template: a moved module's files are filled from template files of its own,"template": "files/<name>"(novox/hq ADR 0349 §2) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)mesh/repo-check: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; merge-check.sh (go) passed; its merge-check-typescript.sh failed: TypeScript modules that failed: nftables showcaseDelivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Run by the build seat on shanks as
build-1792136398815349320(builds --log build-1792136398815349320).Merge check at
5b1515c6Judged: head
5b1515c6f3b1merged into trunk1a2c917abfdb; read beside it: mesh-controllercf897e89fe31, mesh-controller-maind70bb1f38867, mesh-hostb546d4316c3b, mesh-tools6b3e15042feemesh/merge-gate: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] 29 problem(s) the change brings; the first: modules/adwaita: adwaita is not registrable — this manifest cannot be used: - adwaita is marked moved and names no template: a moved module's files are filled from template files of its own,"template": "files/<name>"(novox/hq ADR 0349 §2) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)mesh/repo-check: FAIL — [release feat/57-config-and-provisioning, judged by its controller cf897e89fe31] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; merge-check.sh (go) passed; its merge-check-typescript.sh failed: TypeScript modules that failed: showcaseDelivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Run by the build seat on shanks as
build-1792138012729908255(builds --log build-1792138012729908255).Merge check at
5b1515c6mesh/merge-gate: ERROR — the check could not run: killed by hand (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)mesh/repo-check: ERROR — the check could not run: killed by handDelivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Run by the build seat on ace as
build-1792138574673488214(builds --log build-1792138574673488214).mesh-delivery: the ready mark at is cleared: the head is now
afd002a900, pushed after it. Mark the new head ready once it is reviewed.ready at
afd002a900Tree
f6956c8b= local 25022bd6. Reviews (Opus): feature r3 APPROVE (5dac1ef9); sync with main + issue 874 APPROVE; issue 877 APPROVE; issue 894 APPROVE. Issue 875's dropped blank lines restored inac46c36a. The operator's word for feature 57: 10:10.Merge check at
afd002a9Judged: head
afd002a9004amerged into trunk1a2c917abfdb; read beside it: mesh-controller6a6628a76961, mesh-controller-maind70bb1f38867, mesh-hostb546d4316c3b, mesh-tools6b3e15042feemesh/merge-gate: FAIL — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] 1 problem(s) the change brings; the first: modules/de-spiegel defines de-spiegel, which the mesh builds from novox/de-spiegel: two definitions of one module name (issue 239) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)mesh/repo-check: PASS — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Run by the build seat on shanks as
build-1792138867367407860(builds --log build-1792138867367407860).ready at
8dc3cb8d27Tree
654f7a08= local 2b1fea3b. Adds issue 820 (the shadowed de-spiegel copy removed, at the operator's word 10:38) to the reviewedafd002a9.Merge check at
8dc3cb8dJudged: head
8dc3cb8d271emerged into trunk1a2c917abfdb; read beside it: mesh-controller6a6628a76961, mesh-controller-maind70bb1f38867, mesh-hostb546d4316c3b, mesh-tools6b3e15042feemesh/merge-gate: PASS, WITH A NOTE — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)mesh/repo-check: FAIL — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: the long-running resources without health fell from 62 to 61: write 61 in health-undeclared, so the count cannot rise againDelivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Run by the build seat on ace as
build-1792139932395988493(builds --log build-1792139932395988493).mesh-delivery: not merged. This pull request is marked ready at
8dc3cb8d27, and its check failed: [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (head8dc3cb8d27merged into trunk1a2c917abf). A new head, marked ready once reviewed, or a recheck that passes, merges it.ready at
881c956590Tree
ebd28aeb= local b7a112f1: health-undeclared 62 -> 61, the ratchet's own step after issue 820's removal.Merge check at
881c9565Judged: head
881c956590c7merged into trunk1a2c917abfdb; read beside it: mesh-controller6a6628a76961, mesh-controller-main18c58b4903ad, mesh-hostb546d4316c3b, mesh-tools6b3e15042feemesh/merge-gate: PASS, WITH A NOTE — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] a merge rebuilds 98 module(s) in 1 tier(s) (modules: adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new:modules/de-spiegel, new:modules/hello-web, new:modules/local-model-consumer, new:modules/mesh-config, new:modules/mesh-provisioner, new:modules/mesh-provisioner-client, new:modules/model-usage, new:modules/showcase)mesh/repo-check: PASS — [release feat/57-config-and-provisioning, judged by its controller 6a6628a76961] THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh, merge-check-typescript.sh): feat/57-config-and-provisioning's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds adwaita, asus-zephyrus-g14, build-agent, ca-trust, clipmenu, docker, dunst, feh, fonts, gnome-keyring, hostname, i3, i3status-rust, lemurs, localization, logrotate, matrix, memory-pressure, mesh-delivery, mesh-watcher, messenger, n8n, nats, node-env, pacman, picom, polychromatic, power, powerlevel10k, rofi, screen-lock, slack, sudo, supabase, time-sync, triggerhappy, xdg, xorg, xterm, zsh, zsh-autosuggestions, zsh-syntax-highlighting, new: modules/de-spiegel, modules/hello-web, modules/local-model-consumer, modules/mesh-config, modules/mesh-provisioner, modules/mesh-provisioner-client, modules/model-usage, modules/showcase → ace, g14, novox, shanks; merging this needs a person's bus upgrade; 1 wait(s) for a person
mesh_call mesh-controller.bus {"upgrade": "true", "why": "…", "reversible" or "irreversible": "true"}runs, nothing else is sent to novox either — unless the new build turns out the same as the one running there (issue 280)Run by the build seat on shanks as
build-1792140637367123149(builds --log build-1792140637367123149).