Commit Graph

123 Commits

Author SHA1 Message Date
akbash e6fa5289f2
fix(ui): preserve sidebar scroll across clients (#2280)
refs #2255

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-04 15:37:33 +03:00
Michael Hackner eacea2daf0
fix: page keys scroll pane scrollback at zsh and REPL prompts (#2191)
* fix: page keys scroll pane scrollback at zsh and REPL prompts

PageUp/PageDown were forwarded to the pane whenever DECCKM (application
cursor) was on, assuming only primary-screen pagers enable it, but zsh's
line editor also enables DECCKM, as do REPLs such as python3. The result
was PageUp scrolling shell history instead of Herdr scrollback.

Bracketed paste discriminates the two: it means the app accepts typed or
pasted text at a prompt, so line editors enable it and pagers do not.

* test: update page key state fixture

---------

Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-03 04:08:47 +03:00
Can Celik 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
Ogulcan Celik bc1c052d15 fix: read alternate-screen agent history 2026-07-31 16:22:04 +03:00
Can Celik ac47b9e679
fix: resume agents after headless restore (#2088)
refs #2064
2026-07-30 19:15:00 +03:00
Ogulcan Celik e27a4ea427 perf: skip rendering hidden pty updates 2026-07-28 23:29:11 +03:00
Ogulcan Celik 81f355fada perf: replace agent spinners with static status marks 2026-07-28 14:56:53 +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 547aba8e0a
fix: avoid renders for passive mouse motion (#1872)
refs #1865
2026-07-26 00:28:11 +03:00
Can Celik b01fc37e66
perf: avoid full pane renders for spinner animation (#1868) 2026-07-25 23:20:08 +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 e608a75159 fix: make known-agent exit process-owned
refs #1792
refs #1648
2026-07-24 02:50:58 +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
akbash 6382bd433a
fix: reject oversized text pastes safely (#1676)
refs #1665

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-21 17:33:07 +03:00
Ogulcan Celik d30ab1b54f feat: add plugin-driven agent views and startup hooks 2026-07-20 00:55:36 +03:00
Ogulcan Celik 8dcb75a5c0 refactor: extract active tab surface rendering 2026-07-16 22:47:10 +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 b88aa1301e fix: flush live handoff responses before exit 2026-07-14 22:07:06 +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 d6285aaa59 fix: avoid render-time plain url scans 2026-07-08 00:44:49 +03:00
Ogulcan Celik b425260f9d perf: move session autosaves off main loop 2026-07-07 15:35:20 +03:00
akbash 4f22e9a73b
fix: preserve wrapped pane links (#1099)
refs #1098

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-07-06 23:59:59 +03:00
ppggff 2bc1724c2d
fix: switch prefix ASCII input source on the foreground client (#1016)
* fix: switch prefix ASCII input source on the foreground client

The macOS prefix ASCII-switch ran in the headless server, whose
TISCopyCurrentKeyboardInputSource read is a stale per-process cache
(refreshed only via a main-run-loop notification the server never pumps),
so prefix could leave the terminal on the wrong input source.

Forward it to the foreground client, like clipboard: sync_prefix_input_source
emits AppEvent::PrefixInputSource as an intent; the server forwards it to the
foreground client and the monolithic app applies it in-process via
RealPrefixInputSource, which pumps its main run loop before the stale TIS read.
Key it on Mode::wants_ascii_input so multi-level prefix commands keep ASCII
until returning to the terminal, and restore the IME for rename text entry.

Adds ServerMessage::PrefixInputSource to the already-unreleased protocol 15.

refs #774

* fix: keep prefix input-source switch out of the headless server process

An App-internal drain (the exhaustive drain at the top of
handle_api_request, reachable from prefix-key runtime mutations) can
consume a queued PrefixInputSource intent before the server's
forwarding drain sees it, applying the TIS switch in the headless
server process and stranding the restore state. Gate the in-process
switch on App.local_input_source_switch, disabled by the headless
server alongside the other local side effects, so a swallowed intent
degrades to a skipped switch. Widen the forwarding-bypass maintenance
test to the handle_internal_event_with_prefix_sync wrapper.

refs #774

* docs: clarify prefix input-source comments and flag docs

refs #774

* fix: bump protocol for prefix input source

refs #774

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-05 03:25:47 +03:00
Ogulcan Celik 04682e57e6 refactor: route headless deferred creates through runtime helpers 2026-07-04 16:51:10 +03:00
Ogulcan Celik 15cab964f3 feat: emit layout update events for runtime layout changes 2026-07-04 16:51:10 +03:00
Ogulcan Celik 6ea68f9af2 fix: forward page keys to primary-screen pagers
refs #953
2026-07-03 21:50:34 +03:00
Ogulcan Celik 045f506ec8 fix: keep windows wait connections open
refs #963
2026-07-03 20:38:05 +03:00
Ogulcan Celik 848554517a fix: keep copy feedback above retained pane updates
refs #555
2026-07-02 21:54:05 +03:00
Ogulcan Celik 0bab01573a refactor: route headless workspace tab mutations through runtime dispatch 2026-06-30 20:29:57 +03:00
Ogulcan Celik 0fa6440d41 feat: add terminal session control stream 2026-06-30 02:48:02 +03:00
Ogulcan Celik bffc4a82c8 feat: add terminal session observe stream 2026-06-30 01:10:28 +03:00
Ogulcan Celik 97f78226bf fix: route tui modal mutations through api authority 2026-06-29 18:57:13 +03:00
Ogulcan Celik 088922dfab fix: let user keybinds displace defaults
refs #747
2026-06-22 23:36:43 +03:00
Ogulcan Celik 27ff4ddf96 fix: block idle client writer
refs #726
2026-06-22 01:43:32 +03:00
Ogulcan Celik 46a2b259a7 fix: defer api worktree operations
refs #686

refs #657

refs #662

refs https://github.com/ogulcancelik/herdr/discussions/687
2026-06-19 18:59:43 +03:00
Ogulcan Celik d74ba8ca9e fix: emit plugin lifecycle events from ui worktree flows
refs #662
2026-06-18 16:05:43 +03:00
Ogulcan Celik 36b4001f45 feat: sync theme with host appearance
refs #675
2026-06-18 02:53:31 +03:00
Ogulcan Celik 54490254f7 feat: sort agent panel by priority
refs #318
2026-06-17 16:08:43 +03:00
Ogulcan Celik fbd20ad6e4 feat: add plugin v1 system
Add manifest-driven plugin actions, event hooks, pane entrypoints, link handlers, and host APIs.

Support plugin link, GitHub install, build commands, installed plugin registry, pane movement, runtime context, and plugin docs.
2026-06-14 03:47:07 +03:00
Ogulcan Celik f7a7da03fc fix: stabilize public pane and tab ids
refs #569
2026-06-12 19:10:09 +03:00
Ogulcan Celik 36a1b7f864 feat: distribute agent detection manifests 2026-06-10 15:33:45 +03:00
Ogulcan Celik ee51c5e5fb feat: use pty-first agent detection 2026-06-09 04:26:19 +03:00
Ogulcan Celik a7cd7806f2 fix: reduce scroll CPU in headless server
refs #512
2026-06-08 19:49:06 +03:00
Ogulcan Celik fb56e64537 fix: improve windows pane behavior 2026-06-08 01:36:51 +03:00
Ogulcan Celik 3c2b46d24a feat: add native windows beta support 2026-06-07 16:29:44 +03:00