feat: implement terminal style chat history#1778
feat: implement terminal style chat history#1778PratyushChauhan wants to merge 6 commits intopingdotgg:mainfrom
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Video: 2026-04-06.14-55-36.mp4 |
- Clear navigation history when resetting the local composer state - Drop any saved draft so a new thread starts clean
- Unify ArrowUp/ArrowDown prompt history handling in ChatView - Preserve draft restoration when leaving history mode
ApprovabilityVerdict: Needs human review This PR adds a new user-facing feature (terminal-style history navigation) that changes keyboard handling behavior. Additionally, an unresolved review comment identifies a bug where the implementation breaks normal cursor navigation in multi-line prompts. Human review recommended to address the identified issue before merging. You can customize Macroscope's approvability policy. Learn more. |
- Clear prompt history state when sending a plan or slash command - Prevent stale draft restoration after submission
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit cd7686d. Configure here.
- Recompute the composer trigger after loading the next draft - Keeps autocomplete state in sync with the restored prompt

closes #1777
What Changed
Pressing
↑/↓in the composer input navigates through previously sent user messages, shell-style. The live draft is saved when you first press↑and restored when you↓back past the most recent message. History index resets on send.Why
Retyping or slightly tweaking a previous prompt is a common workflow. Every terminal does this — it's muscle memory. The composer already had the full message history available; this just wires
↑/↓intoonComposerCommandKey(where Enter/Tab/menu-navigation already live) using two refs. No new files, no new state, no re-renders.UI Changes
No visual changes — interaction only. Navigation only activates when no autocomplete menu is open, so
@-mention and/-command menus are unaffected.Checklist
Note
Low Risk
Low risk, localized to composer key handling in
ChatView.tsx; main risk is unintended interaction with existing keyboard shortcuts/autocomplete or draft state edge cases.Overview
Adds terminal-style message history navigation to the chat composer:
ArrowUpcycles through previously sent user messages (most recent first) andArrowDownreturns back toward the current draft.The current draft is saved on first entry into history mode and restored when returning to the live draft; history state is reset/cleared on thread changes and after send flows (normal send, plan follow-up submit, and standalone slash commands).
Reviewed by Cursor Bugbot for commit baf11f2. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
[!NOTE]
Add terminal-style chat history navigation to the composer
savedDraftRefand restored when navigating back to index-1.-1and the saved draft is cleared.Macroscope summarized baf11f2.