- Backend emits session id in SSE; frontend sets activeChat so follow-ups reuse the same session (fixes fragmented history). - sessions.summary column; messages past RECENT_LIMIT (10) are folded into a persisted summary via a non-streaming model call. - buildMessages sends system(+summary) + last 10 messages, bounding context while preserving long-range memory. - Tests: aiMessages (capping + summary injection).
6 lines
287 B
SQL
6 lines
287 B
SQL
-- Add a rolling conversation summary column to sessions.
|
|
-- Older messages get folded into this summary so the AI context stays bounded
|
|
-- (model receives summary + last N messages) while long-range context persists.
|
|
|
|
ALTER TABLE public.sessions
|
|
ADD COLUMN IF NOT EXISTS summary text; |