fix: expose summaryStored in session status to detect silent summary loss (#1633)

Stop hook polled queueLength===0 as a proxy for summary success, but the queue
empties regardless of whether the LLM produced valid <summary> tags. Added
lastSummaryStored tracking on ActiveSession, surfaced via the /api/sessions/status
endpoint, and emit a logger.warn in the Stop hook when summaryStored===false.

Generated by Claude Code
Vibe coded by ousamabenyounes

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ousama Ben Younes
2026-04-10 15:06:18 +00:00
parent cde4faae2f
commit 2f19eab9c2
5 changed files with 66 additions and 2 deletions
@@ -126,6 +126,10 @@ export async function processAgentResponse(
memorySessionId: session.memorySessionId
});
// Track whether a summary record was stored so the status endpoint can expose this
// to the Stop hook for silent-summary-loss detection (#1633)
session.lastSummaryStored = result.summaryId !== null;
// CLAIM-CONFIRM: Now that storage succeeded, confirm all processing messages (delete from queue)
// This is the critical step that prevents message loss on generator crash
const pendingStore = sessionManager.getPendingMessageStore();