The self-check judges D13 from watched state, findings are saved, and bus-upgrade-failed ends with the controller (issue 1952) #582

Merged
mesh-tools merged 1 commits from fix/l4-quick into main 2026-10-31 21:34:00 +00:00
Member

Issue 1952 (milestone L4 of design 47, ADR 0564): the quick path the operator approved on 2026-10-31 21:23, so the condition keeper's compare with the controller comes out empty and the operator can take health over.

Delivery group fix/l4-quick, one check and one Approve: mesh-sdk cbbfbf3d, mesh-catalog bbd02004, mesh-delivery a2558171 (all pinned to mesh-sdk cbbfbf3d by hand once more, said to the operator; issue 1585 ends hand pins).

The four fixes:

  1. Findings were refused: the finding layout had a field named token, which the runtime refuses as a credential name. It is now ref; DecodeFinding still reads token, which the watchman writes directly on its own account.
  2. checked was never said: a seat held without the newer traffic rules now carries its own event.<e> in its holder's seat traffic (not the controller's seat, not per-machine node events).
  3. Probe D13 never finished: the self-check keeps the readings, good nights, indexer modules and manifests by watching them and judges from memory; the setting probes is read once per run.
  4. bus.nats.upgrade-failed (the controller's own bus step) is carried as ending with the controller's lease, on the operator's word; ADR 0564's table gets its progressive insight.

Quick fix vs thorough fix: quick (chosen now): these four, right under either health design. Thorough (later, its own record): the health view extension of research 032 / ADR 0240 the operator described on 2026-10-31.

Not in this group: module.fail2ban.novox.unhealthy differs too in compare (the watchman writes no finding for it); cause not established yet.

Tests: new table rows, each failing before its fix; gofmt, go vet (with and without -tags integration) and go test pass in mesh-sdk/go, mesh-self-check, mesh-healers, mesh-conditions and mesh-grants; no new test functions. Known on main: go test -race in mesh-self-check reports test-only races.

Reviewed-by: rev-l4@shanks at bbd02004b8

https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL

Issue 1952 (milestone L4 of design 47, ADR 0564): the quick path the operator approved on 2026-10-31 21:23, so the condition keeper's compare with the controller comes out empty and the operator can take health over. **Delivery group `fix/l4-quick`, one check and one Approve:** mesh-sdk cbbfbf3d, mesh-catalog bbd02004, mesh-delivery a2558171 (all pinned to mesh-sdk cbbfbf3d by hand once more, said to the operator; issue 1585 ends hand pins). **The four fixes:** 1. **Findings were refused:** the finding layout had a field named `token`, which the runtime refuses as a credential name. It is now `ref`; `DecodeFinding` still reads `token`, which the watchman writes directly on its own account. 2. **`checked` was never said:** a seat held without the newer traffic rules now carries its own `event.<e>` in its holder's seat traffic (not the controller's seat, not per-machine node events). 3. **Probe D13 never finished:** the self-check keeps the readings, good nights, indexer modules and manifests by watching them and judges from memory; the setting `probes` is read once per run. 4. **`bus.nats.upgrade-failed`** (the controller's own bus step) is carried as ending with the controller's lease, on the operator's word; ADR 0564's table gets its progressive insight. **Quick fix vs thorough fix:** quick (chosen now): these four, right under either health design. Thorough (later, its own record): the health view extension of research 032 / ADR 0240 the operator described on 2026-10-31. **Not in this group:** `module.fail2ban.novox.unhealthy` differs too in compare (the watchman writes no finding for it); cause not established yet. **Tests:** new table rows, each failing before its fix; gofmt, go vet (with and without -tags integration) and go test pass in mesh-sdk/go, mesh-self-check, mesh-healers, mesh-conditions and mesh-grants; no new test functions. Known on main: `go test -race` in mesh-self-check reports test-only races. Reviewed-by: rev-l4@shanks at bbd02004b8638918fb05b57f41a9f68c045d531e https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-tools added 1 commit 2026-10-31 20:45:04 +00:00
Let the health take-over's compare come out empty (issue 1952)
mesh/delivery merged: source.main moved to novox/mesh-catalog@19714898986c
mesh/delivery-group group fix/l4-quick merged: every member is merged
mesh/check pass bbd02004b863 on 3d7830cfdc4f | unit 2729 run, 4570 kept, 16 skipped | integration 2975 run, 4493 kept, 25 skipped | over bound: unit, …
bbd02004b8
The self-check's D13 read every reading, good night, indexer module and
manifest one key at a time through the runtime and never finished
within its 30 s; it now keeps those states by watching them and judges
from memory, and reads the setting `probes` once a run. Findings name
their key's last part `ref`, since the runtime refuses a field named
`token`; the self-check, the healers and the keeper are pinned to the
mesh-sdk that reads it and lets a carried holder say its seat's events.
The controller's own bus.nats.upgrade-failed ends with its lease, as
the operator approved on 2026-10-31, so compare lists it apart.

Quick vs thorough: quick, these fixes for L4's take-over now; the
thorough fix (research 032 / ADR 0240's health view extension) is
decided later.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

Delivery novox/mesh-catalog@bbd02004b863 — merged since 2026-10-31T21:34:01Z

Source — source.main moved to novox/mesh-catalog@1971489898. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group fix/l4-quick: novox/mesh-catalog@bbd02004b8, novox/mesh-delivery@a2558171e1, novox/mesh-sdk@cbbfbf3d2d

  • composed together: pass — the checker's verdict at the members' heads (e4408a56a5f0)

Transitions

  • 2026-10-31 20:45 (new) → proposed (announced): novox/mesh-catalog#582's head announced
  • 2026-10-31 20:45 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-10-31 21:34 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@bbd02004b863` — **merged** since 2026-10-31T21:34:01Z **Source** — source.main moved to novox/mesh-catalog@19714898986c. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/l4-quick`: novox/mesh-catalog@bbd02004b863, novox/mesh-delivery@a2558171e11e, novox/mesh-sdk@cbbfbf3d2d55 - composed together: pass — the checker's verdict at the members' heads (e4408a56a5f0) **Transitions** - 2026-10-31 20:45 (new) → proposed (announced): novox/mesh-catalog#582's head announced - 2026-10-31 20:45 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-10-31 21:34 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 1971489898 into main 2026-10-31 21:34:00 +00:00
mesh-tools deleted branch fix/l4-quick 2026-10-31 21:34:00 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#582