1
0
forked from boos/BoosAPI

Merge pull request #226 from cita-777/codex/gemini-claude-identity-encoding

fix: force identity encoding for claude messages
This commit is contained in:
Cita
2026-03-21 12:59:40 +08:00
committed by GitHub
5 changed files with 6 additions and 5 deletions
@@ -83,7 +83,7 @@ function buildClaudeRuntimeHeaders(input: {
'User-Agent': getInputHeader(input.claudeHeaders, 'user-agent') || CLAUDE_DEFAULT_USER_AGENT,
Connection: 'keep-alive',
Accept: input.stream ? 'text/event-stream' : 'application/json',
'Accept-Encoding': input.stream ? 'identity' : 'gzip, deflate, br, zstd',
'Accept-Encoding': 'identity',
};
if (input.isClaudeOauthUpstream) {
headers.Authorization = `Bearer ${input.tokenValue}`;
@@ -70,6 +70,7 @@ describe('resolveProviderProfile', () => {
expect(result.headers.Authorization).toBe('Bearer oauth-access-token');
expect(result.headers['x-api-key']).toBeUndefined();
expect(result.headers['anthropic-version']).toBe('2023-06-01');
expect(result.headers['Accept-Encoding']).toBe('identity');
expect(result.runtime).toMatchObject({
executor: 'claude',
modelName: 'claude-opus-4-6',
@@ -145,7 +145,7 @@ describe('claude count_tokens proxy route', () => {
expect(targetUrl).toBe('https://api.anthropic.com/v1/messages/count_tokens?beta=true');
expect(options.headers['anthropic-version']).toBe('2023-06-01');
expect(options.headers['anthropic-beta']).toContain('claude-code-20250219');
expect(options.headers['Accept-Encoding']).toBe('gzip, deflate, br, zstd');
expect(options.headers['Accept-Encoding']).toBe('identity');
const forwardedBody = JSON.parse(String(options.body));
expect(forwardedBody.model).toBe('claude-opus-4-6');
@@ -867,7 +867,7 @@ describe('buildUpstreamEndpointRequest', () => {
expect(request.headers['Accept-Encoding']).toBe('identity');
});
it('uses claude-code beta headers and compressed non-stream responses for claude upstream requests', () => {
it('uses claude-code beta headers and uncompressed non-stream responses for claude upstream requests', () => {
const request = buildUpstreamEndpointRequest({
endpoint: 'messages',
modelName: 'claude-opus-4-6',
@@ -887,7 +887,7 @@ describe('buildUpstreamEndpointRequest', () => {
expect(request.headers['anthropic-beta']).toContain('oauth-2025-04-20');
expect(request.headers['anthropic-beta']).toContain('context-management-2025-06-27');
expect(request.headers.Accept).toBe('application/json');
expect(request.headers['Accept-Encoding']).toBe('gzip, deflate, br, zstd');
expect(request.headers['Accept-Encoding']).toBe('identity');
});
it('converts system roles to developer in native codex responses bodies', () => {
+1 -1
View File
@@ -443,7 +443,7 @@ function buildClaudeRuntimeHeaders(input: {
'User-Agent': getInputHeader(input.claudeHeaders, 'user-agent') || CLAUDE_DEFAULT_USER_AGENT,
Connection: 'keep-alive',
Accept: input.stream ? 'text/event-stream' : 'application/json',
'Accept-Encoding': input.stream ? 'identity' : 'gzip, deflate, br, zstd',
'Accept-Encoding': 'identity',
};
if (input.isClaudeOauthUpstream) {
headers.Authorization = `Bearer ${input.tokenValue}`;