mesh-hand-acts' tools on novox did not answer within 30 s, met at least four times; mesh-healers has had no answer since 2026-11-07. Cause: hand-acts read the whole acts log (84,080 entries, 46.8 MB) on every call and applied the window afterwards; the 14-day answer was ~47 MB, over the tool runner's 16 MiB line cap, which froze the runner (fixed separately in mesh-tools, fix/1966-s8-runner-frozen).
hand-acts reads from the newest entry backwards within the window, reads on when the runtime ends a page early, and stops at 900 KiB of acts as answered, 20 s or the window's start, saying complete, cut and why; complete is true when every act of the window asked was read.
warrants is capped by the same byte limit.
mesh-healers' Seeded takes a partial answer and says so.
Quick fix (this): bound the answer by bytes and time.
Thorough fix: a limit argument and an id read in the seat's contract (later note); the runner fix removes the freeze for every module.
Tests: rows in TestHandActsReadsItsOwnLogAlone (84,000 entries with 3 in the window read one page; 40 acts of 40 KiB cut under 1 MiB; time budget; a page capped at 4 entries; 20,000 short acts under 1 MiB) and a healers row; each failed against the old code. vet, vet -tags integration, tests and the integration test pass in mesh-hand-acts and mesh-healers. No manifest change.
After delivery: hand-acts {days: 1} names what wrote ~83,500 acts in 12 days.
A recovery fix (recovery-fixes-merge-and-tell): small, undone by one revert; the delivery seat serves no recovery merge, so it takes the operator's Approve.
Reviewed-by: mesh-code-reviewer for lead-47@shanks at 443a340f06 (reviewed at acc181aa; rebased onto main 503411e6 with identical commits)
Issue 1966 S8 (prepare hq .work/1966-s8-hand-acts.md).
mesh-hand-acts' tools on novox did not answer within 30 s, met at least four times; mesh-healers has had no answer since 2026-11-07. Cause: `hand-acts` read the whole acts log (84,080 entries, 46.8 MB) on every call and applied the window afterwards; the 14-day answer was ~47 MB, over the tool runner's 16 MiB line cap, which froze the runner (fixed separately in mesh-tools, fix/1966-s8-runner-frozen).
- `hand-acts` reads from the newest entry backwards within the window, reads on when the runtime ends a page early, and stops at 900 KiB of acts as answered, 20 s or the window's start, saying `complete`, `cut` and `why`; `complete` is true when every act of the window asked was read.
- `warrants` is capped by the same byte limit.
- mesh-healers' `Seeded` takes a partial answer and says so.
- Quick fix (this): bound the answer by bytes and time.
- Thorough fix: a `limit` argument and an `id` read in the seat's contract (later note); the runner fix removes the freeze for every module.
Tests: rows in TestHandActsReadsItsOwnLogAlone (84,000 entries with 3 in the window read one page; 40 acts of 40 KiB cut under 1 MiB; time budget; a page capped at 4 entries; 20,000 short acts under 1 MiB) and a healers row; each failed against the old code. vet, vet -tags integration, tests and the integration test pass in mesh-hand-acts and mesh-healers. No manifest change.
After delivery: `hand-acts {days: 1}` names what wrote ~83,500 acts in 12 days.
A recovery fix (recovery-fixes-merge-and-tell): small, undone by one revert; the delivery seat serves no recovery merge, so it takes the operator's Approve.
Reviewed-by: mesh-code-reviewer for lead-47@shanks at 443a340f06ccdf48dbccdefb21c25374e503666f (reviewed at acc181aa; rebased onto main 503411e6 with identical commits)
https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
hand-acts read the whole log (84k entries, 47 MB) on every call and could never answer inside the call bound or
the bus payload. It now reads from the newest entry backwards, page by page, and stops at the window's start, at
900 KiB of acts or at 20 s, saying complete: false, cut and why. warrants is bounded the same way. mesh-healers'
start-up seed takes a partial answer and logs it, instead of retrying forever.
Quick fix: this (mesh-catalog only, about 1.5 h). Thorough fix: also the tool runner never freezing on an oversized
bundle line and logging unanswered calls (mesh-tools, a separate fix by another developer, lead's ruling Q3), and an
SDK-side bound. Chosen here: quick for this module, the thorough part running beside it; the byte cap is the
module's own (lead's ruling Q1, a `limit` argument is a later note).
Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
Deliverynovox/mesh-catalog@443a340f06cc — merged since 2026-11-09T17:55:12Z
Source — source.main moved to novox/mesh-catalog@4387e77f28. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-09 17:23 (new) → proposed (announced): novox/mesh-catalog#642's head announced
2026-11-09 17:23 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 17:55 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@443a340f06cc` — **merged** since 2026-11-09T17:55:12Z
**Source** — source.main moved to novox/mesh-catalog@4387e77f2899. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-09 17:23 (new) → proposed (announced): novox/mesh-catalog#642's head announced
- 2026-11-09 17:23 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 17:55 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 S8 (prepare hq .work/1966-s8-hand-acts.md).
mesh-hand-acts' tools on novox did not answer within 30 s, met at least four times; mesh-healers has had no answer since 2026-11-07. Cause:
hand-actsread the whole acts log (84,080 entries, 46.8 MB) on every call and applied the window afterwards; the 14-day answer was ~47 MB, over the tool runner's 16 MiB line cap, which froze the runner (fixed separately in mesh-tools, fix/1966-s8-runner-frozen).hand-actsreads from the newest entry backwards within the window, reads on when the runtime ends a page early, and stops at 900 KiB of acts as answered, 20 s or the window's start, sayingcomplete,cutandwhy;completeis true when every act of the window asked was read.warrantsis capped by the same byte limit.mesh-healers'
Seededtakes a partial answer and says so.Quick fix (this): bound the answer by bytes and time.
Thorough fix: a
limitargument and anidread in the seat's contract (later note); the runner fix removes the freeze for every module.Tests: rows in TestHandActsReadsItsOwnLogAlone (84,000 entries with 3 in the window read one page; 40 acts of 40 KiB cut under 1 MiB; time budget; a page capped at 4 entries; 20,000 short acts under 1 MiB) and a healers row; each failed against the old code. vet, vet -tags integration, tests and the integration test pass in mesh-hand-acts and mesh-healers. No manifest change.
After delivery:
hand-acts {days: 1}names what wrote ~83,500 acts in 12 days.A recovery fix (recovery-fixes-merge-and-tell): small, undone by one revert; the delivery seat serves no recovery merge, so it takes the operator's Approve.
Reviewed-by: mesh-code-reviewer for lead-47@shanks at
443a340f06(reviewed at acc181aa; rebased onto main503411e6with identical commits)https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
Delivery
novox/mesh-catalog@443a340f06cc— merged since 2026-11-09T17:55:12ZSource — source.main moved to novox/mesh-catalog@4387e77f28. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.