Skip to content

fix(drift): classify bare chat-latest alias in openai excludeFamilies#315

Merged
jpr5 merged 1 commit into
mainfrom
fix/drift-chat-latest-alias
Jul 18, 2026
Merged

fix(drift): classify bare chat-latest alias in openai excludeFamilies#315
jpr5 merged 1 commit into
mainfrom
fix/drift-chat-latest-alias

Conversation

@jpr5

@jpr5 jpr5 commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes the live drift job residual from run 29654128652 (2026-07-18, main): bare chat-latest was returned by OpenAI's /models but not present in either includeFamilies or excludeFamilies in model-registry.ts, causing a critical unclassified-family signal.

Root cause: chat-latest is a bare moving alias with no per-tier prefix (unlike gpt-5-chat-latest, gpt-5.1/5.2/5.3-chat-latest). The normalizer leaves it unchanged (no date/build-tag suffix to strip), so it fell through as an unclassified family.

Fix: Added chat-latest to excludeFamilies.openai — consistent with PR #313's stated policy that moving aliases belong in excludeFamilies (same rationale as chatgpt-image-latest, omni-moderation-latest, gemini-flash-latest, etc.).

Fixture-vs-live gap closed: The static OpenAI wave in models.drift.ts previously omitted bare chat-latest, so the test suite ran 0/0/0 for this family while the live /models endpoint returned it. Added chat-latest to the wave so the static suite will exercise this family class going forward.

Sibling scan: Audited all *-latest entries across openai/gemini/anthropic. Every other bare alias is already classified (include or exclude). chat-latest was the only unclassified one.

Red-green proof

RED (wave has chat-latest, registry does not):

× src/__tests__/drift/models.drift.ts > full live /models wave is fully classified
  → expected [ 'chat-latest' ] to deeply equal []

Unclassified count: 1

GREEN (after adding to excludeFamilies):

✓ src/__tests__/drift/models.drift.ts > full live /models wave is fully classified
✓ ...OpenAI: every live family is classified (zero unclassified)
Test Files: 158 passed (158) — Tests: 4673 passed (4673)

Unclassified count: 0

No version bump

git diff origin/main -- package.json → empty (zero diff).

Changes

  • src/__tests__/drift/model-registry.ts — added chat-latest to excludeFamilies.openai with comment
  • src/__tests__/drift/models.drift.ts — added chat-latest to the static OpenAI wave (fixture-vs-live gap fix)

chat-latest is a moving alias on OpenAI's /models endpoint with no
per-tier prefix (unlike gpt-5-chat-latest, gpt-5.1-chat-latest, etc.).
The normalizer leaves it unchanged (no date/build-tag suffix to strip),
so it fell through the registry as an unclassified family. Per PR #313's
stated policy, moving aliases belong in excludeFamilies.

Also adds chat-latest to the static OpenAI wave in models.drift.ts to
close the fixture-vs-live gap: the static suite previously omitted it,
so the test exercised 0/0/0 while the live /models returned it (making
this class of bare alias invisible to the test).

Verified sibling *-latest entries across openai/gemini/anthropic — all
other bare aliases already appear in include or excludeFamilies.
@pkg-pr-new

pkg-pr-new Bot commented Jul 18, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@copilotkit/aimock@315

commit: e94ba13

@jpr5
jpr5 marked this pull request as ready for review July 18, 2026 17:52
@jpr5
jpr5 merged commit 4584be6 into main Jul 18, 2026
28 checks passed
@jpr5
jpr5 deleted the fix/drift-chat-latest-alias branch July 18, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant