Issue 1966, a recovery fix (instruction recovery-fixes-merge-and-tell). Group fix/1966-requires-state: mesh-sdk, mesh-tools (this), mesh-delivery.
Live case. From 11:38 UTC every publish to the store failed "distribution keeps and reads no state called transfers ... issued: none": the tool runner read the old state list alone. This head's build runs on novox since 12:3x UTC, placed by hand at the operator's terminal (the fix could not be stored through the seat it repairs); after it, novox issues distribution's findings, idle and transfers.
Change.issuedState (node-tools/internal/bus/state.go) reads mesh-sdk's membership.StateIssued; the refusal names requires too.
Quick or thorough. Thorough: the rule lives in mesh-sdk (its pull request in this group), not a fallback here. Tests: rows in internal/runtime/state_test.go (a bound module gets, puts and watches by its local name; another module is refused), which fail without the change.
Check. Expected to fail on the checker's composition-size fault (issue 1966 note 130), not on this change; the merge needs the operator's Approve of that red check.
Reviewed-by: mesh-code-reviewer@shanks at 8052fd14f4
Issue 1966, a recovery fix (instruction recovery-fixes-merge-and-tell). Group fix/1966-requires-state: mesh-sdk, mesh-tools (this), mesh-delivery.
**Live case.** From 11:38 UTC every publish to the store failed "distribution keeps and reads no state called transfers ... issued: none": the tool runner read the old `state` list alone. This head's build runs on novox since 12:3x UTC, placed by hand at the operator's terminal (the fix could not be stored through the seat it repairs); after it, novox issues distribution's findings, idle and transfers.
**Change.** `issuedState` (node-tools/internal/bus/state.go) reads mesh-sdk's `membership.StateIssued`; the refusal names `requires` too.
**Quick or thorough.** Thorough: the rule lives in mesh-sdk (its pull request in this group), not a fallback here. Tests: rows in internal/runtime/state_test.go (a bound module gets, puts and watches by its local name; another module is refused), which fail without the change.
**Check.** Expected to fail on the checker's composition-size fault (issue 1966 note 130), not on this change; the merge needs the operator's Approve of that red check.
Reviewed-by: mesh-code-reviewer@shanks at 8052fd14f4fd6f86d9db80214e529c6a5cfb2717
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
A bundle's state call on a key-value entry its module asks for in requires
(ADR 0595 §1) was refused "keeps and reads no state called", because the
tool runner read the old state list alone (issue 1966). It now reads mesh-sdk's
one rule, membership.StateIssued.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Deliverynovox/mesh-tools@8052fd14f4fd — merged since 2026-11-09T12:56:39Z
Source — source.main moved to novox/mesh-tools@2ea4f019e5. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-11-09 12:49 (new) → proposed (announced): novox/mesh-tools#66's head announced
2026-11-09 12:49 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-11-09 12:56 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-tools@8052fd14f4fd` — **merged** since 2026-11-09T12:56:39Z
**Source** — source.main moved to novox/mesh-tools@2ea4f019e594. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/1966-requires-state`: novox/mesh-delivery@a78c5700fdf4, novox/mesh-sdk@17475257d15f, novox/mesh-tools@8052fd14f4fd
**Transitions**
- 2026-11-09 12:49 (new) → proposed (announced): novox/mesh-tools#66's head announced
- 2026-11-09 12:49 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-11-09 12:56 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 1966, a recovery fix (instruction recovery-fixes-merge-and-tell). Group fix/1966-requires-state: mesh-sdk, mesh-tools (this), mesh-delivery.
Live case. From 11:38 UTC every publish to the store failed "distribution keeps and reads no state called transfers ... issued: none": the tool runner read the old
statelist alone. This head's build runs on novox since 12:3x UTC, placed by hand at the operator's terminal (the fix could not be stored through the seat it repairs); after it, novox issues distribution's findings, idle and transfers.Change.
issuedState(node-tools/internal/bus/state.go) reads mesh-sdk'smembership.StateIssued; the refusal namesrequirestoo.Quick or thorough. Thorough: the rule lives in mesh-sdk (its pull request in this group), not a fallback here. Tests: rows in internal/runtime/state_test.go (a bound module gets, puts and watches by its local name; another module is refused), which fail without the change.
Check. Expected to fail on the checker's composition-size fault (issue 1966 note 130), not on this change; the merge needs the operator's Approve of that red check.
Reviewed-by: mesh-code-reviewer@shanks at
8052fd14f4https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Delivery
novox/mesh-tools@8052fd14f4fd— merged since 2026-11-09T12:56:39ZSource — source.main moved to novox/mesh-tools@2ea4f019e5. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1966-requires-state: novox/mesh-delivery@a78c5700fd, novox/mesh-sdk@17475257d1, novox/mesh-tools@8052fd14f4Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.