github / github/copilot-cli

1.0.34: mintty terminal stays in button-event mode after copilot exits

Offen
#2,874 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area:platform-windows area:terminal-rendering
Vorherrschende Sprache
Shell
Sterne
11.2k
Forks
1.9k
Ø Merge
14 Std. 16 Min.
Gemergte PRs (30 T.)
6

Beschreibung

### Describe the bug

Using a MinTTY terminal on Windows, user starts Copilot CLI then exits, the terminal is left with button-event mouse tracking mode still enabled.
This means any clicks in the terminal no longer do the usual copy/paste/menu actions but instead cause escape sequences to be input to the terminal.

There are several mouse tracking modes, documented:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking
```
┌──────────────────────────┬─────────────┬─────────────┐
│ Mode │ Enable │ Disable │
├──────────────────────────┼─────────────┼─────────────┤
│ Normal click tracking │ \e[?1000h │ \e[?1000l │
├──────────────────────────┼─────────────┼─────────────┤
│ Button-event tracking │ \e[?1002h │ \e[?1002l │
├──────────────────────────┼─────────────┼─────────────┤
│ Any-event tracking │ \e[?1003h │ \e[?1003l │
├──────────────────────────┼─────────────┼─────────────┤
│ SGR extended coordinates │ \e[?1006h │ \e[?1006l │
└──────────────────────────┴─────────────┴─────────────┘
```

The mode which is being left enabled is 1002: Button-event tracking, and 1006: SGR extended coordinates.

The current setting can be queried with `\e[?$p` which gives a response ` \e[?;$y`
Where `` is:

```
┌───────┬───────────────────┐
│ Value │ Meaning │
├───────┼───────────────────┤
│ 1 │ Set (enabled) │
├───────┼───────────────────┤
│ 2 │ Reset (disabled) │
├───────┼───────────────────┤
│ 0 │ Not recognized │
├───────┼───────────────────┤
│ 3 │ Permanently set │
├───────┼───────────────────┤
│ 4 │ Permanently reset │
└───────┴───────────────────┘
```

Example — query normal click tracking (mode 1000):
`bash$ echo -e '\e[?1002$p'`
Terminal replies e.g. `\e[?1002;2$y` → mode 1000 is disabled.

In a fresh terminal, all four modes report `2`: Reset (disabled).
After copilot has run and exited the terminal reports mode 1002 and 1006 are still enabled (`1`). Disabling mode 1002 fixed the terminal behaviour.

### Affected version

GitHub Copilot CLI 1.0.34.

### Steps to reproduce the behavior

1. `echo -e '\e[?1002$p`. Response is `\e[?1002;1$y` - disabled: good.
2. `copilot`
3. `/exit` (or Ctrl-C Ctrl-C)
4. `echo -e '\e[?1002$p`. Response is `\e[?1002;2$y` - enabled: BUG
5. Left-click and drag in the terminal produces a stream of escape sequences: BUG

### Expected behavior

1. `echo -e '\e[?1002$p`. Response is `\e[?1002;1$y` - disabled: good.
2. `copilot`
3. `/exit` (or Ctrl-C Ctrl-C)
4. `echo -e '\e[?1002$p`. Response is `\e[?1002;1$y` - still disabled: good
5. Left-click and drag in the terminal produces a selection. Right-click produces the menu.

### Additional context

Affected terminals:
Cygwin mintty v 3.7.8 (x86_64-pc-cygwin) [Windows 26220]
Git Bash mintty v 3.8.2 (Msys-x86_64) [Windows 26220]

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Reproduce the issue in Cygwin or Git Bash mintty by querying modes 1002 and 1006, running copilot, and exiting with /exit or Ctrl-C twice. Trace the CLI's terminal setup and cleanup paths, which are not identified in the report. Done means both modes are reset after exit and mouse selection and the context menu work normally.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
shell
Bereich
cli
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.