fix(skill): sendwait joins a multi-line prompt onto one line

sendwait posted its prompt as is. With the mux now keeping line breaks, a
multi-line prompt goes in as a paste, and right after spawn_worker returns it
can land inside Claude Code's Enter-ignore window. Neither the Enter loop
here nor the server's submit check recognises a pasted block that is still on
the composer, so `Review this:\n- item 1` sat unsent while the re-wait ran
out. sendwait now trims each line, drops blank ones and joins the rest with a
space before building the body, the same result as toSingleLine, like every
other waiting sender.

The preamble stamp moves to 1.43.1 so cached preambles pick the change up;
the plugin mirror is regenerated with scripts/sync-plugin.mjs. The new test
runs the real preamble.sh with CURL stubbed and fails without the join.
docs/api-reference.md gets the submit-check sentence the README and wiki
already carry.

Co-Authored-By: Christian Haberl <116439789+christianhaberl@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
committed 2026-10-21 23:31:05 +02:00
1 parent 302e2660be
commit 2fe9105bab
8 files changed
+137 -19

No files matched your search

+3 -1
View File
@@ -437,7 +437,9 @@ the raw write, and an explicit `"useMux": false` forces it.
With `"useMux": true`, a line feed is kept: the text goes in as one bracketed paste
(`\r\n` read as `\n`, leading and trailing line breaks dropped), then Enter if the
input carried a `\r`; a pane that has not enabled bracketed paste receives each line
break as a carriage return and runs the lines as they arrive.
break as a carriage return and runs the lines as they arrive. The check that
re-presses a stranded Enter cannot reliably recognise a multi-line paste, so a long
multi-line prompt to a just-started agent is still safer in a file it is told to read.
```bash
curl -s -X POST "$API/api/v1/sessions/$SID/input" \