Recovery fix (instruction recovery-fixes-merge-and-tell; nothing-moved-in-five-minutes: make it visible), issue 1966.
Why. Every call of the seat mesh-hand-acts' verbs times out at 30 s since 2026-11-08 15:21 UTC (its log's last act), so every hand tool that records a hand act first hangs. The runtime says nothing: the bundle's own state and log requests mostly get no answer, and nothing logs it. The bus's refusals of its replies are late answers (allow_responses ttl 1 minute), not the cause. Cause not yet known; this makes it readable.
Change. node-tools/internal/launch/launch.go: when a bundle's mesh/state., mesh/log. or bus-state request fails, the runtime logs [mesh-tools] <module>'s bundle asked <method> and it failed after <time>: <error>. A lost compare-and-set (code -32010, the normal answer of two writers) is not said. The answer the bundle gets is unchanged; no value reaches the log.
Quick or thorough. Quick: this log line (chosen: the only part proven, and it names the failing request on the next hang). Thorough: note 105's test, the real runtime in front of the real bundle on a bus loaded with the composed users; a harness for that is to be built.
Tests. TestAFailedStateOperationIsSaidInTheRuntimesLog (a refused get is said, a lost compare-and-set is not; waits on a channel, no sleep); go vet, go vet -tags integration, go test ./... in node-tools pass; mutation-checked both ways.
Reviewed-by: mesh-code-reviewer@shanks at 634c77f90f
Recovery fix (instruction recovery-fixes-merge-and-tell; nothing-moved-in-five-minutes: make it visible), issue 1966.
**Why.** Every call of the seat mesh-hand-acts' verbs times out at 30 s since 2026-11-08 15:21 UTC (its log's last act), so every hand tool that records a hand act first hangs. The runtime says nothing: the bundle's own state and log requests mostly get no answer, and nothing logs it. The bus's refusals of its replies are late answers (allow_responses ttl 1 minute), not the cause. Cause not yet known; this makes it readable.
**Change.** node-tools/internal/launch/launch.go: when a bundle's mesh/state.*, mesh/log.* or bus-state request fails, the runtime logs `[mesh-tools] <module>'s bundle asked <method> and it failed after <time>: <error>`. A lost compare-and-set (code -32010, the normal answer of two writers) is not said. The answer the bundle gets is unchanged; no value reaches the log.
**Quick or thorough.** Quick: this log line (chosen: the only part proven, and it names the failing request on the next hang). Thorough: note 105's test, the real runtime in front of the real bundle on a bus loaded with the composed users; a harness for that is to be built.
**Tests.** TestAFailedStateOperationIsSaidInTheRuntimesLog (a refused get is said, a lost compare-and-set is not; waits on a channel, no sleep); go vet, go vet -tags integration, go test ./... in node-tools pass; mutation-checked both ways.
Reviewed-by: mesh-code-reviewer@shanks at 634c77f90f9813746d58d1d5b83361c5415dd858
**Undo:** revert this merge.
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Deliverynovox/mesh-tools@634c77f90f98 — merged since 2026-11-09T07:03:45Z
Source — source.main moved to novox/mesh-tools@27710ccabd. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-09 01:24 (new) → proposed (announced): novox/mesh-tools#63's head announced
2026-11-09 01:24 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 07:03 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@634c77f90f98` — **merged** since 2026-11-09T07:03:45Z
**Source** — source.main moved to novox/mesh-tools@27710ccabd53. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-09 01:24 (new) → proposed (announced): novox/mesh-tools#63's head announced
- 2026-11-09 01:24 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 07:03 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.
Recovery fix (instruction recovery-fixes-merge-and-tell; nothing-moved-in-five-minutes: make it visible), issue 1966.
Why. Every call of the seat mesh-hand-acts' verbs times out at 30 s since 2026-11-08 15:21 UTC (its log's last act), so every hand tool that records a hand act first hangs. The runtime says nothing: the bundle's own state and log requests mostly get no answer, and nothing logs it. The bus's refusals of its replies are late answers (allow_responses ttl 1 minute), not the cause. Cause not yet known; this makes it readable.
Change. node-tools/internal/launch/launch.go: when a bundle's mesh/state., mesh/log. or bus-state request fails, the runtime logs
[mesh-tools] <module>'s bundle asked <method> and it failed after <time>: <error>. A lost compare-and-set (code -32010, the normal answer of two writers) is not said. The answer the bundle gets is unchanged; no value reaches the log.Quick or thorough. Quick: this log line (chosen: the only part proven, and it names the failing request on the next hang). Thorough: note 105's test, the real runtime in front of the real bundle on a bus loaded with the composed users; a harness for that is to be built.
Tests. TestAFailedStateOperationIsSaidInTheRuntimesLog (a refused get is said, a lost compare-and-set is not; waits on a channel, no sleep); go vet, go vet -tags integration, go test ./... in node-tools pass; mutation-checked both ways.
Reviewed-by: mesh-code-reviewer@shanks at
634c77f90fUndo: revert this merge.
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Delivery
novox/mesh-tools@634c77f90f98— merged since 2026-11-09T07:03:45ZSource — source.main moved to novox/mesh-tools@27710ccabd. 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.