From bbb1ed6033f5505625fac7f0c8f3967402aabd37 Mon Sep 17 00:00:00 2001 From: Boris Bliznioukov Date: Fri, 6 Mar 2026 15:56:45 +0100 Subject: [PATCH] feat(session): use default min messages in ForceCompression when no summarizer is configured Signed-off-by: Boris Bliznioukov --- pkg/session/manager.go | 2 +- pkg/session/summarizer_test.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/session/manager.go b/pkg/session/manager.go index 7cd00f9ff..b35f9e661 100644 --- a/pkg/session/manager.go +++ b/pkg/session/manager.go @@ -513,7 +513,7 @@ func (sm *SessionManager) summarizeSession(sessionKey string) { // already blocked, so there is no concurrent-append concern here. // No-op if no Summarizer was provided via WithSummarizer. func (sm *SessionManager) ForceCompression(sessionKey string) { - cfg := sm.summarizerCfg + cfg := sm.summarizerCfg.WithDefaults() history := sm.GetHistory(sessionKey) if len(history) <= cfg.ForceCompressionMinMessages { return diff --git a/pkg/session/summarizer_test.go b/pkg/session/summarizer_test.go index ae9ec23e8..58de0a775 100644 --- a/pkg/session/summarizer_test.go +++ b/pkg/session/summarizer_test.go @@ -231,6 +231,23 @@ func TestForceCompression_TooFewMessages(t *testing.T) { } } +func TestForceCompression_WithoutSummarizer_UsesDefaultMinMessages(t *testing.T) { + sm := NewSessionManager(t.TempDir()) + + // 3 messages is below the default ForceCompressionMinMessages (4), + // so compression should not run even when no summarizer is configured. + sm.AddFullMessage("test", providers.Message{Role: "system", Content: "system prompt"}) + sm.AddMessage("test", "user", "one") + sm.AddMessage("test", "assistant", "two") + + sm.ForceCompression("test") + + history := sm.GetHistory("test") + if len(history) != 3 { + t.Errorf("expected 3 messages unchanged, got %d", len(history)) + } +} + // --- ApplySummarization --- func TestApplySummarization_PreservesNewMessages(t *testing.T) {