feat(session): use default min messages in ForceCompression when no summarizer is configured
Signed-off-by: Boris Bliznioukov <blib@mail.com>
This commit is contained in:
parent
d9f94e8e0f
commit
bbb1ed6033
2 changed files with 18 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue