Skip to content

Fix kanban quick input to send literal text via tmux#521

Merged
bborn merged 1 commit intomainfrom
task/2097-audit-kanban-quick-input-function
Mar 22, 2026
Merged

Fix kanban quick input to send literal text via tmux#521
bborn merged 1 commit intomainfrom
task/2097-audit-kanban-quick-input-function

Conversation

@bborn
Copy link
Copy Markdown
Owner

@bborn bborn commented Mar 22, 2026

Summary

  • Bug found: sendTextToExecutor used SendKeyToPane which passes user text to tmux send-keys without the -l (literal) flag. If user input matched a tmux key name (e.g. "Enter", "Escape", "Space", "Tab"), it would be interpreted as a key press instead of literal text.
  • Fix: Added SendLiteralTextToPane that sends text with -l flag (ensuring literal interpretation), then sends Enter as a separate key press.
  • Tests: Added TestQuickInput_EnterWithTextSendsAndUnfocuses and TestQuickInput_EnterWithTextNoSelectedTask to cover the send-text-on-enter path and the nil-task edge case.

Audit findings

The kanban quick input function mostly works but had one correctness bug:

Area Status Notes
Tab activation guard OK Only activates when task needs input
Esc/empty-enter unfocus OK Properly clears state
View routing OK Intercepts all msg types when focused
Prompt rendering OK Shows input bar with hints
State cleanup on send OK Clears value, blurs, unfocuses
Log resolution OK "Replied from kanban" matches resolver
tmux text sending Fixed Was missing -l flag for literal text

Test plan

  • All existing QuickInput tests pass
  • New tests for enter-with-text and nil-task cases pass
  • Full test suite passes (ui, executor, db, config)
  • Build compiles cleanly

🤖 Generated with Claude Code

sendTextToExecutor was using SendKeyToPane which passes user text directly
to tmux send-keys without the -l flag. If user text matched a tmux key name
(e.g. "Enter", "Escape", "Space"), it would be interpreted as a key press
instead of literal text. Added SendLiteralTextToPane that uses -l for the
text portion and sends Enter separately.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bborn bborn merged commit c1b7ae5 into main Mar 22, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant