fix(core): compare Codex GPT versions by major and minor (#47404)

This commit is contained in:
Aiden Cline
2026-09-04 19:22:12 -05:00
committed by GitHub
parent 541937d124
commit baab05727d
2 changed files with 18 additions and 2 deletions
+4 -2
View File
@@ -274,10 +274,12 @@ export const OpenAIPlugin = define({
return
}
const apiID = draft.modelID ?? draft.id
const match = apiID.match(/^gpt-(\d+\.\d+)/)
const match = apiID.match(/^gpt-(\d+)(?:\.(\d+))?/)
const major = Number(match?.[1])
const minor = Number(match?.[2] ?? 0)
if (
!codexAllowed.has(apiID) &&
(codexDisallowed.has(apiID) || !match || Number.parseFloat(match[1]) <= 5.4)
(codexDisallowed.has(apiID) || !match || !(major > 5 || (major === 5 && minor > 4)))
) {
draft.enabled = false
return
@@ -115,6 +115,15 @@ describe("OpenAIPlugin", () => {
model.limit = { context: 1_050_000, input: 922_000, output: 128_000 }
})
catalog.model.update(Provider.ID.openai, Model.ID.make("gpt-4.1"), () => {})
catalog.model.update(Provider.ID.openai, Model.ID.make("gpt-6-astra"), (model) => {
model.limit = { context: 1_050_000, input: 922_000, output: 128_000 }
})
catalog.model.update(Provider.ID.openai, Model.ID.make("gpt-5.10"), (model) => {
model.limit = { context: 1_050_000, input: 922_000, output: 128_000 }
})
catalog.model.update(Provider.ID.openai, Model.ID.make("gpt-5"), () => {})
catalog.model.update(Provider.ID.openai, Model.ID.make("gpt-5.04-astra"), () => {})
catalog.model.update(Provider.ID.openai, Model.ID.make("gpt-4.99"), () => {})
})
yield* credentials.create({
integrationID: Integration.ID.make("openai"),
@@ -161,6 +170,11 @@ describe("OpenAIPlugin", () => {
expect(gpt56.enabled).toBe(true)
expect(gpt56.limit).toEqual({ context: 400_000, input: 272_000, output: 128_000 })
expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-4.1"))).enabled).toBe(false)
expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-6-astra"))).enabled).toBe(true)
expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.10"))).enabled).toBe(true)
expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5"))).enabled).toBe(false)
expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.04-astra"))).enabled).toBe(false)
expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-4.99"))).enabled).toBe(false)
}),
)