summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useHistoryManager.ts
diff options
context:
space:
mode:
authorMarat Boshernitsan <[email protected]>2025-06-03 23:01:26 -0700
committerGitHub <[email protected]>2025-06-03 23:01:26 -0700
commit7de790fbf236193191a33482793ee3ec5943d62d (patch)
tree793bd860550f91238e91b65177c88b53c6b820b7 /packages/cli/src/ui/hooks/useHistoryManager.ts
parentc313762ba06ab1324dccd4c7663038cb56d24e53 (diff)
Fix several bugs in prompt history (#734)
Co-authored-by: Marat Boshernitsan <[email protected]>
Diffstat (limited to 'packages/cli/src/ui/hooks/useHistoryManager.ts')
-rw-r--r--packages/cli/src/ui/hooks/useHistoryManager.ts18
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/cli/src/ui/hooks/useHistoryManager.ts b/packages/cli/src/ui/hooks/useHistoryManager.ts
index 424f1fb6..f82707ef 100644
--- a/packages/cli/src/ui/hooks/useHistoryManager.ts
+++ b/packages/cli/src/ui/hooks/useHistoryManager.ts
@@ -43,8 +43,22 @@ export function useHistory(): UseHistoryManagerReturn {
(itemData: Omit<HistoryItem, 'id'>, baseTimestamp: number): number => {
const id = getNextMessageId(baseTimestamp);
const newItem: HistoryItem = { ...itemData, id } as HistoryItem;
- setHistory((prevHistory) => [...prevHistory, newItem]);
- return id; // Return the generated ID
+
+ setHistory((prevHistory) => {
+ if (prevHistory.length > 0) {
+ const lastItem = prevHistory[prevHistory.length - 1];
+ // Prevent adding duplicate consecutive user messages
+ if (
+ lastItem.type === 'user' &&
+ newItem.type === 'user' &&
+ lastItem.text === newItem.text
+ ) {
+ return prevHistory; // Don't add the duplicate
+ }
+ }
+ return [...prevHistory, newItem];
+ });
+ return id; // Return the generated ID (even if not added, to keep signature)
},
[getNextMessageId],
);