fix: use 1m fallback for unknown model context
Build / build (push) Canceled after 0s
Playwright / e2e (push) Canceled after 0s

This commit is contained in:
2026-11-05 12:15:17 +08:00
parent c50a6f63d9
commit e35a5626c6
5 changed files with 29 additions and 15 deletions
+17 -12
View File
@@ -59,6 +59,11 @@ describe('getModelContextLength', () => {
homeDir = ''
})
it('uses one million tokens when no model context is available', async () => {
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(1_000_000)
})
it('does not borrow a same-named model context from another provider when the configured provider is uncached', async () => {
writeConfig(`model:\n default: gpt-5.5\n provider: openai-codex\n`)
writeModelsCache({
@@ -71,7 +76,7 @@ describe('getModelContextLength', () => {
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
it('does not scan other providers when the configured provider exists without that model', async () => {
@@ -91,7 +96,7 @@ describe('getModelContextLength', () => {
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
it('uses the configured provider cache entry when the provider matches', async () => {
@@ -250,14 +255,14 @@ describe('getModelContextLength', () => {
writeModelsCache({
deepseek: {
models: {
'deepseek-v4-pro': { limit: { context: 1_000_000 } },
'deepseek-v4-pro': { limit: { context: 1_050_000 } },
},
},
})
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
it('does not trust custom:name alone when the matched custom provider entry points at an unknown proxy url', async () => {
@@ -265,14 +270,14 @@ describe('getModelContextLength', () => {
writeModelsCache({
deepseek: {
models: {
'deepseek-v4-pro': { limit: { context: 1_000_000 } },
'deepseek-v4-pro': { limit: { context: 1_050_000 } },
},
},
})
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
it('does not fall through to a unique global match after a resolved custom:name provider misses in its scoped cache provider', async () => {
@@ -285,14 +290,14 @@ describe('getModelContextLength', () => {
},
deepseek: {
models: {
'deepseek-v4-pro': { limit: { context: 1_000_000 } },
'deepseek-v4-pro': { limit: { context: 1_050_000 } },
},
},
})
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
it('allows a unique global model-name fallback for unresolved custom providers', async () => {
@@ -330,14 +335,14 @@ describe('getModelContextLength', () => {
writeModelsCache({
vercel: {
models: {
'openai/gpt-5': { limit: { context: 1_000_000 } },
'openai/gpt-5': { limit: { context: 1_050_000 } },
},
},
})
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
it('does not guess across multiple cache providers when a custom provider remains unresolved', async () => {
@@ -345,7 +350,7 @@ describe('getModelContextLength', () => {
writeModelsCache({
deepseek: {
models: {
'shared-model': { limit: { context: 1_000_000 } },
'shared-model': { limit: { context: 1_050_000 } },
},
},
openai: {
@@ -357,6 +362,6 @@ describe('getModelContextLength', () => {
const { getModelContextLength } = await loadModelContext()
expect(getModelContextLength()).toBe(256_000)
expect(getModelContextLength()).toBe(1_000_000)
})
})