mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 16:57:46 +00:00
Fix several bugs in prompt history (#734)
Co-authored-by: Marat Boshernitsan <maratb@google.com>
This commit is contained in:
committed by
GitHub
parent
c313762ba0
commit
7de790fbf2
@@ -227,21 +227,36 @@ export const App = ({
|
||||
|
||||
useEffect(() => {
|
||||
const fetchUserMessages = async () => {
|
||||
const pastMessages = (await logger?.getPreviousUserMessages()) || [];
|
||||
if (pastMessages.length > 0) {
|
||||
setUserMessages(pastMessages.reverse());
|
||||
} else {
|
||||
setUserMessages(
|
||||
history
|
||||
.filter(
|
||||
(item): item is HistoryItem & { type: 'user'; text: string } =>
|
||||
item.type === 'user' &&
|
||||
typeof item.text === 'string' &&
|
||||
item.text.trim() !== '',
|
||||
)
|
||||
.map((item) => item.text),
|
||||
);
|
||||
const pastMessagesRaw = (await logger?.getPreviousUserMessages()) || []; // Newest first
|
||||
|
||||
const currentSessionUserMessages = history
|
||||
.filter(
|
||||
(item): item is HistoryItem & { type: 'user'; text: string } =>
|
||||
item.type === 'user' &&
|
||||
typeof item.text === 'string' &&
|
||||
item.text.trim() !== '',
|
||||
)
|
||||
.map((item) => item.text)
|
||||
.reverse(); // Newest first, to match pastMessagesRaw sorting
|
||||
|
||||
// Combine, with current session messages being more recent
|
||||
const combinedMessages = [
|
||||
...currentSessionUserMessages,
|
||||
...pastMessagesRaw,
|
||||
];
|
||||
|
||||
// Deduplicate consecutive identical messages from the combined list (still newest first)
|
||||
const deduplicatedMessages: string[] = [];
|
||||
if (combinedMessages.length > 0) {
|
||||
deduplicatedMessages.push(combinedMessages[0]); // Add the newest one unconditionally
|
||||
for (let i = 1; i < combinedMessages.length; i++) {
|
||||
if (combinedMessages[i] !== combinedMessages[i - 1]) {
|
||||
deduplicatedMessages.push(combinedMessages[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Reverse to oldest first for useInputHistory
|
||||
setUserMessages(deduplicatedMessages.reverse());
|
||||
};
|
||||
fetchUserMessages();
|
||||
}, [history, logger]);
|
||||
|
||||
Reference in New Issue
Block a user