Summary
On Windows, a Codex task rooted in a WSL project cannot currently reach the
trusted node_repl context needed by the installed Computer Use integration.
The failure occurs before JavaScript and before any app discovery or action
because sandboxCwd remains a WSL-form file URI rather than an exact supported
Windows-local representation.
A second test used one fresh visible projectless task in a Windows-backed
directory exposed through /mnt/c. That task also retained a WSL-form
file:///mnt/c/... sandbox URI and its first node_repl call failed before
JavaScript. No Computer Use request, app-approval prompt, Chrome launch,
observation, screenshot, accessibility read, input, navigation, or network
action occurred in either test.
Sanitized environment identities
- Codex runtime-configured app version:
26.818.61809 - Codex Store package resource version observed locally:
26.818.8289.0 - Computer Use plugin:
computer-use@26.818.61809 - Computer Use manifest SHA-256:
14dcf555000492ec91b2442d62fd8b373b13f8f9d7a6bab500f20c41338ca928 - Trusted
node_repl.exeSHA-256:
7671e35e2158179dd2586dbd3d4c6ab82653e81185e473f6e815a5751d266ce4 @oai/sky:
0.6.17-202608171537-pr-1300023-7efba775c041@oai/skypackage-manifest SHA-256:
4267e7e942938d683eaa85419327787c2b562feacf87284260a8448bf81b9e02
These identities were authenticated from local installed files in the
originating task. The failed projectless task could not authenticate the
plugin or @oai/sky from inside its own node_repl, because startup failed
before JavaScript.
Reproduction summary
Failure A — WSL Linux-filesystem project:
CWD=/home/<user>/<project>
SANDBOX_CWD=file:///home/<user>/<project>
RESULT=codex/sandbox-state-meta rejected sandboxCwd as not a local file URI
JAVASCRIPT_EXECUTED=NO
COMPUTER_USE_CALLS=0
Failure B — Windows-backed projectless directory exposed through WSL:
CWD=/mnt/c/Users/<user>/<projectless-directory>
SANDBOX_CWD=file:///mnt/c/Users/<user>/<projectless-directory>
WINDOWS_NATIVE=NO
NODE_REPL=UNAVAILABLE
JAVASCRIPT_EXECUTED=NO
COMPUTER_USE_CALLS=0
For a future authorized reproduction, a no-effect node_repl expression that
reports only sanitized cwd/sandbox identity is sufficient. Computer Use and
@oai/sky should not be invoked until the startup and sandbox mapping contract
passes independently.
Expected product ownership
This appears to belong in Codex app/task routing or exact trusted node_repl
sandbox-context projection:
- A visible WSL task and exact turn retain their canonical project and
sandbox policy. - Codex supplies one exact Windows-local representation for every sandbox
root, with deterministic round-trip identity and no broader access. - The trusted Windows
node_replstarts only after mapping and policy
validation. - The existing Computer Use integration remains the sole owner of app
selection, authentic app-approval elicitation, scope, interruption, and GUI
execution.
A browser-only shim, approval proxy, custom helper-protocol client, plugin
wrapper, or standing service would duplicate or weaken existing ownership and
would not repair the task/runtime boundary.
Security invariants
- Never interpret user prose or task text as an app-approval response.
- Never copy, cache, synthesize, broaden, replay, or transfer approval state
between tasks, turns, sessions, or apps. - Preserve each sandbox root and access mode independently; reject relative,
unavailable, ambiguous, symlink-broadened, distribution-ambiguous, or
ancestor mappings. - Bind context projection and any later elicitation to the exact visible task,
turn, app, and pending request. - Missing elicitation, invalid correlation, denial, interruption, timeout, or
mapping failure must stop without retry or fallback automation. - Denial must precede app effect and disclosure: no launch, observation,
focus, screenshot, accessibility/page content, input, or navigation. - Do not introduce a daemon, service, port, broad app grant, configuration
bypass, or bridge-owned persistence.
Minimum acceptance tests
- Map a narrow WSL Linux-filesystem root to one supported canonical
Windows-accessible representation and prove exact round trip with unchanged
root modes. - Map
/mnt/<drive>/...to the same Windows directory rather than retaining
file:///mnt/<drive>/.... - Fail closed for missing distributions, unavailable shares, multiple
mappings, case collisions, symlink/junction escapes, broader ancestors,
dropped read-only roots, or added writable roots. - Reject missing, stale, malformed, or mismatched task/turn correlation.
- In a separately authorized denial-only Chrome test, exactly one first
approval-gated request must surface the authentic Computer Use prompt before
any Chrome effect or content disclosure; denial must be explicit and
effect-free with no retry. - In a separately authorized approval test, only the existing runtime may
continue the same pending request, and Chrome approval must not authorize
another app, task, stale turn, or broader sandbox. - User interruption must prevent every later Computer Use call in that turn.
- Sanitized diagnostics must exclude screenshots, accessibility/page text,
window titles or handles, account data, credentials, approval response
payloads, and persistent authorization state.
Maintainer questions
- Is the intended ownership visible-task host routing, trusted
node_repl
sandbox projection, or a jointly owned contract between those components? - Is there already a supported canonical mapping for WSL Linux-filesystem
roots and Windows-backed/mnt/<drive>roots that the app is not applying? - Which component should own exact round-trip and no-broader-root validation?
- What sanitized startup telemetry would be most useful for a fixture-only
reproduction before any installed or live Computer Use test?
Evidence provenance
This report relies only on sanitized local task results, installed-file
identities, and local source inspection. One earlier read-only official
documentation search and page open occurred outside that evidence boundary and
is recorded in the originating case, but no statement or recommendation here
relies on it.
No attachments are proposed. I can provide a further sanitized fixture-only
reproduction plan if a maintainer identifies the correct source boundary, but
no product change, installation, or live approval test has been performed.