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:
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.
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).
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.
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.
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 cbbfbf3d2d55309e698880c28bccbf7e4be18939
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
A finding's field `token` is named like a credential, so the tool runner
refused every finding that carried it; it is `ref` now, and a finding
written under the old name is still read. A module the tool runner
carries got no grant for its own held seat's events, so the self-check
could not say `checked`; a held plain seat's events are now in the
holder's seat traffic, its membership and its runtime's grants.
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
Deliverynovox/mesh-sdk@cbbfbf3d2d55 — merged since 2026-10-31T21:33:59Z
Source — source.main moved to novox/mesh-sdk@5ae69df8cc. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (e4408a56a5f0)
Transitions
2026-10-31 20:45 (new) → proposed (announced): novox/mesh-sdk#150'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:33 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-sdk@cbbfbf3d2d55` — **merged** since 2026-10-31T21:33:59Z
**Source** — source.main moved to novox/mesh-sdk@5ae69df8ccde. 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-sdk#150'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:33 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`.
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.
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-sdkcbbfbf3d, mesh-catalog bbd02004, mesh-delivery a2558171 (all pinned to mesh-sdkcbbfbf3dby hand once more, said to the operator; issue 1585 ends hand pins).The four fixes:
token, which the runtime refuses as a credential name. It is nowref;DecodeFindingstill readstoken, which the watchman writes directly on its own account.checkedwas never said: a seat held without the newer traffic rules now carries its ownevent.<e>in its holder's seat traffic (not the controller's seat, not per-machine node events).probesis read once per run.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.unhealthydiffers 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 -racein mesh-self-check reports test-only races.Reviewed-by: rev-l4@shanks at
cbbfbf3d2dhttps://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Delivery
novox/mesh-sdk@cbbfbf3d2d55— merged since 2026-10-31T21:33:59ZSource — source.main moved to novox/mesh-sdk@5ae69df8cc. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/l4-quick: novox/mesh-catalog@bbd02004b8, novox/mesh-delivery@a2558171e1, novox/mesh-sdk@cbbfbf3d2dTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.