Channels: inbound message left as stale composer render with empty input buffer (lost-Enter ghost) — never submits, retry re-ghosts
Open 💬 0 comments Opened Jun 12, 2026 by lucgrn3
Environment
- Claude Code CLI 2.1.169 (Linux, headless: systemd unit running
claude --channels plugin:telegram@claude-plugins-officialinside tmux,pipe-panelogging) - Telegram channels plugin 0.0.6
Summary
An inbound channel message is sometimes left painted in the composer (❯ <text>) with an EMPTY input buffer — a stale render. The message never submits, and because the buffer is empty no Enter keypress (from the plugin or injected via tmux send-keys) can ever submit it.
Evidence that it's a render artifact, not a staged draft
- Composer shows
❯ Yes fix it(an inbound channel message that never produced a user turn in the transcript). tmux send-keys Enter→ nothing happens, text still displayed.tmux send-keys -l 'x'→ composer re-renders as❯ x(not❯ Yes fix itx) — the buffer held nothing; the text was only painted.C-uis a no-op (empty buffer = no redraw), which makes the ghost look "stuck" to any watchdog that tries to clear it.
Additional behavior
- The plugin retries delivery of the unacked message after a session restart — and the retry ghosts again, deterministically, for the same message.
- Frequency is intermittent and worst under rapid consecutive inbound messages.
Impact
Unattended sessions silently miss messages. There is no programmatic recovery: the text exists only as pixels in the pane; the only options are OCR-from-pane or asking the sender to resend.
Ask
Is this fixed in ≥2.1.170? If the injection path wrote the buffer and submitted atomically (or verified submission and re-staged on failure), this class would disappear.