Skip to content

[Bug]: Cmd+Escape does not stop a running turn despite a loaded Thread: Stop binding #14100

Description

@rohitgirdhar

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/desktop

Steps to reproduce

In regular T3 Code Alpha on macOS, Cmd+Escape does not interrupt a running agent. Clicking the square Stop button works. Pressing ESC or cmd+ESC does nothing.

  1. Configure this rule in Settings → Keybindings:
    {"key":"mod+escape","command":"thread.stop","when":"!terminalFocus"}
  2. Confirm Settings displays Thread: Stop as ⌘Esc.
  3. Start an agent turn and press Cmd+Escape in the thread.
  4. The processing continues. Clicking Stop interrupts the agent.

Expected behavior

The configured shortcut interrupts the turn, like the Stop button.

Actual behavior

The turn keeps on going, no effect of ESC/cmd+ESC.

Impact

Minor bug or occasional failure

Version or commit

v0.0.42

Environment

macOS 26.6.2, build 25G83, Apple Silicon arm64. Regular desktop app with its local backend running

Logs or stack traces

Screenshots, recordings, or supporting files

No response

Workaround

No response

Activity

  1. added
    bugSomething is broken or behaving incorrectly.
    needs-triageIssue needs maintainer review and initial categorization.
    on Sep 28, 2026
  2. juliusmarminge commented on Sep 28, 2026

    @juliusmarminge
    Member

    Triage

    The thread.stop binding is loaded. Settings showing Thread: Stop as ⌘Esc is the mod+escape rule, and that rule is what the desktop app dispatches. The Stop button does not use a separate path: once a matching keydown arrives, both call the same interrupt. A ⌘Esc keydown resolves to thread.stop when the terminal is not focused.

    Plain Esc doing nothing is expected with this rule. thread.stop has no default shortcut, so only ⌘Esc is bound. An open change, #12670, would make plain Esc the default.

    On macOS 26, ⌘Esc is also the system Game Overlay shortcut (System Settings → Keyboard → Keyboard Shortcuts → Game Controllers, or Mission Control). When that shortcut is active, macOS takes the key before T3 Code sees a keydown. The binding still shows in Settings, and the Stop button still works. It is most aggressive while a game is the front app; on some Tahoe builds it also swallows the chord with no overlay.

    Two checks separate that from an app bug:

    1. Disable or rebind Game Overlay, focus the thread rather than the terminal (when: "!terminalFocus" ignores the shortcut while the terminal is focused), start a turn, and press ⌘Esc again.
    2. If it still does nothing, put a chord macOS does not reserve on the same command, for example "key": "mod+.", and try that during a turn. The keybinding editor treats Esc as cancel-recording, so Esc chords have to be written in keybindings.json, as you already did.

    If step 2 stops the turn and step 1 still does not, this is the system shortcut. If step 2 also does nothing, reply with that and with whether other thread shortcuts (⌘J, ⌘D) still work during the turn.

  3. added
    needs more infoInitial triage showed no bug. Awaiting more info
    via-triageFiled through npx t3 triage
    and removed
    bugSomething is broken or behaving incorrectly.
    needs-triageIssue needs maintainer review and initial categorization.
    on Sep 28, 2026
  4. rohitgirdhar commented on Sep 28, 2026

    @rohitgirdhar
    Author

    thanks @juliusmarminge ! Indeed seems that was the problem. Switching the keybinding to another combination fixed it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs more infoInitial triage showed no bug. Awaiting more infovia-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions