The decisive evidenceA completion menu, mangled command, or bare PS2 prompt points to readline. Replaced characters without that evidence keep PTY transport corruption open.
Route the terminal tail, not the symptom.
Why it looks random.
Only some UTF-8 byte sequences select a blocking binding. One CJK command can pass while another opens completion or leaves Bash waiting for a continuation.
Use the narrow workaround.
- id: terminal-bash
name: '@deepseek-ai/dsh-terminal-bash'
config:
timeoutMs: 300000
shellArgs: [--noprofile, --norc, --noediting, -i]
Do not just extend the timeout.
Disable readline in the actual preset loader row, create a new Session, and repeat a side-effect-free A/B matrix. A settings block with no registered namespace does not configure the plugin.
Acceptance gates.
- Empty host locale is tested.
- Multiple CJK strings pass.
- Emoji round-trips.
- Prompt marker returns.
- Exit status survives.
- Cancellation still resets safely.
Primary evidence.
- C-locale readline reproduction #3522
- Earlier PTY corruption reproduction #3391
- rc.8 child environment
- rc.8 Bash defaults
Keep the complete compatibility runbook.
The canonical guide includes the diagnostic matrix, exact preset workaround, durable fix boundary, and eight regression gates.
Read the full runbookStar on GitHub