messenger: the router of asks and warrants, with no channel's client (hq ADR 0259) #133
Closed
mesh-admin
wants to merge 0 commits from
feat/asks-answered-on-any-channel into main
pull from: feat/asks-answered-on-any-channel
merge into: :main
:main
:feat/47-G-join11
:fix/1966-gate-record-catalog
:pre/registry-milestone
:fix/1748-retake-and-resolver
:pin/sdk1
:fix/check-every-failure
:feat/l5-l7
:feat/l5-l7-a3
:feat/judge-once-pkgs
:fix/turn-handed-on-approve
:fix/checker-full-failure
:revert/774-l3
:fix/check-names-every-conflict
:fix/check-speed
:probe/1126-seed-10
:probe/1126-seed-9
:probe/1126-seed-8
:probe/1126-seed-7
:probe/1126-seed-6
:probe/1126-seed-5
:feat/1126-seed-4
:revert/1126-seed-2
:feat/774-vault-mints
:fix/1901-node-test-cause
:fix/1945-adopt-hashes
:fix/1945-vault-hashing
:feat/try-speed
:fix/1921-every-failure
:feat/r4g-finish-composer
:feat/r4g-finish-1935
:fix/1901
:fix/forge-requires-no-status
:feat/mail-list
:feat/modules-name-no-node
:fix/r4e-r2
:fix/r4e-k2
:fix/r4e-k1
:feat/r4e-leaf
:feat/r4e-buildmods
:feat/r4e-gate
:fix/1106-sdk-member-merges
:feat/r4c5-checker
:fix/xterm-config-defaults
:fix/1165-fill-retry
:feat/r4d-automx-go
:feat/r4d-n8n
:fix/1275-group-merges-whole-or-not
:fix/1129-no-drift-pass
:fix/270-nats-emits-bus-faults
:fix/claude-code-tips-preference
:fix/628-modules-declare-every-package-they-need
:fix/613-home-network-shares
:feat/bus-websocket-listener
:fix/340-tool-servers-only-from-the-terminal
:feat/the-store-collects-nightly-again
:feat/dbus-module
No Reviewers
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
agent-ace
agent-g14
agent-novox
agent-shanks
jschoubben
mesh-tools
miel.truyen
nox-agent
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: novox/mesh-catalog#133
Reference in New Issue
Block a user
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.
Step 3 of hq ADR 0259 (hq #211; §7 and §8 as revised and accepted on 2026-10-08). The messenger is the router: it holds every ask, judges each answer and issues the warrant its asker acts on. It performs nothing and keeps no channel's client.
As before:
operator-channel,channel,intake);Changed after the security and correctness reviews of 2026-10-08:
messenger, in a runtime of its own, on its own bus account (runs-as, mesh-controller #154). Its state, settings and credential belong to that account.messenger_unlinkasks it). Its approval unlinks the account, told to it first, by name, then on every channel.unlink.<kind>orallow-link.<kind>in the router's state directory. A file not owned by root is refused and said.private, and is marked secret so no channel keeps it.agent-rootcondition).acknowledgeneedsexact-renderas well aschoice.stdio.ErrChanged).sudo_escalation: can these accounts become root here without a person (passwordless sudo, or the docker or disk group)? The controller's root probe asks it.go/v0.1.8is tagged (B4).Not done, and why:
invokes seat:mesh-controller.conditionsstays. The router must read the open conditions, which is its rule that history is never news, and that verb is how. Dropping it needs the controller's conditions to be readable as state.operator-channel.askstool still lists every asker's asks. A tool call cannot say who is calling. It shows outcomes and labels, never an account.Tests
exact-renderis required;sudo/cmd/sudo-tools/escalation_test.go.merge-check.shpasses locally with #154's controller asMESH_GATE. The forge's check refuses the new manifest fields until #154 is live (hq ADR 0246).Rollout: together with #134.
desktop-machinesmoves todesk-channel's settings and must be set in the same step. Do not merge without review.Delivery
novox/mesh-catalog@8754de747d9c— stopped since 2026-10-09T15:59:08ZDelivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
a0e2c8edmesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "by-caller" (modules: messenger)mesh/repo-check: FAIL — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: merge-check.sh: cd: line 38: can't cd to checks/paths: No such file or directoryDelivery plan — builds messenger → novox; no bus step
Run by the build seat on g14 as
build-1791471457468245914(builds --log build-1791471457468245914).a0e2c8ede3to0591458de7Merge check at
0591458dmesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "by-caller" (modules: messenger)mesh/repo-check: FAIL — its merge-check.sh failed: long-running resources without health: 70Delivery plan — builds messenger → novox; no bus step
Run by the build seat on shanks as
build-1791471610660822429(builds --log build-1791471610660822429).0591458de7to2989c03f90Merge check at
2989c03fmesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "runs-as" (read without runs-as, seats[0].by-caller, seats[0].records, seats….kinded, seats[2].proofs) (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: long-running resources without health: 70Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on g14 as
build-1791477567757862247(builds --log build-1791477567757862247).Merge check at
cefb86bbmesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "runs-as" (read without runs-as, seats[0].by-caller, seats[0].records, seats….kinded, seats[2].proofs) (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: long-running resources without health: 70Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on novox as
build-1791477598974251562(builds --log build-1791477598974251562).cefb86bb59to7b0b02fa32Merge check at
7b0b02famesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "runs-as" (read without runs-as, seats[0].by-caller, seats[0].records, seats….kinded, seats[2].proofs) (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: files asking for a setting without saying whether it is trusted: 20Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on g14 as
build-1791536985938751366(builds --log build-1791536985938751366).Merge check at
ad8f13eamesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "runs-as" (read without runs-as, seats[0].by-caller, seats[0].records, seats….kinded, seats[2].proofs) (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: files asking for a setting without saying whether it is trusted: 20Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791540707101565531(builds --log build-1791540707101565531).ad8f13eaeetoe19671a88bMerge check at
e19671a8mesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "runs-as" (read without runs-as, seats[0].by-caller, seats[0].records, seats….kinded, seats[2].proofs) (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: files asking for a setting without saying whether it is trusted: 23Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791548756617547142(builds --log build-1791548756617547142).Confirmation-review round (2026-10-09), rebased on main
9e4267b. New in messenger:allow-linklifts any bar.TestAnUnlinkFromTheDeskInTheFirstHourBarsNothing,TestBreakGlassLiftsABarOnRelinkingfailed before.TestTheRootFreeWordIsNotAskedWhileTheWorkIsHeldfailed before.TestAnAnswerWhoseEffectIsWithheldIsNotOffered, failed before).Local merge-check passes with a controller built from mesh-controller #156 as MESH_GATE. The forge's gate stays red until mesh-controller #154 runs (the live controller does not know
runs-as, ADR 0246).Merge check at
c5dee506mesh/merge-gate: FAIL — 1 problem(s) the change brings; the first: 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): nothing could be sent to it with this change — messenger on ygcyr has no bus credential: nothing was issued for ygcyr.messenger, and a push would seal a placeholder its process cannot read (novox/hq issue 203).module issue messenger --node ygcyr, then push again (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestBreakGlassIsAFileRootMadeAndTheMinuteGoesOn (0.00s)Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791555896514545988(builds --log build-1791555896514545988).Merge check at
6c4725b5mesh/merge-gate: FAIL — a manifest the change touches fails the module check: modules/messenger/module.json: this is not a module manifest: json: unknown field "runs-as" (read without runs-as, seats[0].by-caller, seats[0].records, seats….kinded, seats[2].proofs) (modules: messenger, sudo)mesh/repo-check: FAIL — its merge-check.sh failed: files asking for a setting without saying whether it is trusted: 23Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791557323241252527(builds --log build-1791557323241252527).Merge check at
6c4725b5mesh/merge-gate: FAIL — 1 problem(s) the change brings; the first: 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): nothing could be sent to it with this change — messenger on ygcyr has no bus credential: nothing was issued for ygcyr.messenger, and a push would seal a placeholder its process cannot read (novox/hq issue 203).module issue messenger --node ygcyr, then push again (modules: messenger, sudo)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on g14 as
build-1791558375662780593(builds --log build-1791558375662780593).6c4725b554to8754de747dMerge check at
8754de74mesh/merge-gate: FAIL — 1 problem(s) the change brings; the first: 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): nothing could be sent to it with this change — messenger on ygcyr has no bus credential: nothing was issued for ygcyr.messenger, and a push would seal a placeholder its process cannot read (novox/hq issue 203).module issue messenger --node ygcyr, then push again (modules: messenger, sudo)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1791558552091544626(builds --log build-1791558552091544626).Merge check at
8754de74mesh/merge-gate: FAIL — 1 problem(s) the change brings; the first: 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): nothing could be sent to it with this change — messenger on ygcyr has no bus credential: nothing was issued for ygcyr.messenger, and a push would seal a placeholder its process cannot read (novox/hq issue 203).module issue messenger --node ygcyr, then push again (modules: messenger, sudo)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1791559608561987646(builds --log build-1791559608561987646).Merge check at
8754de74mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: messenger, sudo)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds messenger, sudo → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791560429392381566(builds --log build-1791560429392381566).Pull request closed