Skip to content

OmO 4.16.2 SessionStart migration overrides the Codex GPT-5.6 default with stale GPT-5.5 settings #123

Description

@sevelee

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

  1. Install or enable OmO 4.16.2.

  2. Create a trusted project with an existing .codex/config.toml that has no root model settings, for example:

    [mcp_servers.example]
    enabled = false
  3. Leave OMO_CODEX_CONFIG_MIGRATION_DISABLED unset.

  4. Start a new Codex session in that project.

  5. 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

  1. Preserve model inheritance for project configs that contain no explicit root model settings.
  2. Update the bundled managed profile from GPT-5.5 to the current supported Codex model as an immediate compatibility fix.
  3. Resolve the managed default from current Codex model metadata so future model releases do not require a static catalog update.
  4. Remove previously managed GPT-5.5 fields when the migration state proves OmO wrote them and the user has not customized them.
  5. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions