@@ -525,7 +525,8 @@ func (r *LocalRuntime) runStreamLoop(ctx context.Context, sess *session.Session,
525525 // trigger and the UI context gauge (issue #3241); it equals the primary
526526 // window unless a smaller compaction model is configured.
527527 contextLimit := r .effectiveContextLimit (ctx , a , r .resolveContextLimit (ctx , model , modelID ))
528- if contextLimit > 0 && r .sessionCompactionEnabled (a ) && compaction .ShouldCompact (sess .InputTokens , sess .OutputTokens , 0 , contextLimit , a .CompactionThreshold ()) {
528+ inputTokens , outputTokens := sess .Usage ()
529+ if contextLimit > 0 && r .sessionCompactionEnabled (a ) && compaction .ShouldCompact (inputTokens , outputTokens , 0 , contextLimit , a .CompactionThreshold ()) {
529530 r .compactWithReason (ctx , sess , "" , compactionReasonThreshold , sink )
530531 }
531532
@@ -1161,17 +1162,18 @@ func (r *LocalRuntime) compactIfNeeded(
11611162 addedTokens += estimator .EstimateMessageTokens (& newMessages [i ].Message )
11621163 }
11631164
1164- if ! compaction .ShouldCompact (sess .InputTokens , sess .OutputTokens , addedTokens , contextLimit , a .CompactionThreshold ()) {
1165+ inputTokens , outputTokens := sess .Usage ()
1166+ if ! compaction .ShouldCompact (inputTokens , outputTokens , addedTokens , contextLimit , a .CompactionThreshold ()) {
11651167 return
11661168 }
11671169
11681170 slog .InfoContext (ctx , "Proactive compaction: tool results pushed estimated context past the compaction threshold" ,
11691171 "agent" , a .Name (),
1170- "input_tokens" , sess . InputTokens ,
1171- "output_tokens" , sess . OutputTokens ,
1172+ "input_tokens" , inputTokens ,
1173+ "output_tokens" , outputTokens ,
11721174 "added_estimated_tokens" , addedTokens ,
11731175 "estimator_scale" , estimator .Scale (),
1174- "estimated_total" , sess . InputTokens + sess . OutputTokens + addedTokens ,
1176+ "estimated_total" , inputTokens + outputTokens + addedTokens ,
11751177 "context_limit" , contextLimit ,
11761178 )
11771179 r .compactWithReason (ctx , sess , "" , compactionReasonThreshold , events )
0 commit comments