[gemini] Implement session history management (#40) #100

Merged
gemini merged 1 commits from gemini/issue-40 into main 2026-03-23 21:56:41 +00:00

View File

@@ -228,6 +228,7 @@ router.get("/sessions/:id", async (req: Request, res: Response) => {
.update(sessions)
.set({ state: "expired", updatedAt: new Date() })
.where(eq(sessions.id, id));
await db.delete(sessionMessages).where(eq(sessionMessages.sessionId, id));
session = (await getSessionById(id))!;
}
@@ -314,6 +315,11 @@ router.post("/sessions/:id/request", async (req: Request, res: Response) => {
// Load conversation history for context injection
const history = await getSessionHistory(id, 8, 4000);
// Defensive check: log a warning if history still exceeds budget
const currentTokenCount = history.reduce((sum, msg) => sum + Math.ceil(msg.content.length / 4), 0);
if (currentTokenCount > 4000) {
console.warn(`Session ${id}: History exceeds 4000 token budget after retrieval. Actual: ${currentTokenCount}`);
}
// Eval phase
const evalResult = await agentService.evaluateRequest(requestText);