You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(catalog): preserve OpenAI API display name overrides - #7259
Trusted OpenAI API catalog reconstruction replaces discovered rows and drops configured modelDisplayNames, so openai-apikey/gpt-6.1-sol appears by its slug instead of a label such as 6.1 Sol after sync.
Reapply the exact provider display name while retaining registry-owned context, reasoning levels, output limits, routing, and pricing behavior. No custom model rows are added.
Clarify the provider docs and cover the emitted Codex catalog, duplicate avoidance, and label reset in an integration test.
Verification
bun run test tests/codex-integration/model-display-names-management-api.test.ts with OCX_TEST_RUNNER_BUN set to Bun 1.4.3: 14 passed, 0 failed.
bun run test tests/codex-integration/codex-catalog.test.ts with the same runner: 338 passed, 0 failed.
bun run test with the same runner: 48,664 passed, 120 skipped, 1 failed in the parallel phase (2,437 files); the serial phase passed. The failure is connected Desktop uses hub IDs across a cold restart (stored profile=false) in tests/claude-integration/claude-desktop-remote-hub.test.ts:249: identical native model entries arrive in a different order. The same test fails with the same mismatch when run alone on this branch and on an untouched origin/dev worktree. This pre-existing failure is the full-suite exception; the focused OpenAI catalog tests above passed.
bun run test:changed: stopped after 190 seconds because its import-graph selection included most of the already-run full suite; no passing result is claimed for this run.
bun run typecheck: passed.
bun run structure:check: passed.
bun run privacy:scan: passed.
cd docs-site && bun install --frozen-lockfile && bun run build: passed (577 pages; internal links checked).
git diff --check: passed.
Live Codex client catalog check: generated a catalog from this branch in an isolated CODEX_HOME with a dummy API key, then sent initialize and model/list to the ChatGPT-bundled Codex 0.163.0-alpha.10.2 app-server. It returned one row each for openai-apikey/gpt-6-astra, openai-apikey/gpt-6-luna, and openai-apikey/gpt-6.1-sol, with displayName values 6 Astra, 6 Luna, and 6.1 Sol.
Checklist
Scope stays focused and avoids unrelated cleanup.
Docs or release notes were updated when needed.
Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
Required local validation passed; commands, results, and any full-suite exception are documented.
I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit
Improvements
Configured display names for built-in OpenAI API models now appear in the model catalog and persist across catalog refreshes.
Updated the provider configuration reference with instructions for setting these labels.
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
📝 Walkthrough
Trusted OpenAI API catalog rows now include configured display names when available. The integration test checks the labels and compares catalog entries after removing the overrides. Configuration documentation identifies the setting and states that labels survive catalog refreshes.
Changes: OpenAI display-name preservation
Layer / File(s)
Summary
Apply and verify configured catalog labels src/codex/catalog/routed-gather.ts, tests/codex-integration/model-display-names-management-api.test.ts, docs-site/src/content/docs/reference/configuration/providers.md
Trusted OpenAI API rows include configured display names when available. The integration test checks labels and compares entries after removing the overrides. The documentation identifies providers.openai-apikey.modelDisplayNames and states that labels survive catalog refreshes.
Configured display names for OpenAI API models are now preserved when the catalog is rebuilt. No merge-blocking risk was identified.
Pre-merge checks: 4 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Docstring Coverage
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 …
Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed checks: 4 passed
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title clearly and concisely describes the main change: preserving configured OpenAI API display-name overrides in the catalog.
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage
Explanation
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
all PR quality gates passed; the review readiness checklist is complete.
Review readiness checklist
✅ Required local validation passed; commands, results, and any full-suite exception are documented.
✅ I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
✅ I resolved all correct Codex and CodeRabbit findings.
✅ My PR is ready for review.
✅ 4/4 boxes ticked.
This pull request is already Ready for Review.
The review-ready label marks this PR as ready; review automation runs independently.
Maintainers: @lidge-jun@Ingwannu
Maintainer integration into dev (MAINTAINERS.md maintainer-integration exception) for the 2.88.0 train.
Exact head e26fce0c8d3e3c903c5691dbdaa20acaf1cf8f29: the PR's CI on this head completed successfully (gates, test 1/4-4/4, aggregate ci). Reviewed the diff: the trusted OpenAI API catalog reconstruction now applies modelDisplayNames labels, with a regression test proving the rest of each row is unchanged. Changed files are not tracked by the file-size ratchet, and the only change on dev since the run was docs-only (#7227).
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
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
modelDisplayNames, soopenai-apikey/gpt-6.1-solappears by its slug instead of a label such as6.1 Solafter sync.Verification
bun run test tests/codex-integration/model-display-names-management-api.test.tswithOCX_TEST_RUNNER_BUNset to Bun 1.4.3: 14 passed, 0 failed.bun run test tests/codex-integration/codex-catalog.test.tswith the same runner: 338 passed, 0 failed.bun run testwith the same runner: 48,664 passed, 120 skipped, 1 failed in the parallel phase (2,437 files); the serial phase passed. The failure isconnected Desktop uses hub IDs across a cold restart (stored profile=false)intests/claude-integration/claude-desktop-remote-hub.test.ts:249: identical native model entries arrive in a different order. The same test fails with the same mismatch when run alone on this branch and on an untouchedorigin/devworktree. This pre-existing failure is the full-suite exception; the focused OpenAI catalog tests above passed.bun run test:changed: stopped after 190 seconds because its import-graph selection included most of the already-run full suite; no passing result is claimed for this run.bun run typecheck: passed.bun run structure:check: passed.bun run privacy:scan: passed.cd docs-site && bun install --frozen-lockfile && bun run build: passed (577 pages; internal links checked).git diff --check: passed.CODEX_HOMEwith a dummy API key, then sentinitializeandmodel/listto the ChatGPT-bundled Codex 0.163.0-alpha.10.2 app-server. It returned one row each foropenai-apikey/gpt-6-astra,openai-apikey/gpt-6-luna, andopenai-apikey/gpt-6.1-sol, withdisplayNamevalues6 Astra,6 Luna, and6.1 Sol.Checklist
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
Required local validation passed; commands, results, and any full-suite exception are documented.
I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit