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 == "" {
|
if text == "" {
|
||||||
return 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 = strings.ReplaceAll(text, "OpenCode", "Claude Code")
|
||||||
text = opencodeTextRe.ReplaceAllString(text, "Claude")
|
text = opencodeTextRe.ReplaceAllString(text, "Claude")
|
||||||
return text
|
return text
|
||||||
|
|||||||
Reference in New Issue
Block a user