From a371ee998efea9e7e30c9c46404b4bf7d79b6e66 Mon Sep 17 00:00:00 2001 From: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 03:40:52 +0000 Subject: [PATCH] docs(imessage): warn that cliPath wrappers must stream JSON-RPC stdio (#84330) --- docs/channels/imessage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/channels/imessage.md b/docs/channels/imessage.md index e62061e0cfbf..79817c06911c 100644 --- a/docs/channels/imessage.md +++ b/docs/channels/imessage.md @@ -127,7 +127,7 @@ Any `cliPath` wrapper or SSH proxy you put in front of `imsg` MUST behave like a - Avoid fixed-size blocking reads (`read(4096)`, `cat | buffer`, default shell `read`) that can starve small frames. - Keep stderr separate from the JSON-RPC stdout stream. -A wrapper that buffers stdin until a large block fills will produce symptoms that look like an iMessage outage — `imsg rpc timeout (chats.list)` or repeated channel restarts — even though `imsg rpc` itself is healthy. `ssh -T host imsg "$@"` (above) and `socat - EXEC:"ssh host imsg",pty,stderr` are safe. Pipelines like `ssh host imsg | grep -v '^DEBUG'` are NOT — line-buffered tools can still hold frames; use `stdbuf -oL -eL` on every stage if you must filter. +A wrapper that buffers stdin until a large block fills will produce symptoms that look like an iMessage outage — `imsg rpc timeout (chats.list)` or repeated channel restarts — even though `imsg rpc` itself is healthy. `ssh -T host imsg "$@"` (above) is safe because it forwards OpenClaw's `cliPath` arguments such as `rpc` and `--db`. Pipelines like `ssh host imsg | grep -v '^DEBUG'` are NOT — line-buffered tools can still hold frames; use `stdbuf -oL -eL` on every stage if you must filter.