Model migration prompt stores acknowledgements as [notice.model_migrations] mappings when keeping the existing model
Resolved 💬 5 comments Opened Apr 18, 2026 by Eric-Terminal Closed Apr 18, 2026
Reproduction
- Set the current model to
gpt-5.3-codex. - Start Codex and wait for the migration prompt that recommends
gpt-5.4. - Explicitly choose
Use existing model. - Check
~/.codex/config.toml.
Actual behavior
Codex writes the following entry:
[notice.model_migrations]
"gpt-5.3-codex" = "gpt-5.4"
Why this is a problem
- This looks like a real model redirect, not like “I already saw this migration prompt.”
- The user explicitly chose to keep the existing model, but the config now contains an
old -> newmapping that strongly suggests Codex may still route requests to the new model. - In the current implementation, this field is mainly used to suppress the prompt on later launches, not to persist the actual model selection. That makes the table name and stored value misleading.
Expected behavior
- Store “model migration prompt acknowledged” state in a separate config table with explicit semantics.
- Do not keep writing
old -> newmappings under[notice.model_migrations]when the user choosesUse existing model. - Continue reading the legacy field for backwards compatibility so existing users do not get prompted again.
Related but different
- #15009 is about adding a global switch to disable all model migration notices.
- #11045 is about migration prompts showing up too often.
- This issue is about the config semantics being misleading enough that users can no longer trust what model they are actually using.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗