fix(macos): keep node invokes responsive during system.run#100842
Conversation
|
@clawsweeper review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Codex review: stale review; fresh review needed. Summary Next step |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
37b0d77 to
9310e39
Compare
|
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Merged via squash.
|
…100842) * fix(macos): keep app node connected after system.run invoke * fix(macos): document node invoke receive isolation --------- Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
…100842) * fix(macos): keep app node connected after system.run invoke * fix(macos): document node invoke receive isolation --------- Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
Closes #89423
What Problem This Solves
Fixes an issue where the macOS app node could stop receiving gateway frames while a
system.runinvoke was still in flight, causing the gateway to mark the otherwise-running node offline.Why This Change Was Made
Invoke execution now runs independently from the WebSocket receive callback while preserving the existing channel-generation guard, so late results cannot leak onto a replacement connection. The regression test blocks one
system.run, proves a second invoke is received and answered before the first completes, then verifies the blocked result is delivered.User Impact
Longer macOS
system.runcommands no longer stall unrelated node traffic or force an avoidable reconnect.Evidence
9310e393ef0e4434e86773d20d3dd249249202d2.28789889999, includingmacos-swift,macos-node, iOS build, and Android build/test lanes.mainwithOPENCLAW_TESTBOX=1 bash scripts/pr prepare-run 100842.swiftformat --lint ... --config config/swiftformatpassed for both changed Swift files.swift build --package-path apps/shared/OpenClawKit --target OpenClawKitpassed.