A proposal reads whole on the phone, and Telegram shows every message formatted (issue 383) #178

Closed
mesh-admin wants to merge 3 commits from fix/383-a-proposal-reads-whole-on-the-phone into main
Contributor

Fixes issue 383 (a settings proposal reads as one wall of text on the phone).

messenger: an ask may carry its explanation whole (asks.Ask.Whole); the router shows it in place of the explanation only on a kind the controller issued as verified-sender and that was given the ask's answers, and holds it to the secret rule alone (CheckSecret): a path or an address is what the operator approves, a secret's shape leaves the mesh nowhere and refuses the ask as a whole. Everywhere else, and for every condition, the explanation under the content rule stands. An ask's own message offers Details when the ask says what Details shows (asks.Ask.Details). The expiry line reads "Expires : ".

telegram: every message is sent in HTML, formatted and never reworded: the title bold, a key line or a fingerprint in monospace, the chosen line bold, <, > and & escaped first. A tap is still compared by the plain words, which is what Telegram gives back.

claude-code: the instructions proposal's ask (ADR 0274) has the same shape; the fingerprint and the how-to are the Details answer's.

Depends on mesh-sdk branch fix/383-an-ask-says-what-a-proving-channel-shows-whole (commit 4f3efc9, pinned as v0.1.13-0.20261010132341-4f3efc98e0c0): merge the SDK first, or at least push that branch, or the gate cannot fetch the module. Then mesh-controller's pull request for issue 383, which sends the whole.

Fixes issue 383 (a settings proposal reads as one wall of text on the phone). **messenger**: an ask may carry its explanation whole (`asks.Ask.Whole`); the router shows it in place of the explanation only on a kind the controller issued as `verified-sender` and that was given the ask's answers, and holds it to the secret rule alone (`CheckSecret`): a path or an address is what the operator approves, a secret's shape leaves the mesh nowhere and refuses the ask as a whole. Everywhere else, and for every condition, the explanation under the content rule stands. An ask's own message offers Details when the ask says what Details shows (`asks.Ask.Details`). The expiry line reads "Expires <when>: <what then>". **telegram**: every message is sent in HTML, formatted and never reworded: the title bold, a key line or a fingerprint in monospace, the chosen line bold, `<`, `>` and `&` escaped first. A tap is still compared by the plain words, which is what Telegram gives back. **claude-code**: the instructions proposal's ask (ADR 0274) has the same shape; the fingerprint and the how-to are the Details answer's. **Depends on** mesh-sdk branch `fix/383-an-ask-says-what-a-proving-channel-shows-whole` (commit 4f3efc9, pinned as `v0.1.13-0.20261010132341-4f3efc98e0c0`): merge the SDK first, or at least push that branch, or the gate cannot fetch the module. Then mesh-controller's pull request for issue 383, which sends the whole.
mesh-admin added 1 commit 2026-10-10 13:38:58 +00:00
A proposal reads whole on the phone, and Telegram shows every message formatted (hq issue 383)
mesh/delivery-group group fix/383-a-proposal-reads-whole-on-the-phone checking: 0 of 2 member(s) ready
mesh/merge-gate pass: builds claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did with…
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery superseded: a newer head of the same pull request
96ba664cb4
The operator could not read a settings proposal on the phone: its values were masked ("+ shares:
media=‹path›"), a how-to paragraph followed the fingerprint, and nothing was formatted.

messenger: an ask may carry its explanation whole (asks.Ask.Whole); the router shows it in
place of the explanation only on a kind the controller issued as verified-sender and that was
given the ask's answers, and holds it to the secret rule alone (CheckSecret): a path or an
address is what the operator approves, a secret's shape leaves the mesh nowhere and refuses the
ask as a whole. Everywhere else, and for every condition, the explanation under the content rule
stands. An ask's own message offers Details when the ask says what Details shows
(asks.Ask.Details): the fingerprint and where to read the proposal whole. The expiry line reads
"Expires <when>: <what then>".

telegram: every message is sent in HTML, formatted and never reworded: the title bold, a key
line or a fingerprint in monospace, the chosen line bold, and every '<', '>' and '&' escaped
first. What a tap is compared by stays the plain words, which is what Telegram gives back.

claude-code: an instruction proposal's ask has the same shape — what is asked, the text, who
proposed it and when; the fingerprint and the how-to are the Details answer's; where the sender
is proven, a line with a path or an address is shown, one shaped like a secret is not.

Takes mesh-sdk go at the commit that adds Whole and Details to an ask.
Author
Contributor

Delivery novox/mesh-catalog@69040849a346 — stopped since 2026-10-13T14:40:56Z

Delivery plan — builds claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step

  • tier 0: claude-code, messenger, telegram
  • ace: receives claude-code
  • g14: receives claude-code
  • novox: receives claude-code, messenger, telegram
  • shanks: receives claude-code
  • claude-code keeps data (ADR 0233): what it holds is backed up before it moves

Transitions

  • 2026-10-10 13:55 (new) → proposed (announced): novox/mesh-catalog#178's head announced
  • 2026-10-10 13:58 proposed → checked (checked): the verdict names this commit
  • 2026-10-10 13:58 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 14:40 ready → stopped (closed): the pull request closed unmerged

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@69040849a346` — **stopped** since 2026-10-13T14:40:56Z **Delivery plan** — builds claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step - tier 0: claude-code, messenger, telegram - ace: receives claude-code - g14: receives claude-code - novox: receives claude-code, messenger, telegram - shanks: receives claude-code - claude-code keeps data (ADR 0233): what it holds is backed up before it moves **Transitions** - 2026-10-10 13:55 (new) → proposed (announced): novox/mesh-catalog#178's head announced - 2026-10-10 13:58 proposed → checked (checked): the verdict names this commit - 2026-10-10 13:58 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 14:40 ready → stopped (closed): the pull request closed unmerged The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at 96ba664c

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram)
  • 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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step

  • tier 0: claude-code, messenger, telegram
  • ace: receives claude-code
  • g14: receives claude-code
  • novox: receives claude-code, messenger, telegram
  • shanks: receives claude-code
  • claude-code keeps data (ADR 0233): what it holds is backed up before it moves
  • read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go

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

--- the gate: claude-code, messenger, telegram
claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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)
telegram: ok, 1 tool(s), keeps state offset, messages
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 2
3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:37:57Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-10T13:37:57Z

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

a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram

notes:
  - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok  	git.novox.be/novox/mesh-catalog/checks/words	0.003s
words: 12 retired words and 70 daemons' lines, none in the 37573 strings of 638 files
ok  	git.novox.be/novox/mesh-catalog/checks/agenthome	0.011s
agent-home: no archive and no file written into under the agent's home
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)
long-running resources without health: 70, as kept
NOT TESTED: modules/claude-code — its dependencies cannot be fetched by the build seat
NOT TESTED: modules/messenger — its dependencies cannot be fetched by the build seat
testing modules/telegram
ok  	telegram/cmd/telegram	1.055s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `96ba664c` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram) - `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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step - tier 0: claude-code, messenger, telegram - ace: receives claude-code - g14: receives claude-code - novox: receives claude-code, messenger, telegram - shanks: receives claude-code - claude-code keeps data (ADR 0233): what it holds is backed up before it moves - read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go Run by the build seat on ace as `build-1791639553324967213` (`builds --log build-1791639553324967213`). ``` --- the gate: claude-code, messenger, telegram claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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) telegram: ok, 1 tool(s), keeps state offset, messages long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 2 3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:37:57Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-10T13:37:57Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram notes: - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280) --- its merge-check.sh (go toolchain) ok git.novox.be/novox/mesh-catalog/checks/words 0.003s words: 12 retired words and 70 daemons' lines, none in the 37573 strings of 638 files ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.011s agent-home: no archive and no file written into under the agent's home 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) long-running resources without health: 70, as kept NOT TESTED: modules/claude-code — its dependencies cannot be fetched by the build seat NOT TESTED: modules/messenger — its dependencies cannot be fetched by the build seat testing modules/telegram ok telegram/cmd/telegram 1.055s --- its merge-check-typescript.sh (typescript toolchain) ```
jschoubben added 1 commit 2026-10-10 13:46:55 +00:00
Review: a path is read as a path in the whole words, which an ask's own message alone shows (issue 383)
mesh/merge-gate pass: builds claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did with…
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery-group group fix/383-a-proposal-reads-whole-on-the-phone ready: every member ready, and composed together they pass
mesh/delivery superseded: a newer head of the same pull request
545e4319f9
The review of 2026-10-10: a mixed-case path with a digit ("/mnt/Photos_2024/Jochen") read as a
random string and was withheld from the whole words, the symptom again; the whole was judged on
the kind's issued capabilities instead of the controller's fresh word (Promises); a condition's
record could have taken an ask's whole words in place of its own; and a short instruction text
with a path line was said to be cut where it was shown whole.
Author
Contributor

Merge check at 545e4319

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram)
  • 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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step

  • tier 0: claude-code, messenger, telegram
  • ace: receives claude-code
  • g14: receives claude-code
  • novox: receives claude-code, messenger, telegram
  • shanks: receives claude-code
  • claude-code keeps data (ADR 0233): what it holds is backed up before it moves
  • read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go

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

--- the gate: claude-code, messenger, telegram
claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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)
telegram: ok, 1 tool(s), keeps state offset, messages
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 2
3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:46:57Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-10T13:46:57Z

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

a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram

notes:
  - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok  	git.novox.be/novox/mesh-catalog/checks/words	0.003s
words: 12 retired words and 70 daemons' lines, none in the 37576 strings of 638 files
ok  	git.novox.be/novox/mesh-catalog/checks/agenthome	0.012s
agent-home: no archive and no file written into under the agent's home
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)
long-running resources without health: 70, as kept
NOT TESTED: modules/claude-code — its dependencies cannot be fetched by the build seat
NOT TESTED: modules/messenger — its dependencies cannot be fetched by the build seat
testing modules/telegram
ok  	telegram/cmd/telegram	1.056s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `545e4319` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram) - `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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step - tier 0: claude-code, messenger, telegram - ace: receives claude-code - g14: receives claude-code - novox: receives claude-code, messenger, telegram - shanks: receives claude-code - claude-code keeps data (ADR 0233): what it holds is backed up before it moves - read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go Run by the build seat on shanks as `build-1791640039567381904` (`builds --log build-1791640039567381904`). ``` --- the gate: claude-code, messenger, telegram claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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) telegram: ok, 1 tool(s), keeps state offset, messages long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 2 3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:46:57Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-10T13:46:57Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram notes: - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280) --- its merge-check.sh (go toolchain) ok git.novox.be/novox/mesh-catalog/checks/words 0.003s words: 12 retired words and 70 daemons' lines, none in the 37576 strings of 638 files ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.012s agent-home: no archive and no file written into under the agent's home 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) long-running resources without health: 70, as kept NOT TESTED: modules/claude-code — its dependencies cannot be fetched by the build seat NOT TESTED: modules/messenger — its dependencies cannot be fetched by the build seat testing modules/telegram ok telegram/cmd/telegram 1.056s --- its merge-check-typescript.sh (typescript toolchain) ```
Author
Contributor

Merge check at 545e4319

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram)
  • 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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step

  • tier 0: claude-code, messenger, telegram
  • ace: receives claude-code
  • g14: receives claude-code
  • novox: receives claude-code, messenger, telegram
  • shanks: receives claude-code
  • claude-code keeps data (ADR 0233): what it holds is backed up before it moves
  • read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go

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

--- the gate: claude-code, messenger, telegram
claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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)
telegram: ok, 1 tool(s), keeps state offset, messages
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 2
3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:46:57Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-10T13:46:57Z

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

a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram

notes:
  - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280)
--- 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 37576 strings of 638 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/paths	0.005s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 70, as kept
NOT TESTED: modules/claude-code — its dependencies cannot be fetched by the build seat
NOT TESTED: modules/messenger — its dependencies cannot be fetched by the build seat
testing modules/telegram
ok  	telegram/cmd/telegram	1.059s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `545e4319` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram) - `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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step - tier 0: claude-code, messenger, telegram - ace: receives claude-code - g14: receives claude-code - novox: receives claude-code, messenger, telegram - shanks: receives claude-code - claude-code keeps data (ADR 0233): what it holds is backed up before it moves - read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go Run by the build seat on ace as `build-1791640265652869473` (`builds --log build-1791640265652869473`). ``` --- the gate: claude-code, messenger, telegram claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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) telegram: ok, 1 tool(s), keeps state offset, messages long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 2 3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:46:57Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-10T13:46:57Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram notes: - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280) --- 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 37576 strings of 638 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/paths 0.005s paths: no module names another's state on its machine (3 known, listed to go) long-running resources without health: 70, as kept NOT TESTED: modules/claude-code — its dependencies cannot be fetched by the build seat NOT TESTED: modules/messenger — its dependencies cannot be fetched by the build seat testing modules/telegram ok telegram/cmd/telegram 1.059s --- its merge-check-typescript.sh (typescript toolchain) ```
jschoubben added 1 commit 2026-10-10 13:55:43 +00:00
Take mesh-sdk go at its tag v0.1.13 (issue 383)
mesh/delivery-group group fix/383-a-proposal-reads-whole-on-the-phone checking: composed check out of date: novox/mesh-controller@95b93626d20e was judged again…
mesh/merge-gate out of date: judged against a trunk it does not name, the trunk is now 22071dabfc7b; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against a trunk it does not name, the trunk is now 22071dabfc7b; judged again on a recheck or when it is merged
mesh/delivery stopped: the pull request closed unmerged
69040849a3
The build seat fetches a tag and not a pseudo-version of a bare commit: the merge check said
NOT TESTED for the messenger and claude-code while they pinned the SDK's commit.
Author
Contributor

Merge check at 69040849

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram)
  • 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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step

  • tier 0: claude-code, messenger, telegram
  • ace: receives claude-code
  • g14: receives claude-code
  • novox: receives claude-code, messenger, telegram
  • shanks: receives claude-code
  • claude-code keeps data (ADR 0233): what it holds is backed up before it moves
  • read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go

Run by the build seat on g14 as build-1791640558378663699 (builds --log build-1791640558378663699).

--- the gate: claude-code, messenger, telegram
claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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)
telegram: ok, 1 tool(s), keeps state offset, messages
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 2
3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:46:57Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-10T13:46:57Z

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

a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram

notes:
  - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok  	git.novox.be/novox/mesh-catalog/checks/words	0.023s
words: 12 retired words and 70 daemons' lines, none in the 37576 strings of 638 files
ok  	git.novox.be/novox/mesh-catalog/checks/agenthome	0.009s
agent-home: no archive and no file written into under the agent's home
ok  	git.novox.be/novox/mesh-catalog/checks/paths	0.005s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 70, as kept
testing modules/claude-code
ok  	claude-code/cmd/claude-code	3.155s
testing modules/messenger
ok  	messenger/cmd/messenger	1.890s
testing modules/telegram
ok  	telegram/cmd/telegram	1.057s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `69040849` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: claude-code, messenger, telegram) - `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 claude-code, messenger, telegram → ace, g14, novox, shanks; no bus step - tier 0: claude-code, messenger, telegram - ace: receives claude-code - g14: receives claude-code - novox: receives claude-code, messenger, telegram - shanks: receives claude-code - claude-code keeps data (ADR 0233): what it holds is backed up before it moves - read by no module's build: modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md, modules/telegram/cmd/telegram/channel_test.go Run by the build seat on g14 as `build-1791640558378663699` (`builds --log build-1791640558378663699`). ``` --- the gate: claude-code, messenger, telegram claude-code: ok, 43 tool(s), keeps state servers, holdings, config, proposals, reads claude-licence-manager.bindings, keeps agent-home (valuable); 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, 6 tool(s), invokes seat:mesh-controller.conditions, seat:mesh-controller.root-free, keeps state open, sent, asks, identities; 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) telegram: ok, 1 tool(s), keeps state offset, messages long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 2 3 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-10T13:46:57Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-10T13:46:57Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 1 tier(s): claude-code, messenger, telegram notes: - modules/claude-code/README.md, modules/claude-code/cmd/claude-code/proposals_test.go, modules/messenger/README.md, modules/messenger/cmd/messenger/onemessage_test.go, modules/messenger/cmd/messenger/review_test.go, modules/messenger/cmd/messenger/whole_test.go, modules/telegram/README.md and modules/telegram/cmd/telegram/channel_test.go read by no module's build, and rebuild nothing (issue 280) --- its merge-check.sh (go toolchain) ok git.novox.be/novox/mesh-catalog/checks/words 0.023s words: 12 retired words and 70 daemons' lines, none in the 37576 strings of 638 files ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.009s agent-home: no archive and no file written into under the agent's home ok git.novox.be/novox/mesh-catalog/checks/paths 0.005s paths: no module names another's state on its machine (3 known, listed to go) long-running resources without health: 70, as kept testing modules/claude-code ok claude-code/cmd/claude-code 3.155s testing modules/messenger ok messenger/cmd/messenger 1.890s testing modules/telegram ok telegram/cmd/telegram 1.057s --- its merge-check-typescript.sh (typescript toolchain) ```
Author
Contributor

Replaced by #278, which rebases this work on main and reshapes it for issue 639 (an ask reads at a glance: summary in the body, the rest in a note). The values-whole part (Whole, CheckSecret) is carried over; the Details button is dropped, its words are now the message's note. Closing this one.

Replaced by #278, which rebases this work on main and reshapes it for issue 639 (an ask reads at a glance: summary in the body, the rest in a note). The values-whole part (`Whole`, `CheckSecret`) is carried over; the Details button is dropped, its words are now the message's note. Closing this one.
mesh-admin closed this pull request 2026-10-13 14:37:12 +00:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#178