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
pull from: fix/383-a-proposal-reads-whole-on-the-phone
merge into: :main
:main
:fix/47-G-start-2
: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#178
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.
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 asverified-senderand 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 asv0.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.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.Delivery
novox/mesh-catalog@69040849a346— stopped since 2026-10-13T14:40:56ZDelivery plan — builds claude-code, messenger, telegram → 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
96ba664cmesh/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
Run by the build seat on ace as
build-1791639553324967213(builds --log build-1791639553324967213).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.Merge check at
545e4319mesh/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
Run by the build seat on shanks as
build-1791640039567381904(builds --log build-1791640039567381904).Merge check at
545e4319mesh/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
Run by the build seat on ace as
build-1791640265652869473(builds --log build-1791640265652869473).Merge check at
69040849mesh/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
Run by the build seat on g14 as
build-1791640558378663699(builds --log build-1791640558378663699).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.Pull request closed