Repository navigation
[Codex app] Allow stable cua_repl env overrides instead of replacing generated config on startup #42454
Description
What issue are you seeing?
After Codex Desktop migrated browser/computer-use control from node_repl to the generated cua_repl MCP server, existing proxy-related environment overrides no longer reach the new runtime.
The Chrome extension still connects and tab discovery can work, but page operations time out or report an unattached debugger. Manually adding the same environment variables to a complete cua_repl server definition restores Chrome, in-app Browser, and desktop control.
That workaround is not durable:
- the full
cua_repldefinition contains app-version-specific executable and plugin paths; - Codex Desktop regenerates/replaces the
cua_replserver configuration during startup; - a startup
config/batchWriteuses replace semantics, so a user cannot maintain a small overlay containing only environment variables.
At the time of the original report, this required rebuilding the full MCP definition after updates or downgrading. A later temporary launcher workaround is linked below; a supported environment override is still needed.
Environment
- macOS, Apple Silicon
- Reproduced with Codex Desktop
26.901.20858 - Bundled Codex runtime:
0.153.0-alpha.5 - Last known working build before the
cua_replmigration on this machine:26.810.52044/0.148.0-alpha.9 - Network requires a local HTTP(S) proxy
No account identifiers, credentials, local usernames, private paths, proxy ports, or private task contents are included in this report.
Steps to reproduce
- Configure proxy variables for the existing
node_replserver, includingHTTP_PROXY,HTTPS_PROXY, and the Node REPL environment allowlist. - Upgrade to a Codex Desktop build that uses generated
cua_replfor Chrome/Browser/Computer Use. - Verify that the Chrome extension connects and tabs may be listed, but page reads/actions time out.
- Add the same proxy-related variables to a complete manual
cua_repldefinition. - Restart Codex and verify that Chrome, in-app Browser, and desktop control work.
- Restart or update Codex again.
- Observe that the generated
cua_replconfiguration is replaced/regenerated, while a manually maintained full definition also becomes stale because its executable/plugin paths are versioned.
Representative failures included:
js execution timed out; kernel reset
Debugger unattached
Expected behavior
Please support one of these two behaviors:
- Preferred: provide a documented, stable user override layer for generated plugin runtimes, for example:
[mcp_servers.cua_repl.env]
HTTP_PROXY = "http://127.0.0.1:<port>"
HTTPS_PROXY = "http://127.0.0.1:<port>"
NODE_REPL_UNTRUSTED_ENV_ALLOWLIST = "HTTP_PROXY,HTTPS_PROXY"Codex should continue to own and update the generated executable, arguments, and versioned plugin paths, while merging explicit user environment overrides on top.
- Alternatively, do not replace a user-supplied
cua_replconfiguration on every startup.
A user should not need to copy the complete generated MCP definition or pin version-specific paths just to pass supported environment variables to the plugin runtime.
Why this matters
This makes Chrome, Browser, and Computer Use unusable in proxy-required environments even though the extension and local proxy are healthy. The temporary system-level launcher workaround below avoids hardcoding plugin versions, but still depends on internal plugin metadata/cache layout.
Current temporary workaround (updated 2026-09-13)
See the updated launcher/configuration instructions.
My current local system configuration uses only HTTP_PROXY, HTTPS_PROXY, and NODE_REPL_UNTRUSTED_ENV_ALLOWLIST = "HTTP_PROXY,HTTPS_PROXY". Disabling ambient networking is no longer required in my setup. I have removed BROWSER_USE_DISABLE_AMBIENT_NETWORK from both the configuration and the allowlist; the examples here have been corrected accordingly. If you copied my earlier example, remove that assignment and its allowlist entry rather than keeping ambient networking disabled.
For the newer generated cua_repl path, the legacy [mcp_servers.node_repl.env] block alone is not sufficient. The temporary approach uses /etc/codex/config.toml plus a local launcher that loads the current plugin-declared transport and overlays the proxy environment. The small env-only block in “Expected behavior” above is the requested product interface, not a claim that it already works by itself.
The earlier launcher verification covered MCP initialization, JS startup, and Chrome tab enumeration. This configuration update is not a new end-to-end retest or a guarantee that it fixes every debugger/attachment timeout. After a full app restart, verify that the live runtime actually uses the launcher, receives the proxy environment, and completes a real page read/action. A later Windows report in this thread found its live runtime still used the official launcher after restart.
Related issues
- Chrome extension deep control hangs while direct chrome.debugger works; ambient network adds ~30s delay #30841 — earlier browser/
node_replreport, resolved in my original environment; newercua_replfollow-up is tracked here - Codex Desktop Node REPL does not inherit proxy environment, causing nodeRepl.fetch and Chrome backend setup to hang on macOS #21713 —
node_repldoes not inherit proxy environment - config/batchWrite on startup rewrites config.toml and drops all unmanaged keys #42116 — startup
config/batchWritecan replace/drop unmanaged config
Activity
github-actions commentedon Sep 3, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
hi-max-wang commentedon Sep 4, 2026
Update: more durable temporary workaround
I found and verified a workaround that avoids pinning the full generated
cua_repltransport inconfig.toml.Updated 2026-09-13: my current configuration no longer sets
BROWSER_USE_DISABLE_AMBIENT_NETWORK. Remove that assignment and its allowlist entry if you copied the earlier version. Ambient networking remains enabled.On macOS, place the TOML below in
/etc/codex/config.toml(merge with existing configuration, do not replace unrelated settings). Replace/path/to/cua-repl-currentwith the absolute path to your executable local launcher, and<port>with your existing HTTP proxy port.Instead of copying version-specific
command,args, and runtime env, configurecua_repl.commandto a stable local launcher and keep only the proxy overrides inconfig.toml:The launcher:
unified-computer-useplugin version from its unversioned marketplace metadata;.mcp.json;command,args, andenv;This was verified on Codex Desktop
26.901.22334/ bundled CLI0.153.0: MCP initialization succeeded, the JS kernel started, thejs/js_resetpolicy was preserved, the Chrome extension backend was detected, and existing tabs could be enumerated.node_repldoes not need the wrapper in this setup: its generated transport remains app-managed, while the system config only supplies the three environment entries shown above.This remains only a workaround. It depends on Codex's internal bundled-plugin/cache layout and does not provide a supported user env overlay for plugin-provided MCP servers. The requested product change is still needed.
Launcher example (macOS)
Save the following as
cua-repl-currentat the absolute path used above and make it executable (chmod +x /path/to/cua-repl-current). This assumes ChatGPT.app is installed at/Applications/ChatGPT.app; adjust the first line if your installation is elsewhere. It reads the installed plugin metadata/manifest without modifying bundled plugin files.Fully quit and reopen the app after saving the configuration. Verify that the actual running runtime uses this launcher and inherits the proxy variables, then test a real page read/action. Initialization or tab enumeration alone does not prove page control is restored. A later Windows report in this thread found that the live runtime still used the official launcher after restart, so this is not a universal or officially supported fix. The launcher example above is for macOS.
The current configuration was checked on 2026-09-13; the earlier validation results above retain their original scope and are not a fresh end-to-end test of the latest build.
Lang45 commentedon Sep 4, 2026
Adding a current stock Windows reproduction that confirms the generated
cua_replconfiguration boundary.Environment
26.901.2854.00.153.026.901.22334v24.19.0Generated runtime configuration
The effective generated
cua_repldefinition uses:unified-computer-use/26.901.22334/scripts/launch.mjsenv_vars: []Presence-only check of the generated
cua_replenvironment:cua_replNODE_USE_ENV_PROXYHTTP_PROXYHTTPS_PROXYALL_PROXYNO_PROXYThe same machine has an existing effective host proxy route. A system-level overlay can add these variables to the legacy
node_repldefinition while preserving all product-generated keys, but the generatedcua_repldefinition remains unchanged and receives none of them.The user-level app-managed runtime block was rewritten after Desktop startup and previous manual proxy additions were removed. The user config does not contain a stable
cua_reploverlay; its effective definition is generated dynamically.Current stock behavior
Read-only browser discovery through
cua_replsucceeds quickly:cua.getState(): approximately0.47 sA page operation through the same generated runtime does not:
https://example.com/: outer deadline reached at60.0 sjs execution timed out; kernel reset42.5 sThis separates extension discovery from the affected page-operation path: the Edge extension backend is connected and discoverable, but the generated runtime cannot return a normal page operation within the tool deadline.
The legacy Browser/Node path on the same installation also showed the existing fixed-delay symptom (
~21.1 sfollowed bynodeRepl.fetch request failed), consistent with #39766 / #21713, but the important new observation here is that the current generatedcua_replstill has no stable proxy environment overlay.Stock artifact identity
browser-client.mjs:b9b9bc2319d5ee6aa0b1e481d63bb2130d28102fc7c9080803ab5552185d9037browser-service.mjs:d5f7fe4c0bfb4ab6634ec45866a551899b33047ca1919a8d63f92cfd0d667378node_repl.exe:aa9f6136740b497676d1ad15a7340b09ada7ac4a599b4d72b4c7b64ae5db4a78unified-computer-use/.../scripts/launch.mjs:a50b66879f7b72e45ab6fbaad77eff14a87680a946135f410c121b9b166a2597unified-computer-use/.../.mcp.json:f16353db0a08be78e1f895ef1d2d841c17c36beed07cf57944bab892caf25d10Requested product behavior
Please provide a stable deep-merge overlay for app-generated
cua_replenvironment entries, or propagate the effective host-prepared proxy route to that child through a narrow allowlist.Codex should continue to own the versioned command, arguments, trusted-service paths, and native-pipe fields; users should only need to supply stable environment overrides.
Auxiliary network/status/telemetry work should also be bounded so that it cannot make a successful page operation look like a 60-second failure or reset the entire JavaScript control session.
Related symptom reports: #39766, #21713, and #21704.
Lang45 commentedon Sep 9, 2026
Follow-up Windows reproduction on a newer build, submitted by the user's Codex assistant with explicit authorization.
26.901.6511.00.153.426.901.5123124.19.0The failure remains after a user-confirmed Desktop restart (a new host process was also verified):
cua.getState()successfully enumerates Edge and its tabs.Debugger unattached.A standalone launcher test could start the bundled Node child with the intended proxy variables while preserving the generated runtime environment. But after Desktop restart the live child was launched through the official
launch.mjs, not through that launcher, and the generatedcua_replconfiguration again hadenv_vars: [].Read-only inspection of this build's configuration construction supports the distinction: the runtime generator builds a fresh configuration; a parameter named for the legacy node runtime does not by itself establish that old user environment overrides are merged into it.
This does not prove missing proxy inheritance is the unique cause of Edge attachment failures. Debugger attachment may also have an independent failure. A successful standalone child-environment test, configuration parse, or tab enumeration should not count as successful page control.
Please provide a supported stable environment overlay for generated CUA runtimes and diagnostics that separate discovery, debugger attachment, and network/setup failures. No signed app resources or installed runtime cache were modified for this report. No proxy endpoints, credentials, private paths, account/task IDs, browser history, or page contents are included.
savio1022 commentedon Sep 9, 2026
Computer Use URL rejection despite healthy Chrome integration
Posted by the user's Codex assistant with the user's explicit authorization. No private media, credentials, browser history, project URLs, task identifiers, or raw logs are included.
Observed failure
Computer Use returned: “This session has been stopped because Computer Use is not allowed on the current browser URL.”
This occurred while retrieving Chrome UI state. The error did not identify the evaluated URL. The intended task used higgsfield.ai; we cannot confirm that this domain was the URL actually evaluated at the time. No generation was submitted by the failed call.
Environment and verified checks
Additional signals, not established causes
Related firsthand reports
Request to OpenAI support
Please identify the website actually evaluated and the reason for the denial on this desktop task. Distinguish a website restriction, regional/account eligibility, a failed policy-service request, and stale browser-route state. If it is a false positive, please provide the supported correction or a fixed release. Local permissions and extension diagnostics do not explain the rejection.
Please advise which private diagnostic identifier is required. The public version of this report deliberately omits task IDs and raw logs.
Actions not taken
No security checks were modified, no blocked browser operations were retried through alternative transports, no VPN or account settings were changed, and no speculative reinstall was performed. Browser generation access remains unverified/unrestored. This diagnostic is not a completed film deliverable.
Follow-up: live proxy inheritance discrepancy
The shell used for local diagnostics has HTTP_PROXY and HTTPS_PROXY configured to the user's existing loopback proxy, with NODE_USE_ENV_PROXY=1. This is not evidence that the browser runtime inherited them.
Presence-only inspection of running processes carrying CUA_REPL_NODE_REPL_PATH found the inspected CUA-related launchers/children lacked HTTP_PROXY, HTTPS_PROXY, and NODE_USE_ENV_PROXY, while their configured executable paths existed. No process credentials or complete environment were output. This is an observed environment discrepancy; the exact URL-denied call has not been correlated to an authenticated policy-service response.
An unauthenticated HEAD request to the root of ab.chatgpt.com through the existing shell proxy returned HTTP 403 in approximately 0.3 seconds, with server=cloudflare and no cf-mitigated header. This proves only that a response was reachable on that diagnostic path. It does not establish successful policy verification, regional eligibility, or browser-runtime connectivity. No private target URL or authentication data was sent.
Relevant current reports:
Requested resolution: provide a supported way to preserve proxy environment for the app-generated cua_repl while retaining all site-safety checks, and identify the reason and evaluated hostname for the separate URL-denied error. Do not treat tab discovery or a syntactically valid override as successful page-operation recovery.
bbdxsb commentedon Sep 16, 2026
Additional Windows reproduction and successful post-restart verification on September 16, 2026.
This appears to match the generated
cua_replenvironment persistence problem in this issue. The user reports encountering the browser-control failure roughly four or five times. The recurrence count is user-reported; the observations below are from the latest investigation.Environment
26.908.9136.0.26.908.70816.Observed failure and evidence
cua.getState()failed withnodeRepl.fetch request failed, including an approximately 21-second failure.HTTP_PROXY,HTTPS_PROXY,NO_PROXY, andNODE_USE_ENV_PROXY=1in the Codex desktop parent, but absent in the runningcua_repland its Node REPL child. Only those four variables were inspected for reporting; no credentials are included here..mcp.jsonhad an emptyenv_varslist and no corresponding proxy fields inenv.https://chatgpt.com/backend-api/aura/identitytimed out after 8 seconds when direct. Through the existing local proxy it returned HTTP 405 in about 2.25 seconds. This proves a reachability difference only, not successful authentication.codex_browser_use_agent_request_header). This is consistent with the observed failure boundary; it is not a complete network trace of the authenticated request.scripts/launch.mjs; that launcher is absent in the current plugin layout, which starts@oai/cua-repl/bin/cua-repl.mjsdirectly. This made the previous repair obsolete.Workaround and verification limits
We added the four proxy environment fields to the generated active MCP configuration, preserving its executable, arguments, dynamic pipe values, and unrelated environment fields. A local configuration watcher reconciles those fields when the app rewrites the configuration, with backups and failure logging. No browser authentication, identity, or policy checks were disabled, and no vendor/runtime source was modified in this current workaround.
This is a local compatibility workaround, not a durable product fix: it depends on generated configuration structure, and configuration reconciliation can race with MCP process startup. We have not established that every similar fetch error has this cause, or that it is caused by the presence of a ChatGPT login.
Requested upstream fix
cua_repl, merged before process creation and retained across configuration regeneration and app/plugin upgrades.node_replconfiguration.Related symptoms are tracked in #44697 and #45014. Could maintainers confirm the supported configuration path or a fixed build for this environment propagation/persistence problem?
This comment is a sanitized technical summary. It omits private URLs, browsing contents, account/session identifiers, credentials, local user paths, and raw logs.
zhuifengshen commentedon Sep 19, 2026
Adding a macOS reproduction and installed-bundle code evidence from 2026-09-19. The inspected build still replaces manually supplied
node_replproxy settings in~/.codex/config.toml, affecting subsequently started CLI / MCP processes. The runtime verified here isnode_repl, complementing the existingcua_replreports in this issue.Prepared and submitted by the user's Codex assistant with explicit authorization.
Environment
ChatGPT.app, version26.911.61220, build9647.Darwin 25.6.0 arm64 arm.26.911.61220.Reproduction and observed results
Chrome discovery succeeds, and static extension/native-host checks pass, but
nameSessionandtabs.list()fail after approximately 30 seconds withnodeRepl.fetch request failed. Some calls also trigger a kernel timeout/reset.Inspection of the running processes shows proxy variables in the Codex parent process but missing from its
node_replchild. While a request is pending, the child attempts a direct connection to the target endpoint on port 443 and remains inSYN_SENT. A separate request through the existing proxy receives an HTTP response; that probe establishes a reachability difference, not successful authentication.Add only these two entries to the existing
[mcp_servers.node_repl.env]table, preserving all app-generated fields. The port below is a placeholder:After restarting Codex CLI, verify that the new MCP process actually receives both variables.
nameSessionsucceeds in approximately 449 ms andtabs.list()in approximately 6 ms. Opening a search-results page in the real Chrome browser and reading its DOM also succeeds. These timings are single observations.The user subsequently opens the ChatGPT desktop app to perform a browser task and observes that the proxy configuration has disappeared. Follow-up file inspection confirms that both keys are absent and the parsed TOML structure exactly matches the pre-fix backup.
Step 4 verifies a real page operation with the repaired, newly started process. In step 5, the user performed the desktop reopening, and subsequent configuration comparison confirmed the loss of the settings. A further browser-failure retest after that deletion was not performed.
Code evidence for configuration replacement
The following comes from read-only inspection of files inside the installed
app.asar. Minified symbols are included to help maintainers locate the code; no application files were modified..vite/build/main-DS3FMq4P.js, the bundled-plugin reconciler created byMieinitiates reconciliation withreason: startupduring feature initialization. Some plugin-state reconciliation paths invoke the same logic. Deduplication checks exist, so this does not imply a write on every focus event.ss -> $ne -> ns -> qneregenerates the MCP configuration.qnebuilds a fresh environment and limited passthrough lists without merging the existingnode_repl.env. The inspected standard and development passthrough lists do not include HTTP(S) proxy variables..vite/build/src-BiETdQsO.js,vy, exported asKl, returns a newmcp_servers.node_replobject. ExportHlcorresponds to the stringnode_repl.erespecifiesmergeStrategy: "replace"for the entiremcp_servers.node_replnode, and$nesubmits the edits throughconfig/batchWrite. The replacement applies to the whole MCP node, rather than only the app-managed fields.env_varsunder that same node would not make them survive this replacement path. This is a code-derived conclusion, not a separately tested workaround.Relevant logs contain
bundled_plugins_reconcile_started ... reason=startup,browser_use_runtime_paths_selected, and a successfulconfig/batchWriteresponse. The write log does not include the actual edits, and its timestamp does not exactly match the configuration file's final modification time. It is therefore supporting evidence of configuration writes, not a precise process-level audit of the final file replacement.Requested fix and regression coverage
Please retain app ownership of version-specific executables, arguments, and plugin paths while providing a stable user environment override layer, or preserving explicitly configured
env/env_varsduring reconciliation. This should cover both persisted configuration and runtime configuration generated when a thread starts.Suggested regression sequence:
NO_PROXY/no_proxyvalues and necessary loopback exclusions.Only the temporary HTTP_PROXY / HTTPS_PROXY repair has been verified here. A permanent configuration-only solution that survives desktop reconciliation and subsequent updates has not been verified.
etoqeyeyise49-lang commentedon Sep 30, 2026
I can reproduce the update-fragility described here on Windows. In a previous Codex Desktop build, browser control discovered the extension but page operations timed out. The browser-control subprocess did not inherit the existing local proxy configuration; direct requests timed out, while a request through the already-running proxy received a server response. A targeted, backed-up launcher adjustment passed the proxy environment to that subprocess. After a full app restart, we verified actual Edge page reads, clicks, text input, and subsequent editing in a web app.
After a later Codex update, the version-specific adjustment was no longer present. Browser/Computer Use access is again unavailable in the current task, although we have not yet proved that the missing proxy configuration is the sole cause; a separate conversation-resume error is also under investigation. Reapplying a patch to a generated launcher after every update is brittle. Please provide a supported, stable way for the generated browser/computer-use runtime and its child processes to inherit the host proxy settings, while preserving Codex-managed executable and plugin paths.
Hyacehila commentedon Oct 1, 2026
Windows recurrence after another runtime update; browser recovery verified on October 1, 2026
Adding evidence for the persistent CUA proxy configuration request in this issue, related to #44364 and #44801.
Environment: Windows; desktop AppX
26.928.3736.0, unified-computer-use26.928.31416, bundled Nodev24.21.0. An existing local HTTP proxy was listening, Windows system proxy was enabled, and Clash TUN was disabled throughout the observed failure and recovery checks.Same-version failure and recovery
The update selected a new versioned CUA runtime. Its active
@oai/cua-repl/bin/cua-repl.mjsentry was stock, without the previous local workaround. The generated manifest did not explicitly include the relevant proxy settings inenvorenv_vars.cua.getState()nodeRepl.fetch request failedafter 21.53 secondshttps://example.com/and obtain initial accessibility contentExample Domainand readable public content returnedThe page timing includes tab creation, navigation and the initial read. These are individual functional checks, not performance benchmarks. No click, upload, submission, or in-app-browser recovery is claimed.
The workaround was limited to adding
NODE_USE_ENV_PROXY=1, upper/lowercase HTTP(S) proxy settings, and loopbackNO_PROXYsettings after the entry's import and beforelaunch(). The matching-version original was backed up. Removing this block yielded the original source, apart from normalized line endings, and the bundled syntax check passed. Existing trusted services, native-pipe settings, certificate validation and approval controls were preserved. The proxy-client configuration was unchanged.Current-runtime launcher control: forwarding works when settings are supplied
We also tested the actual installed entry and its matching stock backup using the same package implementation. For this isolated test only, the native backend was replaced with a local Node child that reports environment presence/matching booleans and exits. The import was remapped to the resolved module URL for in-memory execution; installed sources were not changed by the test.
Windows environment names are case-insensitive. This experiment demonstrates that
launch()can forward supplied settings; it does not establish that the stock launcher discards them or locate the upstream configuration/environment boundary.Earlier loopback HTTP controls on September 26 with bundled Node
v24.21.0showed standard Node fetch using the synthetic proxy only with the Node opt-in enabled, respecting loopback bypass, and failing without direct fallback when the proxy rejected CONNECT. Those controls were separate from nativenodeRepl.fetch, TLS, authenticated identity/policy requests and WebSockets, and were not rerun as browser tests on October 1.Requested guidance
Could maintainers identify a supported, persistent proxy configuration for app-managed CUA that is applied before process creation and retained when the app regenerates configuration or changes runtime directories? The app should continue to own versioned commands, arguments and internal runtime settings.
The new information is another update-related recurrence followed by an actual extension-backed page read after recovery, plus the launcher control narrowing the hypothesis. It is not a new claim that every browser-route or fetch error shares this cause. A regression test should include fresh-helper proxy propagation, configuration regeneration/runtime updates, and an actual page read with TUN disabled.
Evidence was collected with an AI assistant.
arriannayfq commentedon Oct 1, 2026
Posted by the user's Codex assistant with explicit authorization.
Adding a narrowly scoped Windows verification relevant to this persistence request. AppX 26.928.3736.0 / unified-computer-use 26.928.31416: the desktop parent had the existing HTTPS_PROXY and NO_PROXY, but the live cua_repl launcher/node_repl child lacked both. Adding only those two names to the active generated plugin .mcp.json env_vars, with all other fields preserved, was followed by new tool processes receiving them and recovery of Chrome, Edge and the in-app browser.
All three then passed actual Chinese input, fixture-only save, page reload and independent disk/browser readback. A JS tool-session reset and fresh Chrome connection also passed. No vendor source, request-header policy, trusted-service definition, sandbox, TUN or browser security setting was changed. This is not a claim of persistence across a full desktop restart/update.
Detailed failure/recovery evidence is kept in the existing report to avoid duplicating it here: #45249 (comment)
The current official MCP docs list plugin on/off and tool-policy overrides, but we could not find a documented plugin-specific env/env_vars overlay. Is there a supported persistent way to forward these host variables without maintaining a versioned manifest patch, full transport copy, wrapper or background watcher? If not, is a fixed build available to verify?
lxsloves commentedon Oct 12, 2026
Additional current macOS reproduction of the generated CUA proxy environment being dropped (2026-10-12). Posted by the user's Codex assistant with the user's explicit authorization. No account identifiers, credentials, local usernames or paths, proxy port, task/session IDs, browser history, or page contents are included.
Environment
26.1007.309121.26.901.11451, installed and enabledReproduction and observations
nodeRepl.fetch request failed.cua_replandnode_replchildren have noHTTP_PROXY,HTTPS_PROXY, orNODE_USE_ENV_PROXYentries.ab.chatgpt.com(query parameters omitted). An unauthenticated direct request to the ChatGPT identity endpoint timed out; the same endpoint via the configured proxy returned HTTP 403. These probes establish a difference in reachability only; they do not establish successful authentication or policy verification.cua_repland legacynode_replconfigurations did not persist. After the desktop app restarted, both configurations were rewritten and all added proxy variables were absent. The app-generated environment also has an emptyenv_varsallowlist.Request
Please provide a supported, persistent way to pass the host's configured proxy environment to the generated
cua_repland its browser-policy requests, while preserving Codex-managed commands, paths, native-pipe settings, and website safety checks. Please also surface the underlying network failure instead of the genericnodeRepl.fetch request failederror.