File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -196,12 +196,20 @@ export async function summarizeConversation(
196196 condenseId : condenseId ,
197197 }
198198
199- // Tag all middle messages (between first and tail) with condenseParent
200- // Middle messages are those that were summarized but not kept
201- const middleMessages = messages . slice ( 1 , - N_MESSAGES_TO_KEEP ) . map ( ( msg ) => ( {
202- ...msg ,
203- condenseParent : msg . condenseParent ?? condenseId ,
204- } ) )
199+ // Tag middle messages from the full middle span, but only set condenseParent
200+ // for those that were actually part of the current summarization window and lack a tag.
201+ const windowTs = new Set (
202+ messagesToSummarize
203+ . slice ( 1 ) // skip the preserved first
204+ . map ( ( m ) => m . ts )
205+ . filter ( ( ts ) : ts is number => typeof ts === "number" ) ,
206+ )
207+ const middleMessages = messages . slice ( 1 , - N_MESSAGES_TO_KEEP ) . map ( ( msg ) => {
208+ if ( ! msg . isSummary && typeof msg . ts === "number" && windowTs . has ( msg . ts ) ) {
209+ return { ...msg , condenseParent : msg . condenseParent ?? condenseId }
210+ }
211+ return msg
212+ } )
205213
206214 // Reconstruct messages: [first message, tagged middle messages, summary, last N messages]
207215 // This preserves ALL messages, with middle ones tagged for filtering
You can’t perform that action at this time.
0 commit comments