Commit Graph

346 Commits

Author SHA1 Message Date
Ogulcan Celik 19cd372f25 fix: preserve prefix mode for modifier events
refs #1870
2026-07-26 14:43:48 +03:00
Yi-An Lai 165dca453d
fix: preserve focus when closing a non-focused workspace (#1877)
refs #1328
2026-07-26 14:25:46 +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
Can Celik 8843bbb0c4
fix: improve sidebar worktree hierarchy and reordering (#1873)
* fix: clarify sidebar worktree hierarchy

refs #1694

* feat: reorder worktree groups as a unit

refs #1694
2026-07-26 02:45:44 +03:00
Can Celik 547aba8e0a
fix: avoid renders for passive mouse motion (#1872)
refs #1865
2026-07-26 00:28:11 +03:00
joonhwan 6cfaa079a9
feat: switch IME to ASCII in prefix mode on Windows (Korean IME) (#1823)
* feat: switch IME to ASCII in prefix mode on Windows

Extend switch_ascii_input_source_in_prefix to Windows: detect IME state
via WM_IME_CONTROL and toggle to ASCII with SendInput for the Korean IME.
Other IME languages are detected and left unchanged.

refs #1802

* docs: clarify Windows (Korean IME) support for prefix ASCII switching

Follow-up to the Windows prefix ASCII switch, which extended
switch_ascii_input_source_in_prefix to Windows but left the surrounding
text describing macOS only.

- Settings row label: "(macOS)" -> "(macOS/Windows)", plus its test.
- Generalize the Windows behavior wording to "switches the IME to
  English (ASCII) input" in the config-reference.json entry and the
  model.rs doc comment, and state that Windows support is currently
  limited to the Korean IME.
- Add a :::caution aside noting the Korean-IME-only limitation to the
  en/ja/zh preview docs, keeping the three translations in sync.

refs #1802

* fix: warn when prefix IME toggle injection is incomplete

SendInput can queue fewer events than requested (for example when blocked
by UIPI), which would otherwise leave the IME silently stuck in ASCII or
native mode. Log a warning with the sent and expected counts so the failure
is diagnosable.

refs #1802

* fix: guard prefix IME restore and correct open-status naming

Address maintainer review on the Windows prefix ASCII switch:

- Restore only when safe: store the foreground window at switch time and,
  before toggling back, require that the same window is still focused and
  the IME is still in English. This stops restore from toggling another
  application or overriding a manual return to Hangul during prefix mode.
- Report injection success from send_vk_tap and only arm restoration when
  the initial toggle landed; on a partial injection retry the dropped
  key-up so a key is not left logically held down. The injection policy is
  split into send_vk_tap_with(inject) so the success, partial, and failure
  branches are unit-tested without the real SendInput.
- Correct the WM_IME_CONTROL sub-command naming: 0x0005 is IMC_GETOPENSTATUS
  (IME open state), not IMC_GETCONVERSIONMODE. Behavior is unchanged; the
  constant, comments, and tests now describe the open-status read.

refs #1802

* fix: bound IME open-status read with a timeout

The prefix IME switch reads IMC_GETOPENSTATUS via WM_IME_CONTROL, which
crosses into the terminal-emulator process. A plain SendMessageW would block
herdr's client thread until that process responds, indefinitely if it hangs.
Read through SendMessageTimeoutW with SMTO_ABORTIFHUNG and a short timeout
instead; on timeout the switch is skipped and restore does nothing, so a hung
host process can no longer freeze prefix-mode entry or exit.

refs #1802

* fix: preserve windows ime restoration after partial injection

refs #1802

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-25 20:52:45 +03:00
Can Celik d4e0dd3d90
perf: eliminate repeated workspace git discovery (#1842)
* perf: eliminate repeated workspace git discovery

refs #1838

* fix: keep workspace labels current without extra redraws

refs #1838

* fix: retain discovered workspace git metadata

refs #1838
2026-07-25 04:26:55 +03:00
Ogulcan Celik b33e5f973f fix: copy retained mouse selections with keyboard shortcuts
refs #1782
2026-07-25 02:54:20 +03:00
corrius 38d2b0780c
feat: filter keybind help (#1832)
* feat: filter keybind help

refs #1825

* fix: recognize shifted slash in keybind help

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-24 22:52:17 +03:00
Ogulcan Celik c0fb777ed7 fix: report truncated pane reads
refs #1717
2026-07-24 04:00:13 +03:00
Ogulcan Celik e608a75159 fix: make known-agent exit process-owned
refs #1792
refs #1648
2026-07-24 02:50:58 +03:00
Ogulcan Celik 58e812b238 fix: consume handled url click gestures
refs #1761
2026-07-24 02:10:47 +03:00
Ogulcan Celik 36de78dd4f fix: preserve kitty graphics during host repaints
refs #1628
2026-07-24 01:31:06 +03:00
akbash 503613c8ec
fix: inherit host palette in pane queries (#1759)
refs #1752

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-24 01:28:35 +03:00
Ogulcan Celik e7fc85bfdb fix: preserve kitty printable key releases
refs #1746
2026-07-23 03:47:44 +03:00
Ogulcan Celik a02c3a69bb refactor: centralize new terminal cwd selection
replaces contributions from Pitchfork-and-Torch
2026-07-22 22:41:01 +03:00
Ogulcan Celik 1d238bc9a3 refactor: replace pane mouse and clipboard internals
replaces contributions from othavi0
2026-07-22 18:59:01 +03:00
Ogulcan Celik 69d07dba84 fix: make plugin state global across sessions
refs #1174
2026-07-20 23:04:15 +03:00
Ogulcan Celik d30ab1b54f feat: add plugin-driven agent views and startup hooks 2026-07-20 00:55:36 +03:00
Ogulcan Celik 3f80947678 feat: make agent automation a first-class cli primitive 2026-07-19 23:56:07 +03:00
akbash f76f895efe
fix: preserve plugin command arguments (#1613) 2026-07-19 23:07:10 +03:00
Ogulcan Celik a26a654351 feat: connected tree glyphs, workspace grouping, and search auto-select in navigator
refs #1611
2026-07-19 20:44:44 +03:00
akbash f11be93e04
fix: report unknown config keys (#1575)
* fix: report unknown config keys

refs #1573

* fix: preserve mixed config warning context

refs #1573

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-18 21:27:48 +03:00
Ogulcan Celik e298e45890 feat: add optional workspace name prompt 2026-07-18 01:55:46 +03:00
Ogulcan Celik e0758c3211 feat: harden named agent cli workflows
refs #1525
2026-07-17 23:59:56 +03:00
Ogulcan Celik 8d2af4e046 perf: adopt libghostty integration improvements
refs #276
2026-07-17 03:26:33 +03:00
akbash f43a6d4a55
fix: preserve selection when auto-copy is disabled (#1496)
refs #1471

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-16 21:57:20 +03:00
Ogulcan Celik 9c9490d764 feat: configure collapsed sidebar startup state
refs #1463
2026-07-16 03:28:57 +03:00
Ogulcan Celik b16465afbb feat: add configurable sidebar token styles 2026-07-16 03:21:36 +03:00
Ogulcan Celik a22454f27c fix: preserve plugins during live handoff
refs #893
2026-07-16 00:32:22 +03:00
Ogulcan Celik 2c7c8beb07 feat: add floating popup panes
refs #1125
2026-07-15 04:02:14 +03:00
Ogulcan Celik 88370e1516 feat: add isolated pane graphics streaming 2026-07-15 02:32:52 +03:00
Ogulcan Celik 012e819b5b ci: restore fast reliable checks 2026-07-14 22:07:08 +03:00
Ogulcan Celik 5b91dae12f feat: configure sidebar entry gaps 2026-07-14 20:41:20 +03:00
akbash b0d46fb9bc
fix: stop copy mode line-end at text (#1411) 2026-07-14 15:54:28 +03:00
akbash 4c9a3f380d
fix: forward horizontal wheel events to panes (#1402)
refs #1349

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-14 04:18:18 +03:00
akbash 2e5da968ea
fix: forward outer focus events to panes (#1388)
* fix: forward outer focus events to panes

refs #1337

* fix: preserve ordered focus forwarding

refs #1337

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-14 01:06:11 +03:00
akbash 75ed6abc62
fix: reap detached custom command children (#1384)
* fix: reap detached custom command children

refs #1360

* test: harden child cleanup and sidebar metrics

refs #1360

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-13 17:25:52 +03:00
Ogulcan Celik 5cfe5e5e73 feat: add configurable sidebar metadata tokens 2026-07-13 03:30:13 +03:00
Ogulcan Celik a6905364b6 fix: clarify config fallback diagnostics 2026-07-12 03:58:27 +03:00
Ogulcan Celik 4617456348 feat: add copy-on-select setting 2026-07-11 02:46:58 +03:00
Ogulcan Celik 3e8f9df14e fix: improve config diagnostic delivery 2026-07-10 17:28:31 +03:00
Pitchfork-and-Torch 4f7fcc48d1 fix: follow foreground cwd for new terminals
refs #1245
2026-07-10 15:06:54 +03:00
Ogulcan Celik c8850a2e3e feat: add copy mode search and tmux word motions
refs #1230
2026-07-10 04:22:10 +03:00
Vladyslav Kovalov 010afe5305
fix: refresh tab bar after plugin-driven tab rename (#1179)
refs #1111

Co-authored-by: Vlad Kovalov <kovalov@users.noreply.github.com>
2026-07-09 01:15:05 +03:00
Ogulcan Celik b708f85e7d fix: match shifted indexed number keybinds
refs #1184
2026-07-08 22:31:40 +03:00
akbash 552aa8ca22
fix: align collapsed sidebar agent rows (#1182)
refs #1168

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-08 15:22:57 +03:00
Ogulcan Celik 4e3970ca31 fix: restore workspace picker keyboard navigation
refs #1149
2026-07-08 01:00:24 +03:00
Ogulcan Celik d6285aaa59 fix: avoid render-time plain url scans 2026-07-08 00:44:49 +03:00
Ogulcan Celik 0a684b4130 fix: clear done status on repeated pane focus 2026-07-07 21:13:34 +03:00