From 302e2660bea3243db66483104a040f61de1d49e5 Mon Sep 17 00:00:00 2001 From: "Claudia[bot]" <4437565+Claudia[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:19:48 +0200 Subject: [PATCH] docs: sendwait takes one line; give the submit-check reason in tui.md verbs.md section 5.3 (both copies): sendwait's Enter loop and the server's submit check cannot reliably recognise a multi-line paste, so join the lines or use a file (section 5.9). docs/tui.md gives the same reason instead of the composer one. Co-Authored-By: Christian Haberl <116439789+christianhaberl@users.noreply.github.com> Co-Authored-By: Claude --- docs/tui.md | 6 +++--- plugins/codeman/skills/codeman/reference/verbs.md | 6 +++++- skills/codeman/reference/verbs.md | 6 +++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/tui.md b/docs/tui.md index 9907d5f1..ec07bb7d 100644 --- a/docs/tui.md +++ b/docs/tui.md @@ -136,9 +136,9 @@ instead of failing silently; `Enter` and `1-9` keep working. ### `p` sends exactly one line -The composer is a single line by design, ending in a carriage return: that is the -input contract every Codeman path follows, because multi-line text breaks the -agent's own composer. Pasted newlines become spaces rather than being rejected, so +The composer is a single line by design, ending in a carriage return, because the +server's submit check cannot reliably recognise a multi-line paste: a prompt it cannot +see on the composer line is not re-submitted when the agent ignored the first Enter. Pasted newlines become spaces rather than being rejected, so a paste cannot silently run a different command than the one you read. ## Answering approvals diff --git a/plugins/codeman/skills/codeman/reference/verbs.md b/plugins/codeman/skills/codeman/reference/verbs.md index cda70197..a4f43d5a 100644 --- a/plugins/codeman/skills/codeman/reference/verbs.md +++ b/plugins/codeman/skills/codeman/reference/verbs.md @@ -304,7 +304,11 @@ Codeman types the text and sends Enter **only when the input contains a carriage return**; without it your command sits unsubmitted on the worker's prompt and everything downstream times out. No response field catches this: `delivered:true` means "written to the pane", **not** "submitted". With `useMux`, newlines are kept: the -text goes in as one paste, and the `\r` submits all of it. Build the body with `jq -n` +text goes in as one paste, and the `\r` submits all of it. **`sendwait` takes one line, +though:** its Enter loop and the server's submit check cannot reliably recognise a +multi-line paste, so a multi-line prompt to a freshly spawned worker can sit unsent in +Claude Code's Enter-ignore window. Join the lines, or put long multi-line content in a +file ([§5.9](#59-big-input-via-the-workspace)). Build the body with `jq -n` for any prompt you did not author as a literal, because the inline `-d '{"input":"'"$P"'\r"}'` pattern breaks on the first double quote, backslash or `$` in a real prompt: diff --git a/skills/codeman/reference/verbs.md b/skills/codeman/reference/verbs.md index cda70197..a4f43d5a 100644 --- a/skills/codeman/reference/verbs.md +++ b/skills/codeman/reference/verbs.md @@ -304,7 +304,11 @@ Codeman types the text and sends Enter **only when the input contains a carriage return**; without it your command sits unsubmitted on the worker's prompt and everything downstream times out. No response field catches this: `delivered:true` means "written to the pane", **not** "submitted". With `useMux`, newlines are kept: the -text goes in as one paste, and the `\r` submits all of it. Build the body with `jq -n` +text goes in as one paste, and the `\r` submits all of it. **`sendwait` takes one line, +though:** its Enter loop and the server's submit check cannot reliably recognise a +multi-line paste, so a multi-line prompt to a freshly spawned worker can sit unsent in +Claude Code's Enter-ignore window. Join the lines, or put long multi-line content in a +file ([§5.9](#59-big-input-via-the-workspace)). Build the body with `jq -n` for any prompt you did not author as a literal, because the inline `-d '{"input":"'"$P"'\r"}'` pattern breaks on the first double quote, backslash or `$` in a real prompt: