Summary
On Windows, ocx sync --restart-codex rewrites the Codex model catalog and restarts the Codex app-server (codex.exe app-server), but the desktop app's model picker keeps showing the stale list. Only a full quit and relaunch of the desktop app refreshes it. On macOS the same command updates the picker immediately.
The desktop UI (Electron, process name ChatGPT.exe) fetches model/list / config/read from its child app-server over stdio and caches them; it invalidates that cache on a codex-app-server-initialized event. Killing only the app-server child externally does not reliably produce that event on Windows, so the picker stays stale even though the fresh app-server has the new catalog in memory.
Reproduction
- Run
ocx sync --restart-codex while the Codex desktop app is open.
- Observe the output: catalog rewritten, app-server PIDs stopped and respawned.
- Check the process table:
codex.exe has a fresh start time (e.g. synced 20:57, new PID 8592 started 20:59) while all ChatGPT.exe UI processes keep their earlier start time.
- Open the model picker: it still lists only the old models instead of the 5 newly appended ones.
- Fully quit the desktop app and relaunch: the picker now shows the new models.
Expected: after ocx sync --restart-codex, the picker reflects the new catalog without a full app restart (as on macOS), or at minimum there is a supported way to force the refresh.
Version
2.27.0
Operating system
Windows 11 Pro (build 26200)
Logs or error output
[opencodex] Removed unsupported reasoning efforts: max, ultra
+ 5 models appended to Codex catalog (C:\Users\super\.codex\opencodex-catalog.json)
Stopping Codex app-server process(es): 15060, 5092 ...
Stopped Codex app-server PID(s): 5092, 15060
# picker still stale until full app restart
Related upstream issues (unverified status)
Note: the app is currently distributed as a beta-channel MSIX package (OpenAI.Codex 26.818.3698.0); this behavior was observed on that build and may change as the app matures.
Proposed direction
A --restart-desktop-app style option for ocx sync on Windows that gracefully closes the Electron shell (CloseMainWindow), falls back to taskkill /PID <root> /T /F bounded to the package install location, and relaunches via the AUMID (shell:AppsFolder\OpenAI.Codex_...!App). A working standalone implementation exists in scripts/restart-codex-desktop-app.ps1 (commit 58abd7b6d).
Summary
On Windows,
ocx sync --restart-codexrewrites the Codex model catalog and restarts the Codex app-server (codex.exe app-server), but the desktop app's model picker keeps showing the stale list. Only a full quit and relaunch of the desktop app refreshes it. On macOS the same command updates the picker immediately.The desktop UI (Electron, process name
ChatGPT.exe) fetchesmodel/list/config/readfrom its child app-server over stdio and caches them; it invalidates that cache on acodex-app-server-initializedevent. Killing only the app-server child externally does not reliably produce that event on Windows, so the picker stays stale even though the fresh app-server has the new catalog in memory.Reproduction
ocx sync --restart-codexwhile the Codex desktop app is open.codex.exehas a fresh start time (e.g. synced 20:57, new PID 8592 started 20:59) while allChatGPT.exeUI processes keep their earlier start time.Expected: after
ocx sync --restart-codex, the picker reflects the new catalog without a full app restart (as on macOS), or at minimum there is a supported way to force the refresh.Version
2.27.0
Operating system
Windows 11 Pro (build 26200)
Logs or error output
Related upstream issues (unverified status)
Note: the app is currently distributed as a beta-channel MSIX package (OpenAI.Codex 26.818.3698.0); this behavior was observed on that build and may change as the app matures.
Proposed direction
A
--restart-desktop-appstyle option forocx syncon Windows that gracefully closes the Electron shell (CloseMainWindow), falls back totaskkill /PID <root> /T /Fbounded to the package install location, and relaunches via the AUMID (shell:AppsFolder\OpenAI.Codex_...!App). A working standalone implementation exists inscripts/restart-codex-desktop-app.ps1(commit 58abd7b6d).