fix(drift): classify bare chat-latest alias in openai excludeFamilies#315
Merged
Conversation
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.
commit: |
jpr5
marked this pull request as ready for review
July 18, 2026 17:52
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the live drift job residual from run 29654128652 (2026-07-18, main): bare
chat-latestwas returned by OpenAI's/modelsbut not present in eitherincludeFamiliesorexcludeFamiliesinmodel-registry.ts, causing a critical unclassified-family signal.Root cause:
chat-latestis a bare moving alias with no per-tier prefix (unlikegpt-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-latesttoexcludeFamilies.openai— consistent with PR #313's stated policy that moving aliases belong in excludeFamilies (same rationale aschatgpt-image-latest,omni-moderation-latest,gemini-flash-latest, etc.).Fixture-vs-live gap closed: The static OpenAI wave in
models.drift.tspreviously omitted barechat-latest, so the test suite ran 0/0/0 for this family while the live/modelsendpoint returned it. Addedchat-latestto the wave so the static suite will exercise this family class going forward.Sibling scan: Audited all
*-latestentries across openai/gemini/anthropic. Every other bare alias is already classified (include or exclude).chat-latestwas the only unclassified one.Red-green proof
RED (wave has
chat-latest, registry does not):Unclassified count: 1
GREEN (after adding to excludeFamilies):
Unclassified count: 0
No version bump
git diff origin/main -- package.json→ empty (zero diff).Changes
src/__tests__/drift/model-registry.ts— addedchat-latesttoexcludeFamilies.openaiwith commentsrc/__tests__/drift/models.drift.ts— addedchat-latestto the static OpenAI wave (fixture-vs-live gap fix)