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
The fork (1.0.6-fork.1) implemented --model/--effort override via spawn -c (PR #2, branch fix-app-server-overrides). Upstream PR openai/codex-plugin-cc#471 ("Support GPT-5.6 models and refresh stale brokers", +1302/-161) solves the same problem better and more broadly — via RPC thread/start.config + runtime-identity respawn (plugin/codex version, not just model/effort) + broker-lock (serialization) + broker-probe + model-catalog.
Decision: replace our spawn--c mechanism with openai#471, while preserving the fork's generic shutdown-hardening that openai#471 does not include.
Branch: rebase-on-471 (pushed). Target install version: 1.0.6-fork.2 (based on the last real upstream release v1.0.6, NOT on openai#471's claimed 1.0.7 — that PR may never merge).
Bounded sendBrokerShutdown (2s) — openai#471's rewrite is bool-returning but has NO timeout; re-applied the fork's settled/finish()/setTimeout-destroy on top.
3
fork 478be42
PID-reuse guard — existingReady gate in teardownExistingBroker (openai#471 unconditionally tree-kills by pid, risking killing a recycled pid on stale sessions).
resolved model/effort/sandbox in job records (fixes openai openai#481) + reasoning-start logging. Conflict in codex.mjs resolved by hand (preserve openai#471's validateReasoningSelection + openai#506's resolved).
Broker idle-timeout (15 min no clients → process.exit) + shutdown-path corrections.
Dropped: fork 09b3a41 (graceful sendBrokerShutdown before teardown) — openai#471 already does graceful shutdown before teardown in loadReusableBrokerSessionUnlocked, so it's a duplicate.
Verification (codex-cli 0.144.4, macOS)
Tests: 119 total, 114 pass, 5 fail — all 5 pre-existing (status×2, result, resolveStateDir, task --background; reproduce identically on pure pr-471). 0 regressions. Typecheck clean.
Empirical sweep (4/4 pass):
task --effort high → rollout turn_context reasoning_effort:"high" ×3 (RPC override reaches the model — spawn--c is gone).
Replacing the override mechanism drops the working spawn--c fallback. Rollback path: 1.0.6-fork.1 is preserved in git history (fix-app-server-overrides branch + tag).
TODO before installing: claude plugin uninstall codex@openai-codex && claude plugin install codex@openai-codex (per install-local-plugin-repoint — install alone skips if the version record exists).
Context
The fork (
1.0.6-fork.1) implemented--model/--effortoverride via spawn-c(PR #2, branchfix-app-server-overrides). Upstream PR openai/codex-plugin-cc#471 ("Support GPT-5.6 models and refresh stale brokers", +1302/-161) solves the same problem better and more broadly — via RPCthread/start.config+ runtime-identity respawn (plugin/codex version, not just model/effort) +broker-lock(serialization) +broker-probe+model-catalog.Decision: replace our spawn-
-cmechanism with openai#471, while preserving the fork's generic shutdown-hardening that openai#471 does not include.Branch:
rebase-on-471(pushed). Target install version:1.0.6-fork.2(based on the last real upstream release v1.0.6, NOT on openai#471's claimed1.0.7— that PR may never merge).What's in the branch (5 layers, all merged)
thread/start.configoverride, broker-lock/probe/model-catalog, runtime-identity respawn. Replaces fork's spawn--c(ab75d49) + spawn-argv tests (eb3d78f, rewritten to RPC surface).8458741sendBrokerShutdown(2s) — openai#471's rewrite is bool-returning but has NO timeout; re-applied the fork'ssettled/finish()/setTimeout-destroy on top.478be42existingReadygate inteardownExistingBroker(openai#471 unconditionally tree-kills by pid, risking killing a recycled pid on stale sessions).resolvedmodel/effort/sandbox in job records (fixes openai openai#481) + reasoning-start logging. Conflict incodex.mjsresolved by hand (preserve openai#471'svalidateReasoningSelection+ openai#506'sresolved).process.exit) + shutdown-path corrections.Dropped: fork
09b3a41(gracefulsendBrokerShutdownbefore teardown) — openai#471 already does graceful shutdown before teardown inloadReusableBrokerSessionUnlocked, so it's a duplicate.Verification (codex-cli 0.144.4, macOS)
status×2,result,resolveStateDir,task --background; reproduce identically on purepr-471). 0 regressions. Typecheck clean.task --effort high→ rolloutturn_context reasoning_effort:"high"×3 (RPC override reaches the model — spawn--cis gone).resolved.reasoningEffort = "high"(Capture resolved model/effort/sandbox in job records openai/codex-plugin-cc#506).runningrecord retainsresolved(forensics, Job records never capture the resolved model/effort/sandbox a job ran with openai/codex-plugin-cc#481 scenario).CODEX_COMPANION_BROKER_IDLE_TIMEOUT_MS=5000).Risks / notes
-cfallback. Rollback path:1.0.6-fork.1is preserved in git history (fix-app-server-overridesbranch + tag).claude plugin uninstall codex@openai-codex && claude plugin install codex@openai-codex(per install-local-plugin-repoint —installalone skips if the version record exists).