Recovery fix, member of the group fix/1966-views-page-time (mesh-sdk, mesh-tools, mesh-host), merged as one group.
Cause
mesh-grants' first view of mesh-delivery-assigner.wants has failed every minute since 2026-11-09 00:42 UTC with "the page after "", failed after 30.001s: context deadline exceeded". views.FirstView listed the keys and then made one KeptState.Get bus request per key, up to 768 KiB a page. The wants state is 387 keys and 1.7 MB, so one page was about 170 requests, past the reader's 30 s. With no grant written, distribution's move on novox (the artifact store) cannot proceed.
Quick or thorough
Quick: a smaller page.
Thorough, chosen: a page is read in one request through the runtime's new state verb mesh/state.page (mesh-tools), with KeptState.Page and an optional Pager interface. FirstView falls back to per-key Get when the runtime lacks the verb, matched by code -32601. Every page is also bounded by time (views.PageBudget, 10 s, sent as budget_ms), always with at least one value and Next for the rest.
Evidence
New cases are subtests in the existing first-view table, and a refusal row in state_test.go. Each fails without its change.
The unit suite, go vet and go vet -tags integration pass.
Rules bent (rules-are-weighed)
No test proves the budget cuts a page before the deadline: it holds by construction, since every bus request in the loop has its own deadline, and a test would need real sleeping. The reviewer agreed.
Undo
Revert the group's merges.
Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at 833cffdc9b, three rounds.
Recovery fix, member of the group fix/1966-views-page-time (mesh-sdk, mesh-tools, mesh-host), merged as one group.
## Cause
mesh-grants' first view of mesh-delivery-assigner.wants has failed every minute since 2026-11-09 00:42 UTC with "the page after \"\", failed after 30.001s: context deadline exceeded". views.FirstView listed the keys and then made one KeptState.Get bus request per key, up to 768 KiB a page. The wants state is 387 keys and 1.7 MB, so one page was about 170 requests, past the reader's 30 s. With no grant written, distribution's move on novox (the artifact store) cannot proceed.
## Quick or thorough
- Quick: a smaller page.
- Thorough, chosen: a page is read in one request through the runtime's new state verb mesh/state.page (mesh-tools), with KeptState.Page and an optional Pager interface. FirstView falls back to per-key Get when the runtime lacks the verb, matched by code -32601. Every page is also bounded by time (views.PageBudget, 10 s, sent as budget_ms), always with at least one value and Next for the rest.
## Evidence
- New cases are subtests in the existing first-view table, and a refusal row in state_test.go. Each fails without its change.
- The unit suite, go vet and go vet -tags integration pass.
## Rules bent (rules-are-weighed)
No test proves the budget cuts a page before the deadline: it holds by construction, since every bus request in the loop has its own deadline, and a test would need real sleeping. The reviewer agreed.
## Undo
Revert the group's merges.
Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at 833cffdc9bdf69692de9f25beced4a96fa441cad, three rounds.
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Deliverynovox/mesh-sdk@833cffdc9bdf — merged since 2026-11-09T08:13:05Z
Source — source.main moved to novox/mesh-sdk@28fe30e18c. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-11-09 08:12 (new) → proposed (announced): novox/mesh-sdk#175's head announced
2026-11-09 08:12 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 08:13 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@833cffdc9bdf` — **merged** since 2026-11-09T08:13:05Z
**Source** — source.main moved to novox/mesh-sdk@28fe30e18c67. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/1966-views-page-time`: novox/mesh-host@6bde46cb0084, novox/mesh-sdk@833cffdc9bdf, novox/mesh-tools@2135fed6cf1f
**Transitions**
- 2026-11-09 08:12 (new) → proposed (announced): novox/mesh-sdk#175's head announced
- 2026-11-09 08:12 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 08:13 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: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
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.
Recovery fix, member of the group fix/1966-views-page-time (mesh-sdk, mesh-tools, mesh-host), merged as one group.
Cause
mesh-grants' first view of mesh-delivery-assigner.wants has failed every minute since 2026-11-09 00:42 UTC with "the page after "", failed after 30.001s: context deadline exceeded". views.FirstView listed the keys and then made one KeptState.Get bus request per key, up to 768 KiB a page. The wants state is 387 keys and 1.7 MB, so one page was about 170 requests, past the reader's 30 s. With no grant written, distribution's move on novox (the artifact store) cannot proceed.
Quick or thorough
Evidence
Rules bent (rules-are-weighed)
No test proves the budget cuts a page before the deadline: it holds by construction, since every bus request in the loop has its own deadline, and a test would need real sleeping. The reviewer agreed.
Undo
Revert the group's merges.
Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at
833cffdc9b, three rounds.https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Delivery
novox/mesh-sdk@833cffdc9bdf— merged since 2026-11-09T08:13:05ZSource — source.main moved to novox/mesh-sdk@28fe30e18c. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1966-views-page-time: novox/mesh-host@6bde46cb00, novox/mesh-sdk@833cffdc9b, novox/mesh-tools@2135fed6cfTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.