Summary
OmO 4.16.2 writes a stale GPT-5.5 profile into existing project .codex/config.toml files during SessionStart. Because project config overrides the user and built-in model defaults, new Codex chats in that project use GPT-5.5 even though current Codex defaults to gpt-5.6-sol.
Environment
- LazyCodex / OmO version: 4.16.2
- Codex CLI version: 0.144.0-alpha.4
- Codex App version: 26.707.3748.0
- OS: Windows 11, build 26200
- Install method: Codex plugin marketplace/cache
- Model expected from current Codex:
gpt-5.6-sol
Repository Decision
Reproduction
-
Install or enable OmO 4.16.2.
-
Create a trusted project with an existing .codex/config.toml that has no root model settings, for example:
[mcp_servers.example]
enabled = false
-
Leave OMO_CODEX_CONFIG_MIGRATION_DISABLED unset.
-
Start a new Codex session in that project.
-
Read .codex/config.toml or open the new-chat model picker.
Expected Behavior
A project config with no explicit model should continue inheriting the current Codex default, gpt-5.6-sol. OmO should preserve an explicit user model when one exists.
Actual Behavior
The SessionStart migration prepends:
model = "gpt-5.5"
model_context_window = 400000
model_reasoning_effort = "high"
plan_mode_reasoning_effort = "xhigh"
New chats in that project consequently default to GPT-5.5.
Evidence
The latest LazyCodex source was exercised in four isolated fixtures:
- Migration enabled, run 1: the four GPT-5.5 settings were added.
- Migration enabled, run 2: the same four settings were added.
LAZYCODEX_CONFIG_MIGRATION_DISABLED=1, run 1: the input config remained unchanged.
LAZYCODEX_CONFIG_MIGRATION_DISABLED=1, run 2: the input config remained unchanged.
Related issues #118 and #120 address GPT-5.6 multi-agent schema handling and explicit model_catalog_json routing. They do not cover the stale root model profile written into project config.
Root Cause
OmO registers scripts/auto-update.mjs as a SessionStart hook. Its config migration scans both the user config and existing project .codex/config.toml files. When a config contains no root model settings, shouldApplyCatalog() selects the bundled current profile. OmO 4.16.2 still bundles 2026-06-04.gpt-5.5-400k-reviewer-high, so it materializes GPT-5.5 into the project layer and overrides Codex's GPT-5.6 default.
Proposed Fix
- Preserve model inheritance for project configs that contain no explicit root model settings.
- Update the bundled managed profile from GPT-5.5 to the current supported Codex model as an immediate compatibility fix.
- Resolve the managed default from current Codex model metadata so future model releases do not require a static catalog update.
- Remove previously managed GPT-5.5 fields when the migration state proves OmO wrote them and the user has not customized them.
- Add regression tests for project configs containing only MCP, hook, feature, or agent settings.
Verification Plan
This issue or PR was generated by LazyCodex.
Tag: lazycodex-generated
Summary
OmO 4.16.2 writes a stale GPT-5.5 profile into existing project
.codex/config.tomlfiles duringSessionStart. Because project config overrides the user and built-in model defaults, new Codex chats in that project use GPT-5.5 even though current Codex defaults togpt-5.6-sol.Environment
gpt-5.6-solRepository Decision
code-yeongyu/lazycodexSessionStarthook and disappears whenOMO_CODEX_CONFIG_MIGRATION_DISABLED=1is set.mainat132a61da36e2e281df97edb90cbf08423df8924cstill declares GPT-5.5 in[plugins/omo/model-catalog.json](https://github.com/code-yeongyu/lazycodex/blob/132a61da36e2e281df97edb90cbf08423df8924c/plugins/omo/model-catalog.json#L2-L7).[migrate-codex-config.mjs](https://github.com/code-yeongyu/lazycodex/blob/132a61da36e2e281df97edb90cbf08423df8924c/plugins/omo/scripts/migrate-codex-config.mjs#L68-L76)applies that catalog when root model settings are absent, and the project config path is written on SessionStart.1f0566d3f59298d1bb88820a0d35294f1eeb07ealistsgpt-5.6-solfirst in[codex-rs/models-manager/models.json](https://github.com/openai/codex/blob/1f0566d3f59298d1bb88820a0d35294f1eeb07ea/codex-rs/models-manager/models.json#L1-L5). Project.codex/config.tomlhas higher precedence than user config in[codex-rs/config/src/loader/README.md](https://github.com/openai/codex/blob/1f0566d3f59298d1bb88820a0d35294f1eeb07ea/codex-rs/config/src/loader/README.md#L24-L35).Reproduction
Install or enable OmO 4.16.2.
Create a trusted project with an existing
.codex/config.tomlthat has no root model settings, for example:Leave
OMO_CODEX_CONFIG_MIGRATION_DISABLEDunset.Start a new Codex session in that project.
Read
.codex/config.tomlor open the new-chat model picker.Expected Behavior
A project config with no explicit model should continue inheriting the current Codex default,
gpt-5.6-sol. OmO should preserve an explicit user model when one exists.Actual Behavior
The SessionStart migration prepends:
New chats in that project consequently default to GPT-5.5.
Evidence
The latest LazyCodex source was exercised in four isolated fixtures:
LAZYCODEX_CONFIG_MIGRATION_DISABLED=1, run 1: the input config remained unchanged.LAZYCODEX_CONFIG_MIGRATION_DISABLED=1, run 2: the input config remained unchanged.Related issues #118 and #120 address GPT-5.6 multi-agent schema handling and explicit
model_catalog_jsonrouting. They do not cover the stale root model profile written into project config.Root Cause
OmO registers
scripts/auto-update.mjsas aSessionStarthook. Its config migration scans both the user config and existing project.codex/config.tomlfiles. When a config contains no root model settings,shouldApplyCatalog()selects the bundled current profile. OmO 4.16.2 still bundles2026-06-04.gpt-5.5-400k-reviewer-high, so it materializes GPT-5.5 into the project layer and overrides Codex's GPT-5.6 default.Proposed Fix
Verification Plan
gpt-5.6-sol.OMO_CODEX_CONFIG_MIGRATION_DISABLED=1still suppresses all config migration.This issue or PR was generated by LazyCodex.
Tag: lazycodex-generated