50 Commits
Author SHA1 Message Date
JJ Liebig 0496636dc7 fix(windows): preserve ctrl+slash key identity (#3578)
refs #2954
2026-09-03 17:20:57 +02:00
2ae8b91ca5 fix(windows): preserve dead-key composition in kitty panes (#3548)
refs #3546

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-02 23:19:49 +02:00
JJ Liebig 99c23cd1ea fix(windows): preserve native pane key identity (#3503) 2026-09-01 21:46:16 +02:00
Can Celik 207be3c771 refactor: render the shell in the client (#3487)
* feat: add opt-in client-rendered shell

* feat: add client-owned shell mouse controls

* feat: complete client-owned shell chrome

* feat: add client-owned shell settings and notifications

* feat: run client shell custom commands

* feat: render popup terminals in client shell

* feat: add client-owned scrollback and copy mode

* fix: preserve client worktree trust defaults

* feat: render startup diagnostics in client shell

* feat: render onboarding in client shell

* feat: render product announcements in client shell

* feat: render release notes in client shell

* feat: render mobile switcher in client shell

* feat: render kitty graphics in client shell

* fix: preserve client shell lifecycle coherence

* refactor: route client shell commands through endpoint connections

* refactor: make the client-rendered shell the default

* refactor: remove monolithic launch mode

* refactor: complete client-rendered shell cutover

* perf: retain client pane surface updates

* perf: scale retained pane surface updates

* perf: remove remote pane input latency

* test: make client shell checks platform-independent

* fix: prevent client timer starvation

* test: fix client shell platform gates

* test: accept retained surfaces in cross-area checks

* test: make client mode assertions platform-neutral

* fix: badge only outdated integrations
2026-09-01 15:48:22 +03:00
Can Celik c2637dc182 fix: handle associated text on special keys (#3350)
refs #3328
2026-08-29 00:06:44 +03:00
Can Celik 1d604329b0 fix(windows): preserve non-us shifted text (#3055)
* fix(windows): preserve non-us shifted text

refs #3045

* fix(windows): retain shifted key repeat lifecycle

refs #3045
2026-08-23 00:01:57 +03:00
Can Celik a5c69beabf fix(perf): eliminate redundant terminal wake work (#2962)
* fix(perf): eliminate redundant terminal wake work

* fix(perf): harden release benchmark gate

* test(perf): strengthen performance guardrails
2026-08-19 04:43:28 +03:00
Can Celik 0bd445020e fix: preserve macOS IME commits in report-all mode (#2947) 2026-08-18 19:30:57 +03:00
Can Celik d277d2f83b fix(input): preserve alt-prefixed control keys (#2543)
refs #2514
2026-08-09 05:10:35 +03:00
Can Celik 1777e9bba3 feat(graphics): add direct pane frame streaming (#2523)
* feat(graphics): add direct pane frame streaming

* feat(graphics): expose pane visibility

* test(graphics): preserve legacy terminal image output

* fix(graphics): harden streaming lifecycle

* fix(input): preserve mouse releases outside panes
2026-08-09 02:04:39 +03:00
Can Celik b0723b7906 fix(input): preserve shift in kitty alternate reports (#2479)
refs #2435
2026-08-07 19:07:36 +03:00
serhat dolmaci d950fdfe7d fix(input): decode 0x1f as Ctrl+_ not Ctrl+- per ASCII standard (#2165)
* fix(input): decode 0x1f as Ctrl+_ not Ctrl+- per ASCII standard

refs #2164

* fix(input): update control-byte matrix test for 0x1f -> Ctrl+_
2026-08-01 19:34:29 +03:00
Can CelikandJonathan Liebig b76adc155d fix(input): preserve native key lifecycle across routing (#2142)
refs #2077

Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
2026-08-01 04:27:50 +03:00
akbashandakbash-bot cfa112e741 fix: preserve kitty associated text (#2051)
refs #2020

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-30 03:18:16 +03:00
Can Celik e536bd8bd9 fix: support non-us shifted keybindings (#1876)
* fix: support non-us shifted keybindings

refs #1870

* docs: require current pull request base
2026-07-26 04:22:05 +03:00
Ogulcan Celik e7fc85bfdb fix: preserve kitty printable key releases
refs #1746
2026-07-23 03:47:44 +03:00
akbashandakbash-bot 3023228736 fix: preserve associated emoji input (#1410)
refs #1404

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-14 22:46:33 +03:00
Ogulcan Celik d190c1f55e fix: send shifted punctuation as text in kitty mode
refs #1105
2026-07-07 16:25:36 +03:00
akbashandakbash-bot 39ba6b7a02 fix: preserve alt-shift letters (#1102)
refs #1088

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-07 15:54:03 +03:00
akbashandakbash-bot e98c49658c fix: preserve shifted punctuation for alt legacy input (#1076)
refs #1066

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-06 17:37:36 +03:00
Ogulcan Celik f4d216b63d fix: preserve windows backspace input
refs #907

refs #920
2026-07-02 16:22:11 +03:00
Ogulcan Celik a937f7e85b fix: encode ctrl slash as ctrl underscore
refs #847
2026-06-28 23:34:14 +03:00
Ogulcan Celik c792f2fd53 fix: preserve alacritty input on windows
refs #792
2026-06-25 16:32:00 +03:00
Ogulcan Celik 520d0b8b9c fix: prevent release key fallback from doubling input
refs #769
2026-06-24 02:47:07 +03:00
Ogulcan Celik 08bb0768ae fix: handle kitty keypad input
refs #570
2026-06-15 15:12:56 +03:00
Ogulcan Celik efe7c55769 fix: accept alternate f1-f4 key sequences
refs #574
2026-06-15 04:53:46 +03:00
Ogulcan Celik 580db93ecc fix: handle application keypad input
refs #493
2026-06-08 03:55:02 +03:00
Ogulcan Celik 3c2b46d24a feat: add native windows beta support 2026-06-07 16:29:44 +03:00
Ogulcan Celik bf9cc20124 fix: preserve live handoff terminal state 2026-05-28 04:12:53 +03:00
Ogulcan Celik 866aaf740e refactor: separate server client boundaries 2026-05-21 20:22:57 +03:00
Ogulcan Celik d616bcd6b8 fix: preserve modified enter input
refs #168
2026-05-19 14:24:30 +03:00
kangal-botandkangal-bot fa0e380e62 fix: preserve alt backspace in panes (#165)
refs #155

Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-18 20:13:19 +03:00
Ogulcan Celik c2e58974f4 fix(input): scroll pane scrollback with pageup/pagedown and parse enhanced tilde sequences 2026-05-14 22:57:09 +03:00
Ogulcan Celik 4af28fbb65 test: add ime input regressions 2026-05-12 15:54:19 +03:00
Ogulcan Celik 5063cdf6d1 chore: remove unused test imports 2026-04-22 01:24:34 +03:00
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 edaa3a1a09 fix unify app key normalization for enhanced keyboard reporting 2026-04-14 01:04:51 +03:00
Ogulcan Celik 305d957704 fix input encoding for ctrl+letter in kitty mode 2026-04-13 17:34:13 +03:00
Can Celik d739880f43 Merge pull request #9 from Edmund-a7/master
fix: support IME input for Chinese and other UTF-8 characters
2026-04-08 01:23:23 +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
Ogulcan Celik ed0c051c55 fix: preserve lf in raw terminal input 2026-04-07 15:48:58 +03: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 8525503dba fix: match ghostty pane default colors to host terminal theme 2026-04-05 03:46:16 +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 800a8c1a7a fix ghostty macos arrow and modifier key parsing 2026-03-30 16:33:26 +03:00
Ogulcan Celik 5568449389 refactor sidebar status rollup and preserve pane order 2026-03-30 14:54:21 +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