Windows Computer Use can reacquire foreground input after node_repl resets without a revocable single-controller lease
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- javascript, rust
- Domain
- operating-systems, security
Research direction
Start by tracing the node_repl/js_reset flow and the @oai/sky Windows transport lifecycle, including where foreground input is acquired and stopped. Verify the current-turn grant, single-controller ownership, revocation events, fresh-observation requirement, and rejection of competing input mechanisms; done means reset, interruption, stop, timeout, focus loss, and transport failure prevent silent reacquisition.
Written by the indexing model from the issue text.
Description
What version of the Codex App are you using?
Codex Desktop 26.730.8199.0; bundled Computer Use plugin 26.730.61639.
What platform is your computer?
Windows 11 x64.
What issue are you seeing?
On Windows, a Computer Use task can repeatedly reset node_repl, import @oai/sky again, create another transport, and continue issuing foreground input without a single revocable controller lifecycle.
During the observed run, desktop redraw and window switching became severely delayed and the desktop sometimes appeared frozen. Pressing Escape sometimes released visible updates. Explicitly instructing the task to stop caused it to close the transport and stop foreground input. Restarting Windows later cleared the accumulated state, but reboot is not a fix.
This report is about the Computer Use transport lifecycle and foreground-input boundary, not the GPU/display driver.
What steps can reproduce the bug?
- Start a Windows Computer Use task for a desktop application.
- Import
@oai/skyand create/use its Windows transport. - Call
node_repl/js_reset. - Import
@oai/skyagain and reacquire the transport without a new user grant. - Repeat the reset/reacquisition cycle while issuing UI actions.
- Mix fresh observations with repeated fixed-coordinate input or another Windows UI-input mechanism.
- Observe that foreground input can continue across resets without one auditable owner or revocation boundary.
In the observed case, one task repeated this cycle several times over approximately eight minutes. Repository instructions were not an enforcement boundary because the runtime still allowed direct transport recreation.
What is the expected behavior?
- A current-turn grant naming the app and action should be required before
@oai/skycreates a Windows input transport. - One foreground maintenance window should own exactly one persistent
node_repl/ Sky transport and one controller. js_resetshould close and revoke the existing transport and must not permit silent reacquisition.- User input, Escape/stop, turn interruption, unknown focus, timeout, or transport failure should revoke the grant and prevent automatic reacquisition.
- The runtime should reject competing foreground-input mechanisms in the same turn.
- Input should be derived from a fresh returned-window observation; stale coordinates should not remain valid after state changes.
- The lifecycle should expose auditable grant, transport-start, action, stop, and revocation events.
Additional information
Local repository rules can tell an agent not to reset/recreate transports or mix input methods, but they cannot enforce this boundary when the current plugin imports @oai/sky directly. The boundary needs to exist in the runtime.
Related but distinct:
- #37013: stale
node_replexecution context across Computer Use calls - #37180: missing approval prompt and
node_repl exec context not found
Those reports cover nearby transport/context failures, but not revocation and repeated foreground-input reacquisition after js_reset.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·