@@ -230,20 +230,20 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
230 contextWindow := model.ContextWindow
230 contextWindow := model.ContextWindow
231 usedTokens := session.CompletionTokens + session.PromptTokens
231 usedTokens := session.CompletionTokens + session.PromptTokens
232 remainingTokens := contextWindow - usedTokens
232 remainingTokens := contextWindow - usedTokens
234 // Get effective max tokens for this agent (considering overrides)
234 // Get effective max tokens for this agent (considering overrides)
235 maxTokens := a.app.CoderAgent.EffectiveMaxTokens()
235 maxTokens := a.app.CoderAgent.EffectiveMaxTokens()
237 // Apply 10% margin to max tokens
237 // Apply 10% margin to max tokens
238 maxTokensWithMargin := int64(float64(maxTokens) * 1.1)
238 maxTokensWithMargin := int64(float64(maxTokens) * 1.1)
240 // Trigger auto-summarize if remaining tokens < max tokens + 10% margin
240 // Trigger auto-summarize if remaining tokens < max tokens + 10% margin
241 // Also ensure we have a reasonable minimum threshold to avoid too-frequent summaries
241 // Also ensure we have a reasonable minimum threshold to avoid too-frequent summaries
242 minThreshold := int64(1000) // Minimum 1000 tokens remaining before triggering
242 minThreshold := int64(1000) // Minimum 1000 tokens remaining before triggering
243 if maxTokensWithMargin < minThreshold {
243 if maxTokensWithMargin < minThreshold {
244 maxTokensWithMargin = minThreshold
244 maxTokensWithMargin = minThreshold
247 if remainingTokens < maxTokensWithMargin && !config.Get().Options.DisableAutoSummarize {
247 if remainingTokens < maxTokensWithMargin && !config.Get().Options.DisableAutoSummarize {
248 // Show compact confirmation dialog
248 // Show compact confirmation dialog
249 cmds = append(cmds, util.CmdHandler(dialogs.OpenDialogMsg{
249 cmds = append(cmds, util.CmdHandler(dialogs.OpenDialogMsg{