{"content":"Development journal for commit 1aad2f7c (feat: private-chat episode rollover with LLM handoff summary (IDBots a2aEpisodeRollover parity)).\n\nIDBots parity round 2, part 2: long private-chat conversations now roll into episodes. When a conversation's engine-side log crosses the threshold (default 1000 messages, configurable via episodeRolloverMessages), the orchestrator — inside the per-conversation mutex — generates an LLM handoff summary (new chatEpisodeSummary generator, DSH-pair-first with a template fallback), stores episodeIndex/episodeSummary on the conversation, prunes the engine log down to the driving message (relieving the state-store cap; the A2A store and the chain keep the full thread), persists an 'Episode N ended · handoff summary' divider as a host-status line both UIs already render centered, and injects the summary into every subsequent prompt as a 'Previous Episode Handoff' section in place of the pruned raw history. Wired at both orchestrator creation sites (main profile + per-profile dispatcher) with the same LLM priority as the wait-notice generator.\n\nVerification:\npnpm run build && node --test tests/chat/privateChatAutoReply.test.mjs tests/chat/hostLlmChatReplyRunner.test.mjs tests/chat/privateChatInterimTurn.test.mjs tests/chat/privateChatLoopGuards.test.mjs tests/cli/autoReplyProfileDispatcher.test.mjs\n\nFiles:\nsrc/cli/runtime.ts\nsrc/core/chat/chatEpisodeSummary.ts\nsrc/core/chat/hostLlmChatReplyRunner.ts\nsrc/core/chat/privateChatAutoReply.ts\nsrc/core/chat/privateChatTypes.ts\ntests/chat/privateChatAutoReply.test.mjs","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}