fix: rewrite OpenCode identity sentence to Claude Code
This commit is contained in:
20
backend/internal/service/gateway_sanitize_test.go
Normal file
20
backend/internal/service/gateway_sanitize_test.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSanitizeOpenCodeText_RewritesCanonicalSentence(t *testing.T) {
|
||||
in := "You are OpenCode, the best coding agent on the planet."
|
||||
got := sanitizeOpenCodeText(in)
|
||||
require.Equal(t, strings.TrimSpace(claudeCodeSystemPrompt), got)
|
||||
}
|
||||
|
||||
func TestSanitizeOpenCodeText_RewritesOpenCodeKeywords(t *testing.T) {
|
||||
in := "OpenCode and opencode are mentioned."
|
||||
got := sanitizeOpenCodeText(in)
|
||||
require.Equal(t, "Claude Code and Claude are mentioned.", got)
|
||||
}
|
||||
@@ -559,6 +559,14 @@ func sanitizeOpenCodeText(text string) string {
|
||||
if text == "" {
|
||||
return text
|
||||
}
|
||||
// Some clients include a fixed OpenCode identity sentence. Anthropic may treat
|
||||
// this as a non-Claude-Code fingerprint, so rewrite it to the canonical
|
||||
// Claude Code banner before generic "OpenCode"/"opencode" replacements.
|
||||
text = strings.ReplaceAll(
|
||||
text,
|
||||
"You are OpenCode, the best coding agent on the planet.",
|
||||
strings.TrimSpace(claudeCodeSystemPrompt),
|
||||
)
|
||||
text = strings.ReplaceAll(text, "OpenCode", "Claude Code")
|
||||
text = opencodeTextRe.ReplaceAllString(text, "Claude")
|
||||
return text
|
||||
|
||||
Reference in New Issue
Block a user