Browse Source

fix: persist chat history across page reload — messages saved to localStorage per session, restored on load, meta included for metadata panel on restore

Made-with: Cursor
pull/6453/head
Priyanka Punukollu 1 month ago
parent
commit
26ae2655eb
  1. 14
      agent/chat_ui.html

14
agent/chat_ui.html

@ -5554,7 +5554,7 @@
const u = hist[i]; const u = hist[i];
const a = hist[i + 1]; const a = hist[i + 1];
if (u) addMessage('user', u.content, null, true); if (u) addMessage('user', u.content, null, true);
if (a) addMessage('agent', a.content, null, true); if (a) addMessage('agent', a.content, (a && a.meta) ? a.meta : null, true);
} }
} catch { } catch {
/* silently skip */ /* silently skip */
@ -5772,7 +5772,7 @@
// Extract tickers from response into memory // Extract tickers from response into memory
extractTickersIntoMemory(responseText); extractTickersIntoMemory(responseText);
history.push({ role: 'user', content: query }); history.push({ role: 'user', content: query });
history.push({ role: 'assistant', content: responseText }); history.push({ role: 'assistant', content: responseText, meta: metaData || null });
sessionStats.messages++; sessionStats.messages++;
saveSession(); saveSession();
saveCurrentSession(); saveCurrentSession();
@ -6444,7 +6444,10 @@
emptyEl.style.display = 'none'; emptyEl.style.display = 'none';
for (let i = 0; i < history.length; i += 2) { for (let i = 0; i < history.length; i += 2) {
if (history[i]) addMessage('user', history[i].content, null, true); if (history[i]) addMessage('user', history[i].content, null, true);
if (history[i + 1]) addMessage('agent', history[i + 1].content, null, true); if (history[i + 1]) {
const a = history[i + 1];
addMessage('agent', a.content, (a && a.meta) ? a.meta : null, true);
}
} }
document.title = sess.title + ' — Ghostfolio'; document.title = sess.title + ' — Ghostfolio';
if (typeof updateHeaderTitle === 'function') updateHeaderTitle(); if (typeof updateHeaderTitle === 'function') updateHeaderTitle();
@ -7046,7 +7049,10 @@
emptyEl.style.display = 'none'; emptyEl.style.display = 'none';
for (let i = 0; i < history.length; i += 2) { for (let i = 0; i < history.length; i += 2) {
if (history[i]) addMessage('user', history[i].content, null, true); if (history[i]) addMessage('user', history[i].content, null, true);
if (history[i + 1]) addMessage('agent', history[i + 1].content, null, true); if (history[i + 1]) {
const a = history[i + 1];
addMessage('agent', a.content, (a && a.meta) ? a.meta : null, true);
}
} }
document.title = target.title + ' — Ghostfolio'; document.title = target.title + ' — Ghostfolio';
updateHeaderTitle(); updateHeaderTitle();

Loading…
Cancel
Save