Priority: MEDIUM
Problem
Conversation history is lost on page refresh. ConversationManager.trim() manages VRAM by dropping old messages, but there's no way to save or restore history across sessions.
Suggested Fix
Add optional localStorage persistence in ConversationManager.js:
const STORAGE_KEY = 'nodeava_conversation';
save() {
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify(this.messages));
} catch (e) {
console.warn('Failed to save conversation:', e);
}
}
restore() {
try {
const saved = localStorage.getItem(STORAGE_KEY);
if (saved) this.messages = JSON.parse(saved);
} catch (e) {
console.warn('Failed to restore conversation:', e);
}
}
clear() {
this.messages = [];
localStorage.removeItem(STORAGE_KEY);
}
Also add a "Clear conversation" button in the UI (ControlPanel.js).
Considerations
- Respect
trim() limits when restoring (don't restore more than max messages)
- Add a config toggle (
persistConversation: true/false)
- System prompt should NOT be persisted (it's in config)
Files Affected
frontend/src/llm/ConversationManager.js
frontend/src/ui/components/ControlPanel.js
frontend/src/app/config.js
Priority: MEDIUM
Problem
Conversation history is lost on page refresh.
ConversationManager.trim()manages VRAM by dropping old messages, but there's no way to save or restore history across sessions.Suggested Fix
Add optional localStorage persistence in
ConversationManager.js:Also add a "Clear conversation" button in the UI (ControlPanel.js).
Considerations
trim()limits when restoring (don't restore more than max messages)persistConversation: true/false)Files Affected
frontend/src/llm/ConversationManager.jsfrontend/src/ui/components/ControlPanel.jsfrontend/src/app/config.js