Windows Computer Use overlay remains until entire agent turn ends
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
On Windows, after Codex finishes its last native Computer Use action and moves
on to unrelated shell/Git work in the same agent turn, the full-screen border
and ChatGPT is using your computer banner remain visible until the entire
agent turn completes. Resetting the Node REPL kernel does not dismiss the
overlay. The user therefore sees a persistent takeover indicator even though no
more UI input is being issued.
The same user's macOS Computer Use experience releases cleanly; this report is
specific to the Windows native helper lifecycle.
Environment
- Windows 11
- ChatGPT/Codex desktop package:
26.915.4065.0 - bundled Computer Use plugin:
computer-use@openai-bundled 26.915.31945 - bundled
@oai/sky:0.7.1
Reproduction
- Start a Codex turn that uses the bundled native Windows Computer Use plugin.
- Import
skythrough the documented Node REPL path. - Launch Calculator, bind the uniquely returned Calculator window, and capture
it. - Click one Calculator button and capture again to verify the state change.
- Close only the Calculator window and confirm it is absent from
sky.list_windows(). - Reset the Node REPL kernel.
- Continue non-UI work in the same Codex turn.
Observed: the full-screen Computer Use border and ChatGPT is using your computer banner remain until the whole agent turn ends.
Expected: once native Computer Use is explicitly finished, the Windows helper
should receive an end-of-use signal and the takeover overlay should disappear,
without requiring the agent to end all unrelated work in the turn.
Implementation evidence
The bundled Windows transport has lifecycle operations internally:
WindowsHelperTransport.close()sendscloseto the helper.- turn transitions send an internal
end_turnrequest. WindowsComputerUseClientBaseexposesclose()internally.
However, the documented Window2 sky surface exposes no end_turn, close,
release, or dispose method. The Node REPL service builds its callable method
list with Object.keys(client); the Windows client's close() is a prototype
method, so it is not included in the public RPC method list. js_reset clears
the JavaScript kernel but does not end the Windows helper's current turn scope.
This appears to make the overlay lifetime equal to the whole Codex turn rather
than the actual Computer Use phase.
Suggested fix
Expose a supported idempotent lifecycle method on the public sky surface,
such as end_turn() / release() / close(), and have Codex call it when the
agent leaves the Computer Use phase. Alternatively, make the Node REPL reset or
service teardown send the helper's existing end_turn signal before dropping
the client.
The method should:
- stop accepting further input for the released scope;
- dismiss the Windows overlay immediately;
- preserve unrelated app windows;
- be safe to call more than once;
- remain distinct from the physical-Escape/user-stop path.
Additional distinction
This is separate from occasional model/backend {"detail":"Bad Request"}
turn failures. Native Calculator capture and input worked correctly in this
reproduction; the defect is cleanup/overlay lifecycle after successful input.
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.
Research direction
Start by tracing WindowsHelperTransport.close(), the internal end_turn request, and WindowsComputerUseClientBase.close() through the Node REPL service's public method list built with Object.keys(client). Reproduce the Calculator workflow and js_reset behavior, then verify that leaving the Computer Use phase dismisses the overlay promptly, is idempotent, and does not affect unrelated work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, rust
- Domain
- desktop, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100