[Session] Add session_messages table for conversation history #38
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Add a
session_messagestable to persist conversation history within a funded session, and a retrieval helper that returns the last N messages trimmed to a token budget.Why
Currently each request inside a session is a stateless one-shot. Follow-up requests like "make it shorter" or "explain step 2" are meaningless — Timmy has no memory of prior exchanges.
Schema
Drizzle migration
session_messagestable topackages/db/src/schema.tssessionMessagestable andSessionMessagetypepnpm drizzle-kit generateandmigrateRetrieval helper
Create
getSessionHistory(sessionId, maxMessages=8, tokenBudget=4000)inpackages/db/src/index.ts:session_messages WHERE session_id=$1 ORDER BY created_at DESC LIMIT $maxMessagessum(token_count) <= tokenBudgetArray<{ role: string; content: string }>Token counting
Use heuristic
Math.ceil(content.length / 4)at insert time, stored intoken_count.Relevant files
packages/db/src/schema.tspackages/db/src/index.tsartifacts/api-server/src/routes/sessions.tsAcceptance
getSessionHistoryreturns messages chronologically, trimmed to budget