Key changes:
- Fix keyboard input handling for control characters in GhosttyTerminalView
- Set consumed_mods correctly (exclude Ctrl/Cmd from consumed mods)
- Send unmodified character text for Ctrl+key combinations
- Add unshifted_codepoint support for proper key encoding
- Add TerminalController with Unix socket API (/tmp/ghosttytabs.sock)
- Commands: send, send_key, list_tabs, new_tab, close_tab, select_tab
- Supports ctrl-c, ctrl-d, ctrl-z, enter, tab, escape, etc.
- Add Python test client and automated test suite
- tests/ghosttytabs.py - Python client library
- tests/test_ctrl_socket.py - Main Ctrl+C/D test suite (4 tests)
- tests/test_signals_auto.py - Standalone PTY signal tests
- Update CLAUDE.md with socket API documentation and testing guide
- Update .gitignore for Python cache files
This fixes Ctrl+C/D not working in apps like claude-code, btop, opencode
while continuing to work in simpler apps like htop.