[gemini] Implement session history management (#40) #100
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user