Issue 320 and ADR 0253: a condition says itself to the operator in plain words #203

Merged
mesh-admin merged 3 commits from feat/plain-notifications into main 2026-10-08 12:20:39 +00:00
Contributor

The operator could not read the mesh's desktop notifications: each was the summary written for an agent (plan ids, commits, keys, verb syntax in backticks) plus about/since (UTC)/key/more lines, and a clearance repeated it all.

  • Issue 320: the symptom as observed, and its cause: one line of words served two readers.
  • ADR 0253: every condition carries a headline, an explanation and a resolved line in plain words beside its summary, made where the condition is made, held to a checked plain rule; channels show those, say the time in the operator's zone, and say a clearance in one line.
  • To-be 45 §2 (the fields) and §5 (what a message is) amended; glossary gains headline / explanation / resolved line.

Implemented in novox/mesh-controller and novox/mesh-catalog on the same branch name, feat/plain-notifications.

Checks run here: records.py, index.py, cycle.py, words.py (with the catalogue's list) all pass.

The operator could not read the mesh's desktop notifications: each was the summary written for an agent (plan ids, commits, keys, verb syntax in backticks) plus about/since (UTC)/key/more lines, and a clearance repeated it all. - **Issue 320**: the symptom as observed, and its cause: one line of words served two readers. - **ADR 0253**: every condition carries a headline, an explanation and a resolved line in plain words beside its summary, made where the condition is made, held to a checked plain rule; channels show those, say the time in the operator's zone, and say a clearance in one line. - **To-be 45** §2 (the fields) and §5 (what a message is) amended; **glossary** gains *headline / explanation / resolved line*. Implemented in novox/mesh-controller and novox/mesh-catalog on the same branch name, `feat/plain-notifications`. Checks run here: records.py, index.py, cycle.py, words.py (with the catalogue's list) all pass.
mesh-admin added 1 commit 2026-10-08 11:29:15 +00:00
Issue 320 and ADR 0253: a condition says itself to the operator in plain words
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
7c49aa0ffc
The operator could not read the mesh's notifications: they were the summary meant
for an agent, with ids, commits, keys and verbs, in UTC. The condition now carries
a headline, an explanation and a resolved line beside its summary.
Author
Contributor

Delivery novox/hq@356c5f23f441 — delivered since 2026-10-08T12:21:06Z

Delivery plan — builds nothing: the change touches no module of the mesh's graph

Group feat/plain-notifications, in order: novox/hq@356c5f23f4 → novox/mesh-controller@1a4305213d → novox/mesh-catalog@f00b5a19b1

Transitions

  • 2026-10-08 12:01 (new) → proposed (announced): novox/hq#203's head announced
  • 2026-10-08 12:01 proposed → checked (checked): the verdict names this commit
  • 2026-10-08 12:01 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-08 12:21 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-08 12:21 published → delivered (done): nothing for a walk to move

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

<!-- mesh-delivery:view --> **Delivery** `novox/hq@356c5f23f441` — **delivered** since 2026-10-08T12:21:06Z **Delivery plan** — builds nothing: the change touches no module of the mesh's graph **Group** `feat/plain-notifications`, in order: novox/hq@356c5f23f441 → novox/mesh-controller@1a4305213d08 → novox/mesh-catalog@f00b5a19b1be - novox/mesh-controller@1a4305213d08 before novox/mesh-catalog@f00b5a19b1be: built by - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Transitions** - 2026-10-08 12:01 (new) → proposed (announced): novox/hq#203's head announced - 2026-10-08 12:01 proposed → checked (checked): the verdict names this commit - 2026-10-08 12:01 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-08 12:21 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-08 12:21 published → delivered (done): nothing for a walk to move The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben added 1 commit 2026-10-08 11:29:35 +00:00
Issue 320: name the pull requests that fix it
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group feat/plain-notifications ready: every member ready, and composed together they pass
mesh/delivery superseded: a newer head of the same pull request
fc3c42318f
jschoubben added 1 commit 2026-10-08 12:00:41 +00:00
ADR 0253: say whether the operator is needed, keep quiet what needs nothing, answer from the notification
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/plain-notifications merged: every member is merged
356c5f23f4
The operator read the reworded popup and could not tell whether to act, and was
sent to open a session to act at all. The record now decides the verdict, the
quiet rule and the path by which a notification is answered.
Author
Contributor

Revised after the operator read the first wording and asked whether they had to open a session to act: ADR 0253 now decides (1) a verdict every explanation opens with, "Nothing for you to do." or "Needs you:" and one thing the operator does themselves; (2) a warning that needs nothing is not sent until it is urgent or needs the operator, with the kinds listed; (3) the answer path: the condition names its actions, the desk offers them (node-notifier.send gains actions, built here as to-be 46 phase 2's desk part), and the operator channel's holder calls the seat verb with the operator's why. Only verbs with no declared tier are offered this way (ADR 0234's acknowledge); a tiered one waits for to-be 46 phase 5. To-be 45 §2/§5, to-be 46 §11, glossary and issue 320 updated. Checks pass here.

Revised after the operator read the first wording and asked whether they had to open a session to act: ADR 0253 now decides (1) a verdict every explanation opens with, "Nothing for you to do." or "Needs you:" and one thing the operator does themselves; (2) a warning that needs nothing is not sent until it is urgent or needs the operator, with the kinds listed; (3) the answer path: the condition names its actions, the desk offers them (`node-notifier.send` gains actions, built here as to-be 46 phase 2's desk part), and the operator channel's holder calls the seat verb with the operator's why. Only verbs with no declared tier are offered this way (ADR 0234's acknowledge); a tiered one waits for to-be 46 phase 5. To-be 45 §2/§5, to-be 46 §11, glossary and issue 320 updated. Checks pass here.
mesh-admin merged commit 1c987e0df7 into main 2026-10-08 12:20:39 +00:00
mesh-admin deleted branch feat/plain-notifications 2026-10-08 12:20:39 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#203