mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-10 09:19:42 +02:00
docs: fix the zh-CN agent recipe, the \r gotcha, and the agent-control plan status
README.zh-CN.md taught a recipe that cannot work: its programmatic-input example had no trailing `\r`, so Enter was never sent and the prompt sat unsubmitted forever, and its read step used `/output`, whose `textOutput` is always empty for interactive tmux-backed sessions. A reader following the Chinese README walked into both of the silent failures the English one warns about. Its agent/automation section is now brought in line with README.md: the `\r` rule and every example that needs it, and the correct read path. CLAUDE.md's "Single-line prompts only" gotcha described the newline restriction but never mentioned that input must end with `\r` or Enter is never sent, which is the most common silent failure when driving the API. docs/agent-control-plan.md asserted as still-open several things that shipped in 1.14.1 and 1.14.2 (the wait endpoints, the packaged skill, the install CLI, agentSkillEnabled). The status header and the stale bullets now match reality; the historical design content is untouched, since the document is a record. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -120,7 +120,7 @@ Codeman is a Claude Code session manager with web interface and autonomous Ralph
|
||||
|
||||
## Common Gotchas
|
||||
|
||||
- **Single-line prompts only** — `writeViaMux()` sends text+Enter separately; multi-line breaks Ink
|
||||
- **Single-line prompts only** — `writeViaMux()` sends text+Enter separately; multi-line breaks Ink. ⚠️ **Input must END with `\r` or Enter is never sent**: `sendInput()` only issues `send-keys Enter` when the payload contains a carriage return, a `\r`-less `POST /api/sessions/:id/input` still succeeds (send-and-wait even reports `delivered:true`) while the text sits unsubmitted on the composer, and any `wait` burns its whole timeout on a turn that never started. Embedded newlines are stripped, not rejected, so `"echo A\necho B\r"` runs the joined `echo Aecho B`
|
||||
- **ESM only** — Never `require()`, use `await import()`. `tsx` masks CJS/ESM issues in dev but production breaks
|
||||
- **Package ≠ product name** — npm: `aicodeman`, product: **Codeman**. Release renames tags accordingly. Both `aicodeman` and `codeman` bin aliases are installed (`package.json` `bin`)
|
||||
- **Global regex `lastIndex`** — Shared `g`-flag patterns in loops must reset `lastIndex = 0` first, or use the `execPattern()` helper in `utils/regex-patterns.ts` (resets automatically)
|
||||
|
||||
Reference in New Issue
Block a user