To-be 46: an ask reads at a glance, and its values are whole where the sender is proven (ADR 0345, issues 383 and 639)

The operator would not read the Telegram asks: the ADR 0343 ask was thirty plain lines, a settings
proposal a wall of masked values. The design takes ADR 0345: the asker's summary and points are the body,
everything else a note the channel shows apart, and an ask's values whole on a proving channel.
This commit is contained in:
jochen
2026-10-13 20:35:37 +02:00
parent f7b4133e59
commit 6bf56ea5c9
@@ -4,6 +4,7 @@ status: in-progress
code: [mesh-controller, mesh-tools, mesh-sdk, mesh-catalog]
updated: 2026-10-13
decisions:
- "ADR 0345"
- "ADR 0344"
- "ADR 0332"
- "ADR 0308"
@@ -186,6 +187,17 @@ An id; the asker (bus principal and machine); the kind with its options or bound
priority (urgent or normal); optionally a timeout and a default; optionally a conversation handle;
optionally a group, for batching. The words pass the content rule.
*Amended 2026-10-13, ADR 0345 (issues 383 and 639):* **an ask reads at a glance.** Its words are a headline
saying what it changes for the operator; an explanation that is a summary of two or three short sentences on
one line, then at most three points; and Details — who proposed it, a fingerprint, how to read it whole. The
router sends the headline as the title and the explanation alone as the body, and puts everything else in the
message's note: who asked and when with what happens if nobody answers, what each answer does, where else it is
answered, and the Details. A channel shows the note apart (Telegram: collapsed after a blank line; the desk:
after the body). Answered, the message is one line, "You chose Approve at 16:06 on Telegram · <headline>". A
decision that needs the operator carries a brief its ask shows in place of its clauses; a settings proposal is
a summary and a point per key, at most three; an instructions proposal's text and a question's asker are their
Details.
### Life
**open → answered | defaulted | expired | cancelled.**
@@ -254,6 +266,7 @@ withdrawn from routing and reported until it passes. A new word is a new version
| | `operator-first` | the operator can write unprompted | a simulated message yields a `message` envelope |
| trusting | `verified-sender` | the answer came from the operator's own account, through a holder no agent shares | a choice from an identity not on the list is dropped and reported; placement checked |
| | `exact-render` | the ask is shown as the router rendered it | rendered text equals the router's, byte for byte |
| | | *Amended 2026-10-13, ADR 0345:* a channel may format the router's words (Telegram: the title bold, a key line in monospace, the note in a collapsed blockquote) and escapes their markup; it never rewords them | the words, formatting and runs of whitespace aside, equal the router's — what a tap on the message is compared by |
| | `code-factor` | a typed code reaches the router by request and reply, never judged by the holder | a code never appears in an event; it is deleted from the conversation where the service allows |
| | `key-factor` | a security key's assertion over the router's challenge reaches the router | the challenge is the router's; the signature is checked by the router |
@@ -354,6 +367,11 @@ is not exempted.
- **A refusal is said to the sender** — the `notify` call or the ask is refused naming
the offending part, so the asker can rephrase or move the specific into a reference — and raises
`channel-refused`. The offending part is never sent to a channel.
- *Amended 2026-10-13, ADR 0345 (issue 383):* **an ask may carry its explanation whole** (`Whole` beside
`Explanation`), its paths and addresses as they are: what the operator approves must be readable where they
approve it. The router shows the whole only on an ask's own message, on a kind declaring `verified-sender` that
was given the ask's answers, and holds it to the secret rule alone; a secret's shape in it refuses the ask as a
whole. The rule above holds for everything else: every condition's words, and every kind that proves nothing.
### References