mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-26 15:03:34 +08:00
fix: honor session model for provider runtime
This commit is contained in:
parent
2961a49fc3
commit
869aeb0e77
@ -165,6 +165,32 @@ describe('ConversationService', () => {
|
|||||||
expect(env.CLAUDE_CODE_ENTRYPOINT).toBeUndefined()
|
expect(env.CLAUDE_CODE_ENTRYPOINT).toBeUndefined()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('buildChildEnv uses the session-selected model for session-scoped providers', async () => {
|
||||||
|
const providerService = new ProviderService()
|
||||||
|
const provider = await providerService.addProvider({
|
||||||
|
presetId: 'custom',
|
||||||
|
name: 'Switchable',
|
||||||
|
apiKey: 'provider-key',
|
||||||
|
baseUrl: 'https://api.switchable.example',
|
||||||
|
apiFormat: 'openai_chat',
|
||||||
|
models: {
|
||||||
|
main: 'old-provider-main',
|
||||||
|
haiku: 'new-provider-haiku',
|
||||||
|
sonnet: 'new-provider-sonnet',
|
||||||
|
opus: 'new-provider-opus',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const service = new ConversationService() as any
|
||||||
|
const env = (await service.buildChildEnv('/tmp', undefined, {
|
||||||
|
providerId: provider.id,
|
||||||
|
model: 'new-provider-sonnet',
|
||||||
|
})) as Record<string, string>
|
||||||
|
|
||||||
|
expect(env.ANTHROPIC_BASE_URL).toBe(`http://127.0.0.1:3456/proxy/providers/${provider.id}`)
|
||||||
|
expect(env.ANTHROPIC_MODEL).toBe('new-provider-sonnet')
|
||||||
|
})
|
||||||
|
|
||||||
test('buildChildEnv can force official auth even when a custom default provider exists', async () => {
|
test('buildChildEnv can force official auth even when a custom default provider exists', async () => {
|
||||||
const ccHahaDir = path.join(tmpDir, 'cc-haha')
|
const ccHahaDir = path.join(tmpDir, 'cc-haha')
|
||||||
await fs.mkdir(ccHahaDir, { recursive: true })
|
await fs.mkdir(ccHahaDir, { recursive: true })
|
||||||
|
|||||||
@ -556,6 +556,9 @@ export class ConversationService {
|
|||||||
typeof options?.providerId === 'string'
|
typeof options?.providerId === 'string'
|
||||||
? await this.providerService.getProviderRuntimeEnv(options.providerId)
|
? await this.providerService.getProviderRuntimeEnv(options.providerId)
|
||||||
: null
|
: null
|
||||||
|
if (explicitProviderEnv && options?.model?.trim()) {
|
||||||
|
explicitProviderEnv.ANTHROPIC_MODEL = options.model.trim()
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...cleanEnv,
|
...cleanEnv,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user