fix(catalog): honor Manager context window for suffixless custom models (#1594) - #1722
Open
LeoLin990405 wants to merge 1 commit into
Open
Conversation
apply_model_catalog_to_config returned before generating a catalog when a custom model had neither a `[window]` suffix nor bundled metadata — even if the user configured a context window in the Manager. Codex then fell back to its bundled 272000 default, so the CLI showed ~258K regardless of the 1M the user set. Generate the catalog (and propagate the window) whenever the user supplied a context window too. Adds a regression test. Fixes BigPizzaV3#1594.
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Aug 5, 2026
…#1594) PR BigPizzaV3#1722 fixed the early return in apply_model_catalog_to_config that silently dropped the Manager's context window for suffixless custom models. Codex then fell back to its bundled 272000 default and the CLI showed ~258K instead of the configured value. The fix moves the fallback parse before the early return and adds fallback.is_none() to the guard, so a user-configured context window forces catalog generation. Two integration tests failed because they set context_window=200000 while asserting no catalog generation. Updated them as follows: - apply_relay_profile_does_not_write_model_catalog_json_for_selected_models: removed context_window, preserving the original intent (no catalog when nothing is customized). - apply_relay_profile_no_catalog_when_model_list_has_no_suffix -> renamed to apply_relay_profile_generates_catalog_when_context_window_configured: now tests the positive case -- context_window set, no suffix -> catalog IS generated with the correct window value in both config.toml and the catalog JSON.
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Aug 5, 2026
…#1594) PR BigPizzaV3#1722 fixed the early return in apply_model_catalog_to_config that silently dropped the Manager's context window for suffixless custom models. Codex then fell back to its bundled 272000 default and the CLI showed ~258K instead of the configured value. The fix moves the fallback parse before the early return and adds fallback.is_none() to the guard, so a user-configured context window forces catalog generation. Two integration tests failed because they set context_window=200000 while asserting no catalog generation. Both tests now omit context_window and auto_compact_limit, preserving their original intent: no catalog when nothing is customized. Closes BigPizzaV3#1722 References BigPizzaV3#1594
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.
Root cause
apply_model_catalog_to_configreturns before generating a catalog when a custom model has neither a[window]suffix nor bundled metadata — even if the user configured a context window in the Manager. Theparse_optional_positive_u64(&profile.context_window, …)that reads the user's value sat after that early return, so it never ran. Codex then falls back to its bundled272000default (→272000 − 13840reserved ≈ 258160, the "258K" users report) regardless of the 1M they set.Repro (from #1594): custom provider on
http://127.0.0.1:57321/v1, modeldeepseek-v4-flash(native 1M), Manager context window = 1,000,000 → Codex CLI shows 258K / 258K for every model.Fix
Parse the configured window first, then generate the catalog whenever there is anything to customize — a
[window]suffix, bundled metadata, or a user-supplied context window. When the user set no window, behavior is unchanged (a plain custom model still gets no generated catalog).Verification
New regression test
generates_catalog_with_user_context_window_for_suffixless_custom_model(RED before the fix, GREEN after).cargo test -p codex-plus-core --lib→ 202 passed, 0 failed.Fixes #1594.