mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-07-09 17:29:12 +00:00
feat(tui): include shell commands in input history (#1295)
* feat(tui): include shell commands in input history Shell commands entered through the `!` prompt are now saved to input history. Recalling one restores bash mode, and in bash mode Up only cycles through previous shell commands while a normal prompt browses all history. * docs(interaction): document shell command recall in input history Note that shell commands are now saved to input history and can be recalled in Shell mode, in both the English and Chinese interaction guides. * feat(pi-tui): add setHistoryFilter and onRecall to editor history Add two first-class hooks to the editor's history navigation: setHistoryFilter to limit which entries Up/Down visit, and onRecall to decorate a recalled entry before it is shown. Draft restore, direction-aware cursor placement, and undo behavior are unchanged. * refactor(tui): use pi-tui history filter for shell command recall Replace the CustomEditor navigateHistory shadow with pi-tui's setHistoryFilter + onRecall hooks, wired in the editor-keyboard controller. This keeps pi-tui's draft-restore and direction-aware cursor behavior intact (the shadow dropped both) and moves the shell/prompt filtering and mode-restore logic into the business layer. * feat(pi-tui): save and restore host state with the history draft Add onHistoryDraftSave/onHistoryDraftRestore hooks so hosts can stash their own state when entering history browsing and restore it when the user navigates back to the draft. The saved host state is discarded when browsing ends any other way (typing, submit), mirroring the editor draft lifecycle. * fix(tui): restore input mode when returning to the history draft Wire pi-tui's history draft save/restore hooks to the editor input mode. Without this, recalling a shell entry and then pressing Down back to an empty draft left the editor in bash mode, so the next typed message was submitted as a shell command. * fix(pi-tui): capture host draft state before running the history filter Fire onHistoryDraftSave before the history filter runs when entering browse, so the host's filter can read the browse-entry mode rather than a mode that changes as entries are recalled. The captured state is still only committed once a matching entry is found. * fix(tui): lock history filter to the browse-entry mode Lock the history filter to the input mode captured when entering browse. Previously the filter read inputMode live, so after recalling a shell entry (which flips to bash mode) a second Up would only show shell commands.
This commit is contained in:
parent
2639786ce5
commit
77eb3a9fe4
13 changed files with 373 additions and 15 deletions
5
.changeset/pi-tui-history-filter.md
Normal file
5
.changeset/pi-tui-history-filter.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@moonshot-ai/pi-tui": patch
|
||||
---
|
||||
|
||||
Add history hooks to the editor so hosts can filter entries (`setHistoryFilter`), decorate recalled entries (`onRecall`), and save and restore their own state alongside the history draft (`onHistoryDraftSave` / `onHistoryDraftRestore`).
|
||||
5
.changeset/shell-input-history.md
Normal file
5
.changeset/shell-input-history.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@moonshot-ai/kimi-code": patch
|
||||
---
|
||||
|
||||
Save shell commands to input history and recall them in bash mode. Press Up on an empty `!` prompt to browse previous shell commands.
|
||||
Loading…
Add table
Add a link
Reference in a new issue