Repository navigation
feat(vscode): scope prompt input history to each conversation - #14632
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (5 files)
Previous Review Summaries (6 snapshots, latest commit daa80f4)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit daa80f4)Status: No Issues Found | Recommendation: Merge Files Reviewed (31 files)
Previous review (commit 36fd092)Status: No Issues Found | Recommendation: Merge Incremental re-review of commit Files Reviewed (29 files)
Previous review (commit 2e9c6fd)Status: No Issues Found | Recommendation: Merge Incremental re-review of the fix commits: prior findings (cross-conversation Files Reviewed (7 files)
Previous review (commit dbee862)Status: No Issues Found | Recommendation: Merge Files Reviewed (5 files)
Previous review (commit fc3910b)Status: 3 Issues Found | Recommendation: Address before merge The latest commit ( Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (4 files)
Fix these issues in Kilo Cloud Previous review (commit fca1138)Status: 3 Issues Found | Recommendation: Address before merge The change cleanly scopes prompt history per conversation and adds targeted tests, but the new Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (4 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
fca1138 to
fc3910b
Compare
… and side-effecting accessor Addresses PR review feedback on #14632: - history.append() now accepts an optional targetKey so a send that completes after the user switches conversations still credits the conversation it was actually sent to, instead of whichever conversation is now active. Threaded through PromptInput's handleSend/clearDraft and the goal composer's send/begin/move/finish so both the direct-send and Goal-mode paths are covered. - The per-conversation store no longer grows without bound: reads (ArrowUp) never allocate a bucket, and buckets are capped at MAX_CONVERSATIONS with LRU eviction. - The exposed index accessor is now a pure signal read with no side effects; key-change resets happen only from action methods (navigate/append/seed).
|
Addressed all three review comments in dbee862:
Also updated the pre-existing |
…-prompt-history # Conflicts: # packages/kilo-vscode/webview-ui/src/hooks/usePromptHistory.ts
…o-Org/kilocode into feat/per-conversation-prompt-history
…o-Org/kilocode into feat/per-conversation-prompt-history
Closes #14553
Prompt input history (ArrowUp/ArrowDown recall) is one list shared by every conversation. This adds an option to keep it separate per conversation.
Change
kilo.prompt-history.v1key and format, with no length limit, and is still seeded from session messages (including prompts sent from the TUI). Users who never enable the switch never write anything new to storage.kilo.prompt-history.v2key and restored when the conversation is reopened. The two lists are kept apart, so switching the setting loses nothing.Testing
Unit tests cover isolation, the shared mode, eviction, the entry cap, and storage load/save/quota paths. I also compared the old hook and the new shared mode on random operation sequences: results, index and saved bytes were identical.