Skip to content

Conversation

@ammar-agent
Copy link
Collaborator

@ammar-agent ammar-agent commented Jan 13, 2026

Summary

Fixes terminal input regression introduced in #1563 (d3928b5).

Root Cause

The attachCustomKeyEventHandler in ghostty-web returns:

  • true: PREVENT default handling (we handled it)
  • false: ALLOW default handling (let ghostty process it)

The clipboard shortcut handler had this inverted:

  • Returned true for all non-keydown events → blocked keyup/keypress
  • Returned true at end of handler → blocked all normal key input

This effectively disabled all terminal input except the specific copy/paste shortcuts.

Fix

Invert all return values to match ghostty-web's API contract.


Generated with mux • Model: anthropic:claude-opus-4-5 • Thinking: high • Cost: $2.53

@ammar-agent ammar-agent force-pushed the fix/terminal-input-drag-region branch 2 times, most recently from c1985d4 to 4987e7a Compare January 13, 2026 00:55
@ammar-agent ammar-agent changed the title 🤖 fix: terminal input blocked by titlebar drag region 🤖 revert: integrated titlebar for Electron Jan 13, 2026
The attachCustomKeyEventHandler in ghostty-web returns:
- true: PREVENT default handling (we handled it)
- false: ALLOW default handling (let ghostty process it)

The clipboard shortcut handler (#1563) had this inverted, returning true
for all non-keydown events and at the end of the handler, which prevented
ghostty from processing any keyboard input.

Fixes terminal input regression introduced in d3928b5.
@ammar-agent ammar-agent force-pushed the fix/terminal-input-drag-region branch from 4987e7a to 86f6f24 Compare January 13, 2026 01:03
@ammar-agent ammar-agent changed the title 🤖 revert: integrated titlebar for Electron 🤖 fix: terminal input broken by inverted key handler return values Jan 13, 2026
@ammario ammario merged commit 1e84fe1 into main Jan 13, 2026
14 of 17 checks passed
@ammario ammario deleted the fix/terminal-input-drag-region branch January 13, 2026 01:07
@ammar-agent
Copy link
Collaborator Author

/retest

ammar-agent added a commit that referenced this pull request Jan 13, 2026
Adds end-to-end tests that verify keyboard input reaches the terminal,
preventing regression of the bug fixed in PR #1586.

The bug: attachCustomKeyEventHandler returned inverted values, causing
ghostty-web to block all keyboard input (characters, Enter, arrows, etc.)
instead of only clipboard shortcuts.

Tests verify:
- Characters can be typed and commands executed
- Special keys (Enter, Backspace, Tab, arrows) work correctly
- The terminal doesn't freeze when receiving keyboard input

Also adds helper methods to the E2E UI utils for terminal interaction:
- focusTerminal()
- typeInTerminal()
- pressKeyInTerminal()
- runTerminalCommand()
ammario pushed a commit that referenced this pull request Jan 13, 2026
…#1590)

## Summary

Adds end-to-end tests that verify keyboard input reaches the terminal,
preventing regression of the bug fixed in PR #1586.

## Root Cause (from #1586)

The bug in `attachCustomKeyEventHandler` had inverted return values:
- ghostty-web expects `true` to PREVENT default, `false` to ALLOW
default
- The buggy code returned `true` for all non-clipboard keys, blocking
ALL input

## Tests Added

1. **`keyboard input reaches terminal`** - Types a command that creates
a marker file and verifies execution
2. **`special keys work in terminal`** - Tests Enter, Backspace, Tab,
and arrow keys

## Helper Methods Added

New E2E UI utils for terminal interaction:
- `focusTerminal()`
- `typeInTerminal(text)`
- `pressKeyInTerminal(key)`
- `runTerminalCommand(command)`

---
_Generated with `mux` • Model: `anthropic:claude-opus-4-5` • Thinking:
`high` • Cost: `$2.96`_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants