From 72704ee4bdea633e085e1f6b8b384aade395e79b Mon Sep 17 00:00:00 2001 From: orangeboyChen Date: Fri, 21 Aug 2026 01:32:12 +0800 Subject: [PATCH] fix: align CodeBuddy upstream compatibility --- app/admin-api/access-keys/[id]/route.ts | 4 - app/admin-api/access-keys/route.ts | 4 - app/credentials/credential-card.tsx | 11 +++ app/credentials/credential-group.tsx | 5 ++ app/credentials/credentials.tsx | 19 +++++ app/page-shell.tsx | 18 ++++ lib/server/domain/access-keys.ts | 26 +----- lib/server/domain/credentials.ts | 14 +++- lib/server/proxy/codebuddy.ts | 88 +++++++++----------- messages/en-US.json | 3 + messages/ja-JP.json | 3 + messages/zh-CN.json | 3 + tests/server/access-keys-credentials.test.ts | 15 +++- tests/server/anthropic.test.ts | 12 +++ tests/server/units.test.ts | 66 +++++++++++---- 15 files changed, 190 insertions(+), 101 deletions(-) diff --git a/app/admin-api/access-keys/[id]/route.ts b/app/admin-api/access-keys/[id]/route.ts index 24bac24..785c0c9 100644 --- a/app/admin-api/access-keys/[id]/route.ts +++ b/app/admin-api/access-keys/[id]/route.ts @@ -24,10 +24,6 @@ const validateCredentialFilenames = ( .map((item) => item.trim()) .filter(Boolean); - if (!normalized.length) { - throw new Error('At least one credential must be selected'); - } - if (normalized.some((item) => !available.has(item))) { throw new Error('Selected credentials must exist'); } diff --git a/app/admin-api/access-keys/route.ts b/app/admin-api/access-keys/route.ts index 13499f7..1bf523d 100644 --- a/app/admin-api/access-keys/route.ts +++ b/app/admin-api/access-keys/route.ts @@ -23,10 +23,6 @@ const validateCredentialFilenames = ( .map((item) => item.trim()) .filter(Boolean); - if (!normalized.length) { - throw new Error('At least one credential must be selected'); - } - if (normalized.some((item) => !available.has(item))) { throw new Error('Selected credentials must exist'); } diff --git a/app/credentials/credential-card.tsx b/app/credentials/credential-card.tsx index 7966011..d39ee5d 100644 --- a/app/credentials/credential-card.tsx +++ b/app/credentials/credential-card.tsx @@ -24,6 +24,7 @@ interface CredentialCardProps { current: CurrentCredentialInfo | null; form: CredentialFormState; onCredentialFirstMessageRoleToSystemChange: (value: boolean) => void; + onCredentialFirstSystemMessageRoleToUserChange: (value: boolean) => void; onCredentialUpstreamProtocolChange: (value: 'chat' | 'responses') => void; onDelete: () => void; onEdit: () => void; @@ -36,6 +37,7 @@ export const CredentialCard = ({ current, form, onCredentialFirstMessageRoleToSystemChange, + onCredentialFirstSystemMessageRoleToUserChange, onCredentialUpstreamProtocolChange, onDelete, onEdit, @@ -108,6 +110,9 @@ export const CredentialCard = ({ ? text('credentials.credentialUpstreamResponsesTag') : text('credentials.credentialUpstreamChatTag')} + {credential.first_system_message_role_to_user ? ( + {text('credentials.credentialFirstSystemAsUserTag')} + ) : null} {credential.first_message_role_to_system ? text('credentials.credentialRoleAsSystemTag') @@ -160,6 +165,12 @@ export const CredentialCard = ({ onChange={onCredentialFirstMessageRoleToSystemChange} title={text('credentials.credentialRoleAsSystem')} /> +