fix(desktop): keep OS clipboard chords (Cmd+C/V/X/A) bubbling out of v1 terminal

Closed
AY
3mo ago
+174-0

Summary / What changed

  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.ts: short-circuit OS clipboard chords (Cmd+C/V/X/A on macOS, Ctrl+Shift+C/V/X/A and Shift+Insert / Ctrl+Insert on other platforms) so they bubble out of the terminal handler instead of falling through to the PTY.

Why

#3390 made the v1 terminal forward any chord not registered as an app hotkey to the PTY. That fixed Claude Code TUI shortcuts but regressed standard OS clipboard combos: Cmd+C, Cmd+V, Cmd+X, Cmd+A are not registered as app hotkeys, so they now go straight to xterm and never reach Electron's edit menu / xterm.js Selection. Result: text selected in the terminal pane can't be copied; clipboard paste also doesn't reach the input line.

The patch adds an explicit allow-bubble step before the "fall through to PTY" branch. Terminal-reserved chords (Ctrl+C SIGINT, Ctrl+D EOF, etc.) are still handled earlier in the same function, so PTY semantics are unchanged.

Tests

No unit tests touched — the change is platform-conditional event routing inside the live keyboard handler. Manual repro was decisive enough.

Real-world validation

  • Reproduced on Superset Desktop v1.5.1 (macOS, Apple Silicon, Turkish keyboard layout). Before: select text in a terminal pane, press Cmd+C, nothing happens; Cmd+V does nothing. After: selection copies to the system clipboard; paste reaches the PTY input line as expected.
  • Verified Ctrl+C in PTY still sends SIGINT (terminal-reserved path runs first).

Issue

Regression of #3390. No standalone issue yet — happy to file one if maintainers prefer that flow.


Summary by cubic

Fixes the v1 terminal swallowing OS clipboard shortcuts so they bubble to the host, restoring copy, paste, cut, and select-all in terminal panes; PTY-reserved chords are unchanged. Also seeds observability blueprint docs and a triage runbook.

  • Bug Fixes
    • Bubble OS clipboard chords: macOS Cmd+C/V/X/A; Linux/Windows Ctrl+Shift+C/V/X/A, Ctrl+Insert (copy), Shift+Insert (paste). Adds explicit Insert handling and excludes Ctrl+Delete/Shift+Delete so readline edits reach the PTY.
    • Addresses regression from #3390 where unregistered chords fell through to the PTY and bypassed Electron/xterm selection.

Summary by CodeRabbit

  • Bug Fixes

    • Updated terminal keyboard handling to let standard OS clipboard shortcuts (copy, paste, cut, select-all) pass through correctly on macOS and Windows/Linux.
    • Restored platform-appropriate clipboard keys (Ctrl+Insert / Shift+Insert on Windows/Linux) while keeping delete-related shortcuts routed to the terminal.
  • Documentation

    • Added observability system documentation, including event taxonomy, journey definitions, field registry, and query reference.
  • Runbooks

    • Introduced an observability triage runbook for diagnosing missing telemetry data.