You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LazyCodex / OMO guidance can imply that ULW-triggered or role-named subagents such as plan and reviewer are using the configured Codex agent TOML files, including model and reasoning effort. In the current native Codex spawn_agent surface observed on Windows, the parent can only pass task_name, fork_turns, and message, so the runtime does not provide an observable or enforceable way to confirm that the configured TOML-backed agent role was selected.
This creates a trust-boundary problem: users can believe LazyCodex routing policy was applied while the spawned child may simply be a generic/default native subagent named plan or reviewer.
Start a normal Codex session with LazyCodex / OMO guidance active.
Trigger ULW-style work or spawn a role-named subagent through the native tool surface, for example spawn_agent with task_name = "plan".
Ask the child to report whether it can see its configured TOML-backed role instructions, model, or reasoning effort.
Expected Behavior
LazyCodex should either:
Ensure the intended TOML-backed role is actually selected for the child agent, including model and reasoning effort; or
Detect that the current Codex runtime only exposes generic native spawn_agent fields and clearly warn that TOML-backed routing cannot be guaranteed; or
Route through a supported LazyCodex/OMO adapter that preserves the intended model/reasoning tier.
A user invoking an ULW mode or LazyCodex role should not have to guess whether plan.toml, reviewer.toml, or codex-ultrawork-reviewer.toml actually controlled the spawned child.
Actual Behavior
The active native spawn_agent surface exposed to the parent session only accepts:
task_name
fork_turns
message
It does not expose agent_type, model, or reasoning_effort fields to the parent. A child can be named plan, but that is not the same as proving the configured plan.toml was selected.
A minimal identity probe returned:
- Visible role/instructions: TOML-backed `plan-agent` dedicated instructions cannot be directly confirmed.
- Visible model: the current agent's actual model name cannot be directly confirmed.
- Visible reasoning effort: reasoning effort settings also cannot be directly confirmed.
The local config appears present and loadable, so this does not look like a simple broken-path case:
Strongly evidenced cause: LazyCodex/OMO instructions and routing expectations assume role-specific agent routing, but the currently exposed native Codex spawn_agent tool surface does not let the parent specify or verify the TOML-backed agent role, model, or reasoning effort.
What appears ruled out locally:
Missing config file: ruled out by ~/.codex/config.toml mappings and existing ~/.codex/agents/*.toml files.
Config load failure: ruled out by codex doctor --summary reporting config loaded and 0 fail.
NPM latest already fixing this: unlikely, because lazycodex-ai@4.7.5 is still the latest published package and predates the more recent June 5 LazyCodex GitHub activity.
What remains uncertain:
Whether this should be fixed entirely in Codex native subagent support, or whether LazyCodex should add a compatibility adapter/warning while Codex issue #19399 remains open.
Proposed Fix
Add a LazyCodex/OMO compatibility guard for named/TOML-backed subagent routing.
Possible approaches:
During SessionStart or first subagent orchestration, inspect the available Codex subagent tool schema or runtime capabilities.
If spawn_agent does not support selecting a configured agent type/model/reasoning effort, inject an explicit warning into ULW/review-work guidance: role names are task names only and TOML routing is not guaranteed.
Prefer a LazyCodex wrapper/adapter when available that can preserve the configured role routing.
For important roles (plan, reviewer, codex-ultrawork-reviewer, explorer), require the parent to mark the result as routing-unverified unless runtime evidence confirms the TOML-backed role was selected.
Summary
LazyCodex / OMO guidance can imply that ULW-triggered or role-named subagents such as
planandreviewerare using the configured Codex agent TOML files, including model and reasoning effort. In the current native Codexspawn_agentsurface observed on Windows, the parent can only passtask_name,fork_turns, andmessage, so the runtime does not provide an observable or enforceable way to confirm that the configured TOML-backed agent role was selected.This creates a trust-boundary problem: users can believe LazyCodex routing policy was applied while the spawned child may simply be a generic/default native subagent named
planorreviewer.Environment
lazycodex-ai@4.7.5lazycodex-ainpmlatest:4.7.5,time.modified:2026-06-03T05:03:30.285Zoh-my-openagentnpmlatest:4.7.5,time.modified:2026-06-03T05:02:33.262Zcodex-cli 0.137.0codex doctor:windows-x86_64)<workspace>Reproduction
~/.codex/agents/plan.toml~/.codex/agents/reviewer.toml~/.codex/config.toml:spawn_agentwithtask_name = "plan".Expected Behavior
LazyCodex should either:
spawn_agentfields and clearly warn that TOML-backed routing cannot be guaranteed; orA user invoking an ULW mode or LazyCodex role should not have to guess whether
plan.toml,reviewer.toml, orcodex-ultrawork-reviewer.tomlactually controlled the spawned child.Actual Behavior
The active native
spawn_agentsurface exposed to the parent session only accepts:task_namefork_turnsmessageIt does not expose
agent_type,model, orreasoning_effortfields to the parent. A child can be namedplan, but that is not the same as proving the configuredplan.tomlwas selected.A minimal identity probe returned:
The local config appears present and loadable, so this does not look like a simple broken-path case:
Relevant TOML files also exist and contain the expected model/reasoning policy:
codex doctor --summaryreports config loaded and no failures:Evidence
Commands used:
Related upstream issue in Codex itself:
Related LazyCodex orchestration issue:
Root Cause
Strongly evidenced cause: LazyCodex/OMO instructions and routing expectations assume role-specific agent routing, but the currently exposed native Codex
spawn_agenttool surface does not let the parent specify or verify the TOML-backed agent role, model, or reasoning effort.What appears ruled out locally:
~/.codex/config.tomlmappings and existing~/.codex/agents/*.tomlfiles.codex doctor --summaryreportingconfig loadedand0 fail.lazycodex-ai@4.7.5is still the latest published package and predates the more recent June 5 LazyCodex GitHub activity.What remains uncertain:
Proposed Fix
Add a LazyCodex/OMO compatibility guard for named/TOML-backed subagent routing.
Possible approaches:
spawn_agentdoes not support selecting a configured agent type/model/reasoning effort, inject an explicit warning into ULW/review-work guidance: role names are task names only and TOML routing is not guaranteed.plan,reviewer,codex-ultrawork-reviewer,explorer), require the parent to mark the result asrouting-unverifiedunless runtime evidence confirms the TOML-backed role was selected.Verification Plan
plan.tomlandreviewer.tomlwith distinct model/reasoning settings.planorreviewer.spawn_agentusage should still work when no role-specific routing is required.