{
"schemaVersion": 1,
"generatedAt": "1786958898s since unix epoch",
"overallStatus": "warning",
"codexVersion": "0.147.0",
"checks": {
"app_server.status": {
"id": "app_server.status",
"category": "app-server",
"status": "ok",
"summary": "background server is not running",
"details": {
"control socket": "C:\\Users\\alexa\\.codex\\app-server-control\\app-server-control.sock",
"daemon state dir": "C:\\Users\\alexa\\.codex\\app-server-daemon",
"mode": "ephemeral",
"pid file": "C:\\Users\\alexa\\.codex\\app-server-daemon\\app-server.pid (missing)",
"settings": "C:\\Users\\alexa\\.codex\\app-server-daemon\\settings.json (missing)",
"status": "not running",
"update-loop pid file": "C:\\Users\\alexa\\.codex\\app-server-daemon\\app-server-updater.pid (missing)"
},
"remediation": null,
"durationMs": 0
},
"auth.credentials": {
"id": "auth.credentials",
"category": "auth",
"status": "ok",
"summary": "auth is configured",
"details": {
"auth file": "C:\\Users\\alexa\\.codex\\auth.json",
"auth storage mode": "File",
"stored API key": "false",
"stored ChatGPT tokens": "true",
"stored agent identity": "false",
"stored auth mode": "chatgpt"
},
"remediation": null,
"durationMs": 0
},
"config.load": {
"id": "config.load",
"category": "config",
"status": "ok",
"summary": "config loaded",
"details": {
"CODEX_HOME": "C:\\Users\\alexa\\.codex",
"config.toml": "C:\\Users\\alexa\\.codex\\config.toml",
"config.toml parse": "ok",
"cwd": "C:\\Users\\alexa",
"enabled feature flags": "<redacted>",
"feature flag overrides": "apps=false",
"feature flags enabled": "38",
"log dir": "C:\\Users\\alexa\\.codex\\log",
"mcp servers": "17",
"model": "gpt-5.6-sol",
"model provider": "openai",
"sqlite home": "C:\\Users\\alexa\\.codex"
},
"remediation": null,
"durationMs": 0
},
"git.environment": {
"id": "git.environment",
"category": "git",
"status": "ok",
"summary": "git version 2.55.0.windows.3",
"details": {
"PATH git #1": "C:\\Program Files\\Git\\cmd\\git.exe",
"PATH git entries": "1",
"git build options": "git version 2.55.0.windows.3; cpu: x86_64; built from commit: 52ca1113d651127f89477a8763f86ab20f645e1d; sizeof-long: 4; sizeof-size_t: 8; shell-path: D:/git-sdk-64/usr/bin/sh; rust: disabled; feature: fsmonitor--daemon; gettext: enabled; libcurl: 8.21.0; OpenSSL: OpenSSL 3.5.7 9 Jun 2026; zlib: 1.3.2; SHA-1: SHA1_DC; SHA-256: SHA256_BLK; default-ref-format: files; default-hash: sha1",
"git exec path": "C:/Program Files/Git/mingw64/libexec/git-core",
"git version": "git version 2.55.0.windows.3",
"repo detected": "false",
"selected git": "C:\\Program Files\\Git\\cmd\\git.exe"
},
"remediation": null,
"durationMs": 52
},
"installation": {
"id": "installation",
"category": "install",
"status": "ok",
"summary": "installation looks consistent",
"details": {
"current executable": "C:\\Users\\alexa\\AppData\\Local\\Microsoft\\WinGet\\Packages\\OpenAI.Codex__DefaultSource\\codex-x86_64-pc-windows-msvc.exe",
"install context": "other",
"managed by bun": "false",
"managed by npm": "false",
"managed by pnpm": "false",
"managed package root": "not set"
},
"remediation": null,
"durationMs": 52
},
"mcp.config": {
"id": "mcp.config",
"category": "mcp",
"status": "warning",
"summary": "MCP configuration has optional issues",
"details": {
"configured servers": "17",
"disabled servers": "12",
"optional reachability failed": "perplexity: https://api.perplexity.ai/mcp (HEAD request timed out; GET request timed out)",
"stdio servers": "2",
"streamable_http servers": "15"
},
"remediation": "Set the missing MCP env vars or disable the affected server.",
"durationMs": 8173
},
"network.env": {
"id": "network.env",
"category": "network",
"status": "ok",
"summary": "network-related environment looks readable",
"details": {
"proxy env vars": "none"
},
"remediation": null,
"durationMs": 0
},
"network.provider_reachability": {
"id": "network.provider_reachability",
"category": "reachability",
"status": "ok",
"summary": "active provider endpoints are reachable over HTTP",
"details": {
"ChatGPT base URL": "https://chatgpt.com/backend-api/ reachable (HTTP 403)",
"reachability mode": "ChatGPT auth"
},
"remediation": null,
"durationMs": 121
},
"network.websocket_reachability": {
"id": "network.websocket_reachability",
"category": "websocket",
"status": "ok",
"summary": "Responses WebSocket handshake succeeded",
"details": {
"DNS": "2 IPv4, 0 IPv6, first IPv4",
"auth mode": "chatgpt",
"connect timeout": "15000 ms",
"endpoint": "wss://chatgpt.com/backend-api/<redacted>",
"handshake result": "HTTP 101 Switching Protocols",
"model provider": "openai",
"models etag present": "true",
"provider name": "OpenAI",
"proxy env vars": "none",
"reasoning header": "false",
"server model present": "false",
"supports websockets": "true",
"wire API": "responses"
},
"remediation": null,
"durationMs": 728
},
"runtime.provenance": {
"id": "runtime.provenance",
"category": "runtime",
"status": "ok",
"summary": "running local build on windows-x86_64",
"details": {
"commit": "unknown",
"current executable": "C:\\Users\\alexa\\AppData\\Local\\Microsoft\\WinGet\\Packages\\OpenAI.Codex__DefaultSource\\codex-x86_64-pc-windows-msvc.exe",
"install method": "other",
"platform": "windows-x86_64",
"version": "0.147.0"
},
"remediation": null,
"durationMs": 0
},
"runtime.search": {
"id": "runtime.search",
"category": "search",
"status": "ok",
"summary": "search is OK (system)",
"details": {
"search command": "rg.exe",
"search command readiness": "ripgrep 15.2.0 (rev e89fff89ac)",
"search provider": "system"
},
"remediation": null,
"durationMs": 16
},
"sandbox.helpers": {
"id": "sandbox.helpers",
"category": "sandbox",
"status": "ok",
"summary": "sandbox configuration is readable",
"details": {
"approval policy": "OnRequest",
"codex-linux-sandbox helper": "none",
"execve wrapper helper": "none",
"filesystem sandbox": "restricted",
"network sandbox": "enabled"
},
"remediation": null,
"durationMs": 0
},
"state.paths": {
"id": "state.paths",
"category": "state",
"status": "ok",
"summary": "state paths and databases are inspectable",
"details": {
"CODEX_HOME": "C:\\Users\\alexa\\.codex (dir)",
"active rollout files": "93 files, 217537856 total bytes, 2339116 average bytes",
"archived rollout files": "2 files, 810149 total bytes, 405074 average bytes",
"goals DB": "C:\\Users\\alexa\\.codex\\goals_1.sqlite (file)",
"goals DB integrity": "ok",
"log DB": "C:\\Users\\alexa\\.codex\\logs_2.sqlite (file)",
"log DB integrity": "ok",
"log dir": "C:\\Users\\alexa\\.codex\\log (missing)",
"memories DB": "C:\\Users\\alexa\\.codex\\memories_1.sqlite (file)",
"memories DB integrity": "ok",
"queue DB": "C:\\Users\\alexa\\.codex\\queue_1.sqlite (file)",
"queue DB integrity": "ok",
"sqlite home": "C:\\Users\\alexa\\.codex (dir)",
"state DB": "C:\\Users\\alexa\\.codex\\state_5.sqlite (file)",
"state DB integrity": "ok",
"thread history DB": "C:\\Users\\alexa\\.codex\\thread_history_1.sqlite (file)",
"thread history DB integrity": "ok"
},
"remediation": null,
"durationMs": 937
},
"state.rollout_db_parity": {
"id": "state.rollout_db_parity",
"category": "threads",
"status": "ok",
"summary": "rollout files and state DB thread inventory agree",
"details": {
"default model provider": "openai",
"rollout DB active files": "93",
"rollout DB active rows": "93",
"rollout DB archive mismatches": "0",
"rollout DB archived files": "2",
"rollout DB archived rows": "2",
"rollout DB duplicate DB paths": "0",
"rollout DB duplicate rollout thread ids": "0",
"rollout DB malformed file names": "0",
"rollout DB missing active rows": "0",
"rollout DB missing archived rows": "0",
"rollout DB model providers": "openai=92, custom-gateway=3",
"rollout DB rows": "95",
"rollout DB scan cap reached": "false",
"rollout DB scan errors": "0",
"rollout DB sources": "cli=87, vscode=5, subagent:thread_spawn=3",
"rollout DB stale rows": "0"
},
"remediation": null,
"durationMs": 82
},
"system.environment": {
"id": "system.environment",
"category": "system",
"status": "ok",
"summary": "OS language en-US",
"details": {
"EDITOR": "not set",
"VISUAL": "not set",
"os": "Windows 10.0.26200 (Windows 11 Professional) [64-bit]",
"os language": "en-US",
"os type": "Windows",
"os version": "10.0.26200"
},
"remediation": null,
"durationMs": 0
},
"terminal.env": {
"id": "terminal.env",
"category": "terminal",
"status": "ok",
"summary": "terminal metadata was detected",
"details": {
"WT_SESSION": "present",
"color output": "enabled",
"console input code page": "850",
"console output code page": "850",
"stderr console mode": "0x00000007 (VT processing: true)",
"stderr is terminal": "true",
"stdin is terminal": "true",
"stdout console mode": "0x00000007 (VT processing: true)",
"stdout is terminal": "true",
"terminal": "Windows Terminal",
"terminal size": "291x77"
},
"remediation": null,
"durationMs": 0
},
"terminal.title": {
"id": "terminal.title",
"category": "title",
"status": "ok",
"summary": "terminal title default",
"details": {
"terminal title activity": "true",
"terminal title items": "activity, project-name",
"terminal title project source": "cwd",
"terminal title project value": "alexa",
"terminal title source": "default"
},
"remediation": null,
"durationMs": 0
},
"updates.status": {
"id": "updates.status",
"category": "updates",
"status": "ok",
"summary": "update configuration is locally consistent",
"details": {
"cached latest version": "0.147.0",
"check for update on startup": "true",
"last checked at": "2026-08-16T15:24:31.285704800Z",
"latest version": "0.147.0",
"latest version status": "current version is not older",
"update action": "manual or unknown",
"version cache": "C:\\Users\\alexa\\.codex\\version.json"
},
"remediation": null,
"durationMs": 312
}
}
}
What version of Codex CLI is running?
codex-cli 0.147.0
What subscription do you have?
ChatGPT Pro 5x
Which model were you using?
No response
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What terminal emulator and version are you using (if applicable)?
PowerShell 7.6.5
Codex doctor report
codex-x86_64-pc-windows-msvc doctor --json
{ "schemaVersion": 1, "generatedAt": "1786958898s since unix epoch", "overallStatus": "warning", "codexVersion": "0.147.0", "checks": { "app_server.status": { "id": "app_server.status", "category": "app-server", "status": "ok", "summary": "background server is not running", "details": { "control socket": "C:\\Users\\alexa\\.codex\\app-server-control\\app-server-control.sock", "daemon state dir": "C:\\Users\\alexa\\.codex\\app-server-daemon", "mode": "ephemeral", "pid file": "C:\\Users\\alexa\\.codex\\app-server-daemon\\app-server.pid (missing)", "settings": "C:\\Users\\alexa\\.codex\\app-server-daemon\\settings.json (missing)", "status": "not running", "update-loop pid file": "C:\\Users\\alexa\\.codex\\app-server-daemon\\app-server-updater.pid (missing)" }, "remediation": null, "durationMs": 0 }, "auth.credentials": { "id": "auth.credentials", "category": "auth", "status": "ok", "summary": "auth is configured", "details": { "auth file": "C:\\Users\\alexa\\.codex\\auth.json", "auth storage mode": "File", "stored API key": "false", "stored ChatGPT tokens": "true", "stored agent identity": "false", "stored auth mode": "chatgpt" }, "remediation": null, "durationMs": 0 }, "config.load": { "id": "config.load", "category": "config", "status": "ok", "summary": "config loaded", "details": { "CODEX_HOME": "C:\\Users\\alexa\\.codex", "config.toml": "C:\\Users\\alexa\\.codex\\config.toml", "config.toml parse": "ok", "cwd": "C:\\Users\\alexa", "enabled feature flags": "<redacted>", "feature flag overrides": "apps=false", "feature flags enabled": "38", "log dir": "C:\\Users\\alexa\\.codex\\log", "mcp servers": "17", "model": "gpt-5.6-sol", "model provider": "openai", "sqlite home": "C:\\Users\\alexa\\.codex" }, "remediation": null, "durationMs": 0 }, "git.environment": { "id": "git.environment", "category": "git", "status": "ok", "summary": "git version 2.55.0.windows.3", "details": { "PATH git #1": "C:\\Program Files\\Git\\cmd\\git.exe", "PATH git entries": "1", "git build options": "git version 2.55.0.windows.3; cpu: x86_64; built from commit: 52ca1113d651127f89477a8763f86ab20f645e1d; sizeof-long: 4; sizeof-size_t: 8; shell-path: D:/git-sdk-64/usr/bin/sh; rust: disabled; feature: fsmonitor--daemon; gettext: enabled; libcurl: 8.21.0; OpenSSL: OpenSSL 3.5.7 9 Jun 2026; zlib: 1.3.2; SHA-1: SHA1_DC; SHA-256: SHA256_BLK; default-ref-format: files; default-hash: sha1", "git exec path": "C:/Program Files/Git/mingw64/libexec/git-core", "git version": "git version 2.55.0.windows.3", "repo detected": "false", "selected git": "C:\\Program Files\\Git\\cmd\\git.exe" }, "remediation": null, "durationMs": 52 }, "installation": { "id": "installation", "category": "install", "status": "ok", "summary": "installation looks consistent", "details": { "current executable": "C:\\Users\\alexa\\AppData\\Local\\Microsoft\\WinGet\\Packages\\OpenAI.Codex__DefaultSource\\codex-x86_64-pc-windows-msvc.exe", "install context": "other", "managed by bun": "false", "managed by npm": "false", "managed by pnpm": "false", "managed package root": "not set" }, "remediation": null, "durationMs": 52 }, "mcp.config": { "id": "mcp.config", "category": "mcp", "status": "warning", "summary": "MCP configuration has optional issues", "details": { "configured servers": "17", "disabled servers": "12", "optional reachability failed": "perplexity: https://api.perplexity.ai/mcp (HEAD request timed out; GET request timed out)", "stdio servers": "2", "streamable_http servers": "15" }, "remediation": "Set the missing MCP env vars or disable the affected server.", "durationMs": 8173 }, "network.env": { "id": "network.env", "category": "network", "status": "ok", "summary": "network-related environment looks readable", "details": { "proxy env vars": "none" }, "remediation": null, "durationMs": 0 }, "network.provider_reachability": { "id": "network.provider_reachability", "category": "reachability", "status": "ok", "summary": "active provider endpoints are reachable over HTTP", "details": { "ChatGPT base URL": "https://chatgpt.com/backend-api/ reachable (HTTP 403)", "reachability mode": "ChatGPT auth" }, "remediation": null, "durationMs": 121 }, "network.websocket_reachability": { "id": "network.websocket_reachability", "category": "websocket", "status": "ok", "summary": "Responses WebSocket handshake succeeded", "details": { "DNS": "2 IPv4, 0 IPv6, first IPv4", "auth mode": "chatgpt", "connect timeout": "15000 ms", "endpoint": "wss://chatgpt.com/backend-api/<redacted>", "handshake result": "HTTP 101 Switching Protocols", "model provider": "openai", "models etag present": "true", "provider name": "OpenAI", "proxy env vars": "none", "reasoning header": "false", "server model present": "false", "supports websockets": "true", "wire API": "responses" }, "remediation": null, "durationMs": 728 }, "runtime.provenance": { "id": "runtime.provenance", "category": "runtime", "status": "ok", "summary": "running local build on windows-x86_64", "details": { "commit": "unknown", "current executable": "C:\\Users\\alexa\\AppData\\Local\\Microsoft\\WinGet\\Packages\\OpenAI.Codex__DefaultSource\\codex-x86_64-pc-windows-msvc.exe", "install method": "other", "platform": "windows-x86_64", "version": "0.147.0" }, "remediation": null, "durationMs": 0 }, "runtime.search": { "id": "runtime.search", "category": "search", "status": "ok", "summary": "search is OK (system)", "details": { "search command": "rg.exe", "search command readiness": "ripgrep 15.2.0 (rev e89fff89ac)", "search provider": "system" }, "remediation": null, "durationMs": 16 }, "sandbox.helpers": { "id": "sandbox.helpers", "category": "sandbox", "status": "ok", "summary": "sandbox configuration is readable", "details": { "approval policy": "OnRequest", "codex-linux-sandbox helper": "none", "execve wrapper helper": "none", "filesystem sandbox": "restricted", "network sandbox": "enabled" }, "remediation": null, "durationMs": 0 }, "state.paths": { "id": "state.paths", "category": "state", "status": "ok", "summary": "state paths and databases are inspectable", "details": { "CODEX_HOME": "C:\\Users\\alexa\\.codex (dir)", "active rollout files": "93 files, 217537856 total bytes, 2339116 average bytes", "archived rollout files": "2 files, 810149 total bytes, 405074 average bytes", "goals DB": "C:\\Users\\alexa\\.codex\\goals_1.sqlite (file)", "goals DB integrity": "ok", "log DB": "C:\\Users\\alexa\\.codex\\logs_2.sqlite (file)", "log DB integrity": "ok", "log dir": "C:\\Users\\alexa\\.codex\\log (missing)", "memories DB": "C:\\Users\\alexa\\.codex\\memories_1.sqlite (file)", "memories DB integrity": "ok", "queue DB": "C:\\Users\\alexa\\.codex\\queue_1.sqlite (file)", "queue DB integrity": "ok", "sqlite home": "C:\\Users\\alexa\\.codex (dir)", "state DB": "C:\\Users\\alexa\\.codex\\state_5.sqlite (file)", "state DB integrity": "ok", "thread history DB": "C:\\Users\\alexa\\.codex\\thread_history_1.sqlite (file)", "thread history DB integrity": "ok" }, "remediation": null, "durationMs": 937 }, "state.rollout_db_parity": { "id": "state.rollout_db_parity", "category": "threads", "status": "ok", "summary": "rollout files and state DB thread inventory agree", "details": { "default model provider": "openai", "rollout DB active files": "93", "rollout DB active rows": "93", "rollout DB archive mismatches": "0", "rollout DB archived files": "2", "rollout DB archived rows": "2", "rollout DB duplicate DB paths": "0", "rollout DB duplicate rollout thread ids": "0", "rollout DB malformed file names": "0", "rollout DB missing active rows": "0", "rollout DB missing archived rows": "0", "rollout DB model providers": "openai=92, custom-gateway=3", "rollout DB rows": "95", "rollout DB scan cap reached": "false", "rollout DB scan errors": "0", "rollout DB sources": "cli=87, vscode=5, subagent:thread_spawn=3", "rollout DB stale rows": "0" }, "remediation": null, "durationMs": 82 }, "system.environment": { "id": "system.environment", "category": "system", "status": "ok", "summary": "OS language en-US", "details": { "EDITOR": "not set", "VISUAL": "not set", "os": "Windows 10.0.26200 (Windows 11 Professional) [64-bit]", "os language": "en-US", "os type": "Windows", "os version": "10.0.26200" }, "remediation": null, "durationMs": 0 }, "terminal.env": { "id": "terminal.env", "category": "terminal", "status": "ok", "summary": "terminal metadata was detected", "details": { "WT_SESSION": "present", "color output": "enabled", "console input code page": "850", "console output code page": "850", "stderr console mode": "0x00000007 (VT processing: true)", "stderr is terminal": "true", "stdin is terminal": "true", "stdout console mode": "0x00000007 (VT processing: true)", "stdout is terminal": "true", "terminal": "Windows Terminal", "terminal size": "291x77" }, "remediation": null, "durationMs": 0 }, "terminal.title": { "id": "terminal.title", "category": "title", "status": "ok", "summary": "terminal title default", "details": { "terminal title activity": "true", "terminal title items": "activity, project-name", "terminal title project source": "cwd", "terminal title project value": "alexa", "terminal title source": "default" }, "remediation": null, "durationMs": 0 }, "updates.status": { "id": "updates.status", "category": "updates", "status": "ok", "summary": "update configuration is locally consistent", "details": { "cached latest version": "0.147.0", "check for update on startup": "true", "last checked at": "2026-08-16T15:24:31.285704800Z", "latest version": "0.147.0", "latest version status": "current version is not older", "update action": "manual or unknown", "version cache": "C:\\Users\\alexa\\.codex\\version.json" }, "remediation": null, "durationMs": 312 } } }What issue are you seeing?
Hello. I was looking into why Codex winget updates regularly fail validation (microsoft/winget-pkgs#413497 (comment)), causing very long delays in the updates and found a couple of issues.
I could prepare a PR, but the repository's contribution policy does not allow it. So here we go:
Three related problems:
codex-code-mode-host.exe, which can make Code Mode unavailable when the in-process fallback is disabled.codex-<target>.exe. If (happens in my case) WinGet cannot create its alias link and falls back to adding the package directory toPATH. This leads to a very confusing experience where the documentedcodexcommand does not exist in the system and the user has to figure out that they need to usecodex-x86_64-pc-windows-msvcinstead.NestedInstallerFiles, causing WinGet validation to execute them as standalone applications and reportValidation-Executable-Error, causing those update delays.I reproduced all three problems with Codex CLI
0.147.0.The fix requires changes to both the release process and WinGet manifest generation.
Related issue: #11283 covers the target-qualified executable name, but not the missing code-mode host or helper entries in the generated manifest.
🤖 GPT-5.6-Sol (low): Summary of the issue
Environment
0.147.0OpenAI.CodexActual package contents
The official x64 WinGet ZIP:
contains:
It does not contain:
Problem 1: missing code-mode host
After installing the package, Codex reported:
I downloaded the official host from the same
0.147.0release:Its SHA-256 matched the published release asset:
Its Authenticode signature was valid and signed by OpenAI OpCo, LLC.
After copying it beside the WinGet-installed Codex executable as:
this succeeded:
Output:
This confirms that the WinGet ZIP is missing the external host required by that session.
Problem 2:
codexis not reliably availableThe manifest requests:
but the installed executable is named:
On my system, WinGet did not create:
It instead added the package directory to the user
PATH.Consequently:
Get-Command codexfailed, while:
succeeded.
This is related to the WinGet portable-alias fallback behavior tracked in:
OpenAI can avoid depending on a future WinGet fix by naming the primary executable
codex.exeinside the WinGet ZIP.Problem 3: helpers are declared as portable entry points
Previous generated manifests, including
0.146.1, declare all three executables:This causes WinGet executable validation to try to run all three files independently.
The first two files are internal helpers requiring arguments and runtime context. They are not user-facing application entry points. Their independent execution returns errors and causes
Validation-Executable-Error.I tested a reduced manifest containing only:
WinGet still extracted the complete ZIP, including both helpers.
Therefore the helpers must remain in the archive but should not be listed under
NestedInstallerFiles.Expected package
The architecture-specific WinGet ZIP should contain:
Only the public entry point should appear in the manifest:
This would provide the following behavior:
codexworks when WinGet creates its alias link.codexalso works through WinGet's PATH fallback because the real file is namedcodex.exe.Proposed release-workflow change
The WinGet ZIP creation should copy the release executables approximately as follows:
Archive generation should fail if any required executable is absent rather than publishing a reduced ZIP.
The WinGet submission step must also generate
NestedInstallerFilescontaining onlycodex.exe. If the currentwinget-releaser/Komac integration cannot select the primary nested executable, it may require a generator option, a post-generation edit, or a custom submission step.What steps can reproduce the bug?
🤖 GPT-5.6-Sol (low): Steps to reproduce
Install Codex CLI
0.147.0through WinGet:Start a new PowerShell session and check the installed package:
Check whether the expected command exists:
On a system where WinGet cannot create its portable command link,
codexis not found because the package contains only the target-qualified executable.Locate the package directory:
Observe that the package contains:
but does not contain:
Run Codex using its actual installed filename:
Start a session that uses Code Mode and request a tool-backed operation, such as:
When the in-process fallback is unavailable, observe the startup or tool error:
Confirm the missing-host diagnosis by downloading the official host from the same release:
Expected SHA-256:
Copy the verified host beside the WinGet-installed Codex executable:
Verify that external-host execution now works:
Expected output:
The final copy is a diagnostic workaround only, not a proposed installation method.
What is the expected behavior?
codexrather thancodex-x86_64-pc-windows-msvc. When I first tried using codex, this caused a lot of frustration.Additional information
🤖 GPT-5.6-Sol (low): Release automation and source references
WinGet submission ownership
Codex submits
OpenAI.Codexto WinGet from its own release workflow usingwinget-releaser.Relevant workflow:
The WinGet job selects:
and submits the resulting package through
openai-oss-forks.Windows ZIP construction
The Windows release workflow builds:
Relevant workflow:
However, the main target-specific Codex ZIP currently copies only:
The workflow comment states that the helpers are included so WinGet installations have the required executables beside Codex, but
codex-code-mode-host.exeis not copied.Canonical Codex package documentation
The repository's package-builder documentation describes a canonical package containing:
Source:
It specifically states that release jobs should provide the signed code-mode host so that it is included beside the signed entry point.
The dedicated WinGet ZIP currently differs from this documented package structure by omitting the host.
Host resolution
Codex resolves the process host relative to the current executable, using the filename:
Source:
Therefore a host installed elsewhere, such as under a plugin directory, does not satisfy resolution for the WinGet-installed Codex executable.
🤖 GPT-5.6-Sol (low): Why the missing host was not visible in Codex 0.146.1
The
0.146.1WinGet ZIP also omittedcodex-code-mode-host.exe.Starting with the
0.144.1line, Codex could fall back to its embedded, in-process V8 implementation when the external host executable was not found:The effective behavior was:
Later changes added support for disabling the in-process fallback and returning an error when neither implementation is available:
The tested
0.147.0session explicitly reported that Code Mode would fail closed. The user's explicitconfig.tomldid not disablecode_mode_host; the exact effective configuration source that prohibited fallback was not identified.The result was:
The reduced test manifest did not cause this behavior. Installing it coincided with changing from
0.146.1to0.147.0.🤖 GPT-5.6-Sol (low): WinGet validation history and local manifest test
The published
0.146.1manifest contains:Its validation attempted to execute the main executable and both helpers. The validation reported errors, but the PR was later approved and merged manually.
This means that the previous version being present in WinGet does not establish that the manifest structure is correct.
For
0.147.0, I created a local manifest listing only the primary executable. Validation succeeded:WinGet installed the package successfully and extracted every archive member despite the manifest identifying only the primary executable.
Installed package:
Extracted files before the manual host repair:
This demonstrates the distinction between:
NestedInstallerFiles, which identifies portable application entry points.🤖 GPT-5.6-Sol (low): Related issues and previous PRs
OpenAI Codex
WinGet install exposes target-suffixed executable name instead of codex.exe #11283 — WinGet install exposes target-suffixed executable name instead of
codex.exeWinGet install exposes target-suffixed executable name instead of codex.exe #11283
fix(release): include codex.exe in windows bundle zip #11286 — attempted to include
codex.exein the Windows ZIP; closed unmergedfix(release): include codex.exe in windows bundle zip #11286
[0.144] Backport installer and code-mode reliability fixes #31913 — added missing-host fallback and related packaging repairs
[0.144] Backport installer and code-mode reliability fixes #31913
Allow disabling the in-process code-mode host fallback #35266 — added the ability to disable the in-process fallback
Allow disabling the in-process code-mode host fallback #35266
Honor disabled code mode fallback without a process host #35721 — returns a clear error when both process hosting and fallback are unavailable
Honor disabled code mode fallback without a process host #35721
WinGet
Portable alias fallback issue
Portable installers are not renamed in non-symlinked installations microsoft/winget-cli#3437
Proposed hardlink-based alias implementation
Use hardlinks for portable aliases without renaming originals microsoft/winget-cli#6308
Codex
0.147.0automated manifest PRNew version: OpenAI.Codex version 0.147.0 microsoft/winget-pkgs#413497