Commit Graph
9 Commits
Author SHA1 Message Date
Can Celik 3397e1ce29 feat: add persistent server-client sessions
Make herdr persistent by default.

   Launching herdr now starts or reattaches to a background session
   server. Clients can detach and reattach while panes and agent
   processes keep running. Session mode now supports multi-client attach,
   auto-detect startup, and a thin-client/headless-server split.

   This also refactors the large app, ui, input, pane, config,
   workspace, and persistence modules into smaller focused submodules,
   while preserving behavior and colocating tests with the code they
   exercise.

   Upgrade notes:
   - persistence mode is now the default
   - in-app quit detaches the current client instead of stopping the server
   - use `herdr server stop` to stop the background session
   - use `--no-session` for the old single-process behavior
   - default socket paths now live under the config directory
2026-04-21 16:30:04 +03:00
Ogulcan Celik 305d957704 fix input encoding for ctrl+letter in kitty mode 2026-04-13 17:34:13 +03:00
acumen7 34bc876c66 fix: support IME input for Chinese and other UTF-8 characters
Phase 1: UTF-8 encoding support
- Modified encode_text_input() to handle characters without modifiers
- Added unit tests for Chinese character encoding

Phase 2: IME composition support
- Removed REPORT_ALL_KEYS_AS_ESCAPE_CODES keyboard flag
- Prevents keyboard protocol from interfering with IME
- Allows digit keys to be captured by input method for candidate selection

Fixes issue where IME input was not working properly.
Supports Chinese, Japanese, Korean, and other UTF-8 input methods.
Maintains compatibility with all existing features.

Tested:
- All 388 unit tests pass
- Chinese IME input with pinyin works correctly
- All navigate mode shortcuts work normally
- All terminal applications work normally
2026-04-07 20:52:24 +08:00
Can Celik b2e6929aa8 refactor: remove vt100 backend and make ghostty default 2026-04-05 16:38:50 +03:00
Can Celik 822c3b9e2d refactor: own pane mouse protocol enums outside vt100 2026-04-05 15:56:05 +03:00
Can Celik 41dd733ca7 feat: finish ghostty pane backend integration 2026-04-05 01:23:06 +03:00
Ogulcan Celik e857710d73 fix: align pane scrolling with tmux and ghostty 2026-03-31 23:03:11 +03:00
Ogulcan Celik ca93e6e251 fix: send shifted printable keys as text input 2026-03-30 13:50:24 +03:00
Ogulcan Celik 741fbbe8b3 refactor: split terminal keyboard protocol module 2026-03-30 13:01:52 +03:00