Skip to content

fix(codex): include Ultra Fast in live model discovery - #7115

Closed
oocheol wants to merge 1 commit into
lidge-jun:devfrom
oocheol:codex/fix-ultrafast-live-catalog
Closed

oocheol wants to merge 1 commit into
lidge-jun:devfrom
oocheol:codex/fix-ultrafast-live-catalog

Conversation

@oocheol

@oocheol oocheol commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Codex clients using GET /v1/models?client_version=... received only Fast even when a routed provider explicitly declared ultrafast -> ultrafast. The public catalog builder now applies the existing configured-tier projection, using the same captured declarations and native/account/combo exclusions as the persisted merge. Defaults and the persisted writers' paths stay unchanged.
  • Keep conflicting declarations conservative and strip stale template tiers without importing persisted operator tiers into live rows. Add direct-builder and real loopback HTTP regressions for the returned choice, repeat reads, unsupported models, aliases, duplicate declarations and default preservation.
  • Correct the English/Korean guide: ultraFastTier retains independently supplied exact routed-row tiers, and separately generates missing tiers on eligible native Astra/Sol rows. Explain generated-tier withdrawal and preservation of operator edits. Update the catalog contract.

Follow-up to the post-merge review on #6927: live catalog projection and native-setting documentation.

Verification

Based on upstream dev 7640a942b35044c974e534b84d5a8049f4a8ae9a, fetched and checked on 2026-10-15. Final tree committed as 27d095b4f9731e366fc191e4655bb17bb2d0a45d; one fix commit, eight changed files. Local execution used Windows and repository-pinned Bun 1.4.3 (c6da4a4d3) through the isolated test wrapper.

The direct-builder regression first failed on the original code: an explicit eligible declaration produced only priority, without ultrafast. The final regression file has eight passing cases, including a real local HTTP server queried twice with an active declaration. The HTTP fixture uses the server's startup configuration; it does not mistake a disk-only config save for an update to that server's captured live configuration. Returned routed rows contain both tiers, retain default_service_tier: null, and do not grant the choice to the ordinary unsupported row.

Focused run:

bun scripts/test.ts --timeout 45000 tests/codex-integration/ultrafast-live-catalog.test.ts tests/codex-integration/configured-ultrafast-picker.test.ts tests/codex-integration/native-ultrafast-picker.test.ts tests/codex-integration/ultrafast-tier-honesty.test.ts tests/codex-integration/codex-catalog.test.ts tests/codex-integration/fast-row.test.ts tests/codex-integration/fast-row-listing.test.ts tests/service/service-tier-capability.test.ts tests/routing/fastwire-policy.test.ts tests/routing/fastwire-characterization-wire.test.ts tests/test-layout.test.ts tests/test-layout-tooling.test.ts tests/lab/core-lab-boundary.test.ts

802 passed, 0 failed, 3,892 assertions across 13 files, 26.02 seconds. This includes both persisted writers, native projection, operator retention, wire behavior and the optional-Lab boundary.

Additional bounded changed-mode run over all remaining test files mentioning the builder family:

$verifiedNames = @('ultrafast-live-catalog.test.ts', 'configured-ultrafast-picker.test.ts', 'native-ultrafast-picker.test.ts', 'ultrafast-tier-honesty.test.ts', 'codex-catalog.test.ts', 'fast-row.test.ts', 'fast-row-listing.test.ts', 'service-tier-capability.test.ts', 'fastwire-policy.test.ts', 'fastwire-characterization-wire.test.ts', 'test-layout.test.ts', 'test-layout-tooling.test.ts', 'core-lab-boundary.test.ts')
$remainingBuilderConsumers = @(rg -l 'buildCatalogEntries' tests --glob '*.test.ts' | Where-Object { [IO.Path]::GetFileName($_) -notin $verifiedNames })
bun scripts/test.ts --changed=dev --timeout 45000 @remainingBuilderConsumers

969 passed, 2 skipped, 0 failed, 9,362 assertions across 41 files, 75.62 seconds. The wrapper resolved origin/dev to the base above and selected all 41 supplied files. The two existing Windows skips are EACCES on a configured regular catalog file is indeterminate and an unresolvable surface symlink is indeterminate in codex-native-residue.test.ts.

Combined: 1,771 passed, 2 skipped, 0 failed across 54 distinct files.

  • bun run typecheck: passed.
  • bun run structure:check: passed.
  • bun scripts/file-size-ratchet.ts: passed; no baseline increases.
  • bun run privacy:scan: passed.
  • git diff --check and staged diff check: passed.
  • From docs-site/, bun install --frozen-lockfile reported no package changes; bun run build passed with 577 pages / 81,200 internal links, 22.27 seconds.

Full-suite scope exception: the repository has 2,326 backend test files. An exhaustive local run is disproportionate to this bounded catalog projection, so the focused regressions and remaining named builder consumers above were run instead. The full repository suite was not run. Whole-repository and cross-platform execution remain separate CI coverage; this PR does not change the Ubuntu-only PR CI policy.

An additional in-session static review found no concrete blocker in declaration conflicts, row authority, stale tiers, defaults or writer interactions. That review did not execute tests and is not maintainer approval. The local HTTP test uses disposable configuration and synthetic provider metadata; it does not establish rendered Desktop selection, provider entitlement or a successful paid Ultra Fast inference. Hosted results are separate from the local receipts above.

Current-head hosted status (27d095b4f9731e366fc191e4655bb17bb2d0a45d), refreshed by lane 7115 on 2026-10-15: maintainer authorization was granted to the existing Ubuntu PR CI, Catalog async contracts, and React Doctor runs. Runner selection, change detection, Catalog async contracts (Ubuntu), and React Doctor passed; main Ubuntu test shards, gates and smoke jobs remain queued. This is not passing executable CI evidence. The pre-edit label, hygiene and enforce-target runs succeeded; earlier cancelled label/enforce-target runs were superseded. This verification update schedules fresh description checks. No cross-platform workflow was dispatched. GOAT rejected CI watching from this delegated subagent because the parent thread owns the PR; the parent must monitor the remaining jobs. Maintainer approval and passing current-head executable CI remain outstanding.

Review follow-up on 2026-10-15: CodeRabbit completed its current-head review with no actionable comments and 100% docstring coverage. There are no inline review comments or unresolved review threads. The unchanged source diff was checked against that feedback; no additional code fix or validation rerun was warranted. This is not maintainer approval. The later lane verification below records workflow authorization separately.

Lane 7115 verification (2026-10-15)

Reviewed the contributor's unchanged head against current origin/dev (7640a942b35044c974e534b84d5a8049f4a8ae9a). The live builder previously skipped the persisted merge's configured-tier overlay. Its new overlay uses the same captured capability declarations and native/account/combo exclusions, strips stale template tiers, and preserves the ordinary default. No fix-up commit was necessary; the original author and commit remain intact. There are no inline review threads.

Regression proof: temporarily restoring only build-entries.ts from origin/dev, then running bun scripts/test.ts --timeout 45000 tests/codex-integration/ultrafast-live-catalog.test.ts, produced 5 pass / 3 fail, specifically missing Ultra Fast in the direct builder, routed alias and real HTTP response. The original contributor file was restored in a finally block; the worktree is clean.

Exact focused command:

OCX_TEST_NO_QUEUE=1 bun scripts/test.ts --parallel=1 --timeout 45000 tests/codex-integration/ultrafast-live-catalog.test.ts tests/codex-integration/configured-ultrafast-picker.test.ts tests/codex-integration/native-ultrafast-picker.test.ts tests/codex-integration/ultrafast-tier-honesty.test.ts tests/codex-integration/codex-catalog.test.ts tests/codex-integration/fast-row.test.ts tests/codex-integration/fast-row-listing.test.ts tests/service/service-tier-capability.test.ts tests/routing/fastwire-policy.test.ts tests/routing/fastwire-characterization-wire.test.ts tests/test-layout.test.ts tests/test-layout-tooling.test.ts tests/ci-workflows/file-size-ratchet.test.ts tests/lab/core-lab-boundary.test.ts

811 pass / 0 fail across 14 files; 3,977 assertions. Includes persisted writers, native tiers, wire policy, optional-Lab boundary, test-layout guards and file-size guard.

Exact bounded changed-mode command (the 41 remaining files found with rg -l 'buildCatalogEntries' tests --glob '*.test.ts', excluding the already verified focused files):

OCX_TEST_NO_QUEUE=1 bun run test:changed --parallel=1 --timeout 45000 tests/adapters/google/google-models-listing.test.ts tests/codex-integration/catalog-auto-review-row.test.ts tests/codex-integration/catalog-cursor-search.test.ts tests/codex-integration/catalog-custom-ordering.test.ts tests/codex-integration/catalog-full-picker-order.test.ts tests/codex-integration/catalog-input-modality-enum.test.ts tests/codex-integration/catalog-opencode-go-context-window.test.ts tests/codex-integration/catalog-routed-comp-hash.test.ts tests/codex-integration/catalog-verbosity-default.test.ts tests/codex-integration/catalog-zero-credit-picker.test.ts tests/codex-integration/codex-catalog-golden.test.ts tests/codex-integration/codex-catalog-identity-neutral.test.ts tests/codex-integration/codex-catalog-ladders.test.ts tests/codex-integration/codex-catalog-model-picker-order.test.ts tests/codex-integration/codex-forward-access-programs-writer.test.ts tests/codex-integration/codex-native-residue.test.ts tests/codex-integration/codex-tool-mode.test.ts tests/codex-integration/codex-v2-gate.test.ts tests/codex-integration/configured-native-models.test.ts tests/codex-integration/discovered-native-models.test.ts tests/codex-integration/gpt6-native-rows.test.ts tests/codex-integration/gpt61-sol-rows.test.ts tests/codex-integration/multi-agent-keep-native-v1.test.ts tests/codex-integration/native-alias-maintainer-regressions.test.ts tests/codex-integration/native-model-toggle.test.ts tests/codex-integration/reasoning-effort.test.ts tests/codex-integration/reserve-catalog.test.ts tests/codex-integration/slug-codec.test.ts tests/codex-integration/vendor-context.test.ts tests/e2e-style/phase100-native-parity.test.ts tests/gui/volcengine-providers.test.ts tests/providers/azure-vendor-metadata.test.ts tests/providers/cursor/cursor-static-catalog.test.ts tests/providers/kiro/kiro-adapter.test.ts tests/providers/meta-muse-wonder.test.ts tests/providers/ollama/ollama-native-reasoning-wire.test.ts tests/providers/ollama/ollama-native.test.ts tests/providers/opengateway-provider.test.ts tests/providers/provider-antigravity-family-catalog.test.ts tests/providers/provider-model-aliases.test.ts tests/providers/provider-registry-parity.test.ts

971 pass / 0 fail across 41 files; 9,366 assertions. Comparison resolved to origin/dev at the base above. Combined lane execution: 1,782 pass / 0 fail across 55 distinct files.

Additional commands: bun run typecheck, bun run structure:check, bun run privacy:scan, bun scripts/file-size-ratchet.ts, and git diff --check all passed. No source changes followed these checks. The contributor's unchanged documentation build receipt above remains applicable; lane 7115 did not rerun that build.

Resource exception: concurrent lanes share one 16-core machine. The focused invocation was initially queued behind the user-wide test lock for over five minutes and was stopped before executing; the runner's supported OCX_TEST_NO_QUEUE=1 option then enabled intentional bounded overlap with one worker. OCX_TEST_NO_QUEUE=1 bun run test:changed --parallel=2 --timeout 45000 was also attempted without filters, but stopped after over three minutes of graph evaluation with no test result, to bound contention. That unfiltered attempt is not a passing result. The bounded changed-mode run above passed. No full bun run test was run, as requested for the concurrent triage bundle. Exhaustive import-graph/full-suite coverage remains with Ubuntu CI; macOS/Windows coverage remains with the orchestrator. No rendered Desktop selection, provider entitlement or paid inference was exercised.

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. This change projects existing explicit capability metadata; it does not change credentials, authorization, provider destinations or default tier demand.

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

  • New Features

    • Codex model catalogs now show Ultra Fast for eligible routed models when explicitly configured, including models discovered through the live catalog.
    • Native models can gain a missing Ultra Fast choice without changing their default tier.
  • Bug Fixes

    • Ultra Fast choices are no longer inferred from ordinary Fast support or model names alone. Disabling the option removes only generated choices, preserving custom tier settings.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: lidge-jun/opencodex/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 60d20914-0d96-4bc5-bbff-cd873904a0d2
📥 Commits

Reviewing files that changed from the base of the PR and between 7640a94 and 27d095b.

📒 Files selected for processing: 8
  • docs-site/src/content/docs/guides/codex-app-models.md
  • docs-site/src/content/docs/ko/guides/codex-app-models.md
  • scripts/test-layout/layout.json
  • src/codex/catalog/build-entries.ts
  • src/codex/catalog/configured-tiers.ts
  • structure/catalog.md
  • tests/codex-integration/ultrafast-live-catalog.test.ts
  • tests/fixtures/test-layout-expected.json

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

The catalog builder now applies configured Ultra Fast choices to eligible routed entries. Tests cover builder behavior and HTTP catalog output. Documentation describes routed and native/account behavior, and the new integration test is assigned to the codex-integration shard.

Changes: Ultra Fast Catalog Projection

Layer / File(s) Summary
Apply declarations to catalog entries
src/codex/catalog/build-entries.ts:51, 114-121, src/codex/catalog/configured-tiers.ts:15, structure/catalog.md:115, docs-site/src/content/docs/guides/codex-app-models.md:344-355, docs-site/src/content/docs/ko/guides/codex-app-models.md:201-213
The builder derives configured Ultra Fast slugs and applies them to eligible routed entries. The documentation describes eligibility, generated-choice ownership, and behavior for routed, native, and account-bound entries.
Test builder and HTTP catalog output
tests/codex-integration/ultrafast-live-catalog.test.ts:1-135, scripts/test-layout/layout.json:1752, tests/fixtures/test-layout-expected.json:1129
Integration tests check builder output, exclusions, duplicate declarations, and repeated HTTP catalog results. The test layout assigns the new test to codex-integration.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 27d09

No actionable issue is established in this change. Complete the required review and executable CI checks before merging the draft PR.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 3 files. (5 skipped: 5 …
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the primary change: adding Ultra Fast to live Codex model discovery.
✨ 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

✅ Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the bug Something isn't working label Oct 15, 2026
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

✅ READY

  • 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

@lidge-jun

Copy link
Copy Markdown
Owner

Being carried into #7220 with your authorship preserved (own commit + Co-authored-by); this PR will be closed when the bundle lands on dev.

lidge-jun added a commit that referenced this pull request Oct 16, 2026
… ids and auto-review override (#7115, #7126, #7173, #6867) (#7220)

Carried from #7115, #7126, #7173, #6867 (one commit per source PR, original authors preserved).

Remote exact-head validation (hosted GitHub Actions stalled; local tests not run by maintainer rule): union candidate codex/prr-integ-6 (368006f, tree 27fdc37) on mini (Windows) and lidge (Linux), typecheck + full suite, compared with base-dev 4ae4936 on each host.

Co-authored-by: 정우철 <oocheol@naver.com>
Co-authored-by: Rafael Moreira <rrmlima@gmail.com>
Co-authored-by: sechmachine <97589681+sechmachine727@users.noreply.github.com>
@lidge-jun

Copy link
Copy Markdown
Owner

Landed on dev in f6e6f1b via #7220 (your change is its own commit in that bundle, and the squash keeps your authorship as Co-authored-by). Thank you!

@lidge-jun lidge-jun closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working review-ready

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants