Description
Pressing the Escape key does nothing in three views that should support keyboard dismissal:
| View |
Component |
Type |
Existing close mechanism |
| New Run |
PreRunPanel |
dockview panel |
"Cancel" button → closeTab('pre-run') |
| Checkpoint |
CheckpointPage |
route (/runs/:id/checkpoint) |
"Back to Run" button → navigate() |
| Run History |
RunHistoryPanel |
dockview panel |
Tab close only (no button) |
Root Cause
None of these components register keyboard event listeners. The global Escape handler in WorkspacePage.tsx:237-244 only dismisses the settings overlay.
Fix Required
- PreRunPanel + RunHistoryPanel (dockview panels): Extend the global Escape handler in
WorkspacePage.tsx to close the active dockview panel when Escape is pressed
- CheckpointPage (route): Add a
useEffect with a keydown listener that calls navigate(-1) on Escape
Files Involved
packages/ui/src/pages/WorkspacePage.tsx — extend Escape binding (~line 237)
packages/ui/src/pages/CheckpointPage.tsx — add keydown listener
packages/ui/src/pages/RunDashboardPage.tsx — Escape for run history if viewed from dashboard
Description
Pressing the Escape key does nothing in three views that should support keyboard dismissal:
PreRunPanelcloseTab('pre-run')CheckpointPage/runs/:id/checkpoint)navigate()RunHistoryPanelRoot Cause
None of these components register keyboard event listeners. The global Escape handler in
WorkspacePage.tsx:237-244only dismisses the settings overlay.Fix Required
WorkspacePage.tsxto close the active dockview panel when Escape is presseduseEffectwith akeydownlistener that callsnavigate(-1)on EscapeFiles Involved
packages/ui/src/pages/WorkspacePage.tsx— extend Escape binding (~line 237)packages/ui/src/pages/CheckpointPage.tsx— add keydown listenerpackages/ui/src/pages/RunDashboardPage.tsx— Escape for run history if viewed from dashboard