diff --git a/internal/cache/signature_cache.go b/internal/cache/signature_cache.go index 477b1245..6ece41fa 100644 --- a/internal/cache/signature_cache.go +++ b/internal/cache/signature_cache.go @@ -156,7 +156,13 @@ func GetCachedSignature(modelName, sessionID, text string) string { // ClearSignatureCache clears signature cache for a specific session or all sessions. func ClearSignatureCache(sessionID string) { if sessionID != "" { - signatureCache.Delete(sessionID) + signatureCache.Range(func(key, _ any) bool { + kStr, ok := key.(string) + if ok && strings.HasSuffix(kStr, "#"+sessionID) { + signatureCache.Delete(key) + } + return true + }) } else { signatureCache.Range(func(key, _ any) bool { signatureCache.Delete(key) diff --git a/internal/translator/antigravity/claude/antigravity_claude_response_test.go b/internal/translator/antigravity/claude/antigravity_claude_response_test.go index c749b259..ef6c0afe 100644 --- a/internal/translator/antigravity/claude/antigravity_claude_response_test.go +++ b/internal/translator/antigravity/claude/antigravity_claude_response_test.go @@ -97,6 +97,7 @@ func TestConvertAntigravityResponseToClaude_SignatureCached(t *testing.T) { cache.ClearSignatureCache("") requestJSON := []byte(`{ + "model": "claude-sonnet-4-5-thinking", "messages": [{"role": "user", "content": [{"type": "text", "text": "Cache test"}]}] }`) @@ -158,6 +159,7 @@ func TestConvertAntigravityResponseToClaude_MultipleThinkingBlocks(t *testing.T) cache.ClearSignatureCache("") requestJSON := []byte(`{ + "model": "claude-sonnet-4-5-thinking", "messages": [{"role": "user", "content": [{"type": "text", "text": "Multi block test"}]}] }`)