|
tui: bash-style message history (Up/Down recall, per-session, in-memory)
On an empty prompt with the hints list closed, Up recalls the previous submitted message and Down moves toward the most recent; Down past the newest restores the empty draft. Like a shell history: - InputBox owns the per-session history (capped at the 10 most recent, with consecutive-duplicate suppression) plus the browsing index and saved draft. - _PromptInput._on_key enters history mode on Up only when the field is empty and the hints list is not open; while hints are open Up/Down still navigate command matches, and a non-empty field uses TextArea's multiline cursor. - Only plain user messages are recorded — slash commands and !shell are not remembered (they are not messages to the agent). The raw typed text is stored. - on_user_submitted records a plain submit; attach_session resets the history on session switch/resume (the history is in-memory per session, not synced to the server, by design). Tests: append cap/dedup/skip-commands, up/down navigation, reset, Up-recall / Down-draft / Up-non-empty-no-recall over pilot, submit records plain (not /commands). Full suite: 964 passed, 1 skipped. |
|---|
|
|
| clients/terminal/tui/tui_app.py |
|---|
| clients/terminal/tui/widgets/input_box.py |
|---|
| tests/clients/test_input_box.py |
|---|