@@ -333,6 +333,53 @@ test("injectMessageIds tags every text part and tool output in range mode", () =
333333 assert . match ( ( assistantToolTwo as any ) . state . output , / < d c p - m e s s a g e - i d > m 0 0 0 2 < \/ d c p - m e s s a g e - i d > / )
334334} )
335335
336+ test ( "message mode marks compress tool messages as high priority even when short" , ( ) => {
337+ const sessionID = "ses_message_compress_high_priority"
338+ const messages : WithParts [ ] = [
339+ buildMessage ( "msg-user-1" , "user" , sessionID , "Please compress this chunk." , 1 ) ,
340+ {
341+ info : {
342+ id : "msg-assistant-1" ,
343+ role : "assistant" ,
344+ sessionID,
345+ agent : "assistant" ,
346+ time : { created : 2 } ,
347+ } as WithParts [ "info" ] ,
348+ parts : [
349+ textPart ( "msg-assistant-1" , sessionID , "msg-assistant-1-part-1" , "Done." ) ,
350+ toolPart (
351+ "msg-assistant-1" ,
352+ sessionID ,
353+ "call-compress-1" ,
354+ "compress" ,
355+ "[Compressed conversation section]" ,
356+ ) ,
357+ ] ,
358+ } ,
359+ ]
360+ const state = createSessionState ( )
361+ const config = buildConfig ( )
362+
363+ assignMessageRefs ( state , messages )
364+ const compressionPriorities = buildPriorityMap ( config , state , messages )
365+
366+ assert . equal ( compressionPriorities . get ( "msg-assistant-1" ) ?. priority , "high" )
367+
368+ injectMessageIds ( state , config , messages , compressionPriorities )
369+
370+ const assistantText = messages [ 1 ] ?. parts [ 0 ]
371+ const assistantTool = messages [ 1 ] ?. parts [ 1 ]
372+
373+ assert . match (
374+ ( assistantText as any ) . text ,
375+ / \n \n < d c p - m e s s a g e - i d p r i o r i t y = " h i g h " > m 0 0 0 2 < \/ d c p - m e s s a g e - i d > / ,
376+ )
377+ assert . match (
378+ ( assistantTool as any ) . state . output ,
379+ / < d c p - m e s s a g e - i d p r i o r i t y = " h i g h " > m 0 0 0 2 < \/ d c p - m e s s a g e - i d > / ,
380+ )
381+ } )
382+
336383test ( "message-mode nudges append to existing text parts and list only earlier visible high-priority message IDs" , ( ) => {
337384 const sessionID = "ses_message_priority_nudges"
338385 const messages : WithParts [ ] = [
0 commit comments