v3.19.0 — 2026-06-02
TUI-mode reliability + proxy-purity release. Two fixes diagnosed and verified live on both test hosts (PI231 / Oracle, claude 2.1.104 / 2.1.114), each its own PR with a fresh-context reviewer (Iron Rule 10), then an adversarial multi-host test battery (0 hangs / 0 crashes / 0 injection / 0 leaks). The default path (CLAUDE_TUI_MODE unset) is byte-for-byte unchanged.
TUI
- #130 — Fixed the "stuck typing" hang on large multi-line prompts. Three root causes: (1) terminal-turn detection only recognized
{system, turn_duration}, which older claude builds (e.g. 2.1.114) don't emit → the reader ran to the wallclock and returned partial text; now also accepts anassistantline with a finalstop_reason(end_turn/stop_sequence/max_tokens), whiletool_usestays non-terminal. (2) Large prompts pasted viasend-keys -ldelivered embedded newlines as separate Enter events → the prompt never landed; now usestmux load-buffer+paste-buffer -p(bracketed paste, atomic). (3) The paste-landed check false-positived on claude's empty curly-quote placeholder → Enter fired into an empty box; now positive-signal-only ([Pasted text]/ prompt text) with a readiness/paste-verify poll + fast-fail (deterministic ~5s error instead of a 120s wallclock hang). - #4 — TUI-mode never injects the host's
CLAUDE.md/ auto-memory into proxied turns. OCP is a proxy: the proxied client (OpenClaw / an IDE) owns its own context and memory.buildTuiCmdnow always setsCLAUDE_CODE_DISABLE_CLAUDE_MDS+CLAUDE_CODE_DISABLE_AUTO_MEMORY(unconditional — proxy purity is not an opt-in). Verified live with a markerCLAUDE.md: obeyed by the proxied turn before the fix, blocked after, on both hosts. Residual host-context vectors (managed-policy /settings.json/ output-styles) tracked in #133. The env is delivered via anenv-prefix on the tmux pane command (tmux does not forward the spawning process's environment, andnew-session -erequires tmux ≥3.2 while the cloud host runs 2.7).