openai / openai/codex

Windows Computer Use overlay remains until entire agent turn ends

Open
#46,675 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug computer-use windows-os
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

  1. Start a Codex turn that uses the bundled native Windows Computer Use plugin.
  2. Import sky through the documented Node REPL path.
  3. Launch Calculator, bind the uniquely returned Calculator window, and capture
    it.
  4. Click one Calculator button and capture again to verify the state change.
  5. Close only the Calculator window and confirm it is absent from
    sky.list_windows().
  6. Reset the Node REPL kernel.
  7. 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() sends close to the helper.
  • turn transitions send an internal end_turn request.
  • WindowsComputerUseClientBase exposes close() 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.