fix: retire claude-3-haiku-20240307 and gpt-4o (closes #44)#45
fix: retire claude-3-haiku-20240307 and gpt-4o (closes #44)#45stackbilt-admin merged 1 commit intomainfrom
Conversation
Closes #44. Haiku 3 retires 2026-04-19 (2 days out); GPT-4o retired 2026-04-03. Both had active references in the public API surface, provider model lists, pricing tables, and test fixtures. Changes: - Mark `MODELS.GPT_4O` and `MODELS.CLAUDE_3_HAIKU` as `@deprecated` (values retained per additive-only OSS policy — removing the exports would be a breaking change; deprecation flags callers at compile time) - Remove retired IDs from `AnthropicProvider.models` + capabilities map - Remove `gpt-4o` and dead `gpt-4-turbo-preview` alias from `OpenAIProvider.models` + capabilities map - Migrate 41 Haiku-3 fixture IDs to `claude-haiku-4-5-20251001` and gpt-4o test fixtures to `gpt-4o-mini` - Add `model-drift.test.ts` guarding against future drift between each provider's advertised `models[]` and its capabilities map — the `gpt-4-turbo-preview` alias was caught this way Not changed: `gpt-4o-mini` (status not yet confirmed; still the factory default fallback at `factory.ts:1107`). Needs separate audit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d9e1266 to
a3c57fb
Compare
|
Addressed both cleanup items:
Follow-up filed: #46 — verify `gpt-4o-mini` retirement status and migrate fallback sites if retired. P1. Amended commit + force-pushed (`d9e1266...a3c57fb`). `pnpm test` still green (229/229). |
Summary
Closes #44 — P0 model retirement fix flagged by AEGIS ecosystem-pulse.
claude-3-haiku-20240307) retires 2026-04-19 (2 days out)gpt-4o) retired 2026-04-03 (14 days silent in this repo)Both IDs were live in the public
MODELSconstants, both providermodels[]arrays, both capabilities/pricing tables, and 43 test fixtures — consumers resolving them would silently break at the cutoff.Changes
MODELS.GPT_4OandMODELS.CLAUDE_3_HAIKUmarked@deprecated(values retained per additive-only OSS policy — removing the exports would be a breaking change requiring a major bump; JSDoc flags callers at compile time).claude-3-haiku-20240307removed fromAnthropicProvider.models[]and its capabilities/pricing entry.gpt-4oremoved fromOpenAIProvider.models[]and its capabilities/pricing entry. Deadgpt-4-turbo-previewalias also dropped (caught by the new drift test — had no capabilities entry to begin with).claude-haiku-4-5-20251001.gpt-4otest-fixture IDs migrated togpt-4o-mini.src/__tests__/model-drift.test.ts— asserts every provider'smodels[]is symmetrically covered by its capabilities map. Guards against this class of drift in the future.Not in scope
gpt-4o-ministatus unconfirmed. It's the factory's default OpenAI fallback (factory.ts:1107,openai.ts:153,308,486) and the current default vision model when OpenAI is the only provider. AEGIS flaggedgpt-4oproper, not mini — but both should be audited. Deliberately left untouched pending confirmation.claude-3-opus-20240229,claude-3-sonnet-20240229) — not flagged by AEGIS routine, left in place.console.warnat provider boot — considered but out of scope; the compile-time@deprecatedis the minimum viable signal.Test plan
pnpm test— 229 passed (219 existing + 10 new drift tests)pnpm typecheck— cleangpt-4o-mini— follow-up issue or expand scope here?🤖 Generated with Claude Code