Review: keep the desk's notification ids so lost answers are said again in place (issue 384)
mesh/merge-gate pass: builds desk-channel, messenger → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
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 delivered

dunst.started says the notifier's bundle started again: the notifications stay on screen and only the
answers they waited for are lost. Forgetting their ids made the router's message a second popup beside a
dead one. The desk now keeps the ids and says answers-lost-at; the router's message replaces each
notification in place.

Whether a message is said again is now its own (last said before the answers were lost), so a router
that started after the loss still says it and a repeated standing says nothing. It is sent to the desk
directly, not through the outbox, whose failure path moves a warning to Telegram; a failed send is tried
again at the next standing.
This commit is contained in:
jochen
2026-10-10 16:13:57 +02:00
parent cd85104988
commit 45361b013a
9 changed files with 188 additions and 211 deletions
+7 -7
View File
@@ -18,13 +18,13 @@ channel's client and no channel's secret.
is the channel's own, said on `intake.standing`.
- **Keeps its state on the bus** (ADR 0201): `open` and `sent` (the messages), `asks` (every ask, closed ones
for 30 days), `identities` (the operator's linked accounts, one per kind, and a link asked for).
- **A screen made new is said again from here, never from a channel's memory** (issue 384,
`cmd/messenger/restart.go`): a channel whose screen was lost — the desk's notifier started again — says so
in its standing (`shows-since`), and the router says again on that kind what is still open and asked there,
one message per problem under its handle with the words and answers of now; what is silenced is edited to
say so, with no answers and no urgency; what ended never comes back. Each move of `shows-since` is acted on
once, and waits while the kind cannot send rather than going to another channel. Telegram's messages stay in
the chat and it says no `shows-since`.
- **Lost answers are said again from here, never from a channel's memory** (issue 384,
`cmd/messenger/restart.go`): a channel whose messages' answers were lost — the desk's notifier started
again — says when in its standing (`answers-lost-at`). The router says again on that kind, directly and not
through the outbox, each message that is still open, asked there and last said before that time: one per
problem, under its handle, with the words and answers of now, so it replaces the message in place. What is
silenced is edited to say so, with no answers and no urgency; what ended never comes back. A kind that cannot
send waits; it never goes to another channel. Telegram's answers are never lost and it says no time.
## Asks, answers and warrants (novox/hq ADR 0259)