Skip to content

feat(tui): add Ctrl+S stash/restore for input draft#479

Open
Kailigithub wants to merge 1 commit into
lsdefine:mainfrom
Kailigithub:feat/tui-stash-draft-426
Open

feat(tui): add Ctrl+S stash/restore for input draft#479
Kailigithub wants to merge 1 commit into
lsdefine:mainfrom
Kailigithub:feat/tui-stash-draft-426

Conversation

@Kailigithub
Copy link
Copy Markdown
Contributor

Summary

在 TUI 输入框中新增 Ctrl+S 快捷键,实现"暂存草稿 / 恢复草稿"功能,对齐 Claude Code 的 chat:stash 交互模式。

Motivation

在 TUI 中与 agent 对话时,用户经常遇到这种情况:正在输入框里写一段比较长的提示词,还没写完,突然想到需要先问另一个问题(比如查一个文件、确认一个前置信息),但又不希望丢失当前已经打好的草稿。

目前只能手动复制粘贴到别处,或者硬着头皮先发出去再追加补充,体验不好。

Changes

  • InputArea.BINDINGS:新增 Binding("ctrl+s", "stash", "Stash", show=False)
  • InputArea.__init__:新增 self._draft_stash: str = "" 实例变量
  • InputArea.action_stash:新增方法,实现:
    • 输入框有内容时:将当前内容保存到 _draft_stash,清空输入框,重置历史状态
    • 输入框为空时(且有暂存内容):将 _draft_stash 内容恢复到输入框
    • 输入框为空且无暂存内容时:无操作

Behavior

操作 效果
Ctrl+S(有内容) 保存草稿 → 清空输入框
Ctrl+S(空输入) 恢复上次暂存的草稿
Ctrl+S(空输入 + 无草稿) 无操作

Note: Ctrl+S 在 v2 中未被占用,老版 tuiapp.py 中曾用作 Stop,但 v2 已改为 Ctrl+C

Press Ctrl+S once to stash current input and clear the field; press
Ctrl+S again (when input is empty) to restore the stashed draft. Aligns
with Claude Code's chat:stash muscle-memory.
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