github / github/copilot-cli

Esc in /tasks overlay also dismisses active question prompt

未关闭
#3,430 1 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
area:agents area:input-keyboard
主要语言
Shell
星标
11.2k
派生
1.9k
平均合并
14 小时 16 分钟
30 天内合并 PR
6

描述

### Describe the bug

When the Copilot CLI `/tasks` overlay is open and the agent asks a question, pressing `Esc` to close the task/subagent menu also affects the underlying question prompt.

The same `Esc` keypress appears to be handled twice:

1. It closes the `/tasks` overlay.
2. It also dismisses or skips the active question prompt underneath.

This prevents the user from answering the question and can cause the agent to continue with an unintended skipped/default response.

This seems inconsistent with the documented `Esc` behavior for Copilot CLI, where an open dialog, overlay, or picker should be closed before `Esc` acts as a broader cancel action.

References:

- [`/tasks` command reference](https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference)
- [`Esc` behavior in Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/cancel-and-roll-back)
- [`/fleet` and subagent task execution](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/fleet)

### Affected version

GitHub Copilot CLI 1.0.49.

### Steps to reproduce the behavior

1. Start an interactive Copilot CLI session.
2. Start a task that uses subagents or background tasks.
3. Open the task/subagent manager with `/tasks`.
4. While the `/tasks` overlay is open, wait for the agent to ask a question or clarification.
5. Press `Esc` once, intending only to close the `/tasks` overlay.
6. Observe that the active question is also skipped or dismissed.

### Expected behavior

Pressing `Esc` while the `/tasks` overlay is open should only close that overlay and return focus to the active question prompt.

The question should remain visible and answerable.

### Additional context

This looks like a key handling or focus propagation issue. The `/tasks` overlay appears not to consume the `Esc` event after using it to close itself, so the same keypress reaches the global cancel handler or the underlying question UI.

A possible fix would be to make the `/tasks` overlay treat `Esc` as handled when it closes the overlay, preventing the key event from being forwarded to lower-priority UI layers.

A regression test could cover this stacked UI case:

1. An active question prompt is visible underneath the `/tasks` overlay.
2. The user presses `Esc` once.
3. Only the `/tasks` overlay closes.
4. The question prompt remains open and answerable.

贡献指南

打开贡献指南

调研方向

通过在问题提示处于活动状态时打开 /tasks 覆盖层,然后按一次 Esc,复现 UI 堆叠的情况。跟踪 Esc 从 /tasks 覆盖层传递到下方问题提示的处理过程,并添加一个覆盖该序列的回归测试。当覆盖层关闭且问题仍然可见并可回答时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
shell
领域
cli
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
55/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。