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
David Heinemeier Hansson
36a8d36a72
feat: make outer pane borders configurable ( #2535 )
2026-08-09 01:37:57 +03:00
Can Celik
10974c822d
feat(input): add per-pane right-click routing ( #2504 )
2026-08-08 16:26:47 +03:00
Jon Kinney and Can Celik
09cdd88d0a
fix(layout): return focus to the pane a split was opened from ( #2266 )
...
Closing a focused pane handed focus to the next pane in tree order.
For a pane opened beside another one -- a plugin split, a file viewer,
any transient tool pane -- that is rarely where the user was: it lands
on some unrelated neighbour rather than the pane that opened it.
Track the pane focus came from in TileLayout and prefer it when the
focused pane closes, falling back to tree order when there is no
history, when it points at the pane being closed, or when it points at
a pane that has since gone away. The history lives in the layout, so it
can only ever name a pane in the same tab.
A one-slot history is only sound if internal focus excursions never
write it, so the tree edits that used to bounce focus around now go
through target-taking primitives instead. close_pane removes a
background pane directly, so detach_pane and take_pane_for_move stop
focus-close-refocusing. split_pane splits a target without moving
focus: the runtime split path only focuses the new pane once the spawn
succeeds, which makes a failed split a pure rollback, and the targeted
and unfocused workspace split paths stop fabricating history.
insert_pane_near now takes the focus intent, so an unfocused pane move
leaves the target tab's history alone. The layout-level focused-split
helpers become test-only; production splits all flow through the
target-taking path.
Co-authored-by: Can Celik <ogulcancelik@gmail.com >
2026-08-05 00:35:15 +03:00
Can Celik
adb50cba9b
fix(input): preserve shift-tab in pane automation ( #2259 )
...
refs #1561
2026-08-04 05:19:40 +03:00
Can Celik
10eb0bc744
fix: propagate host color scheme to pane apps ( #2214 )
...
refs #714
2026-08-03 02:05:27 +03:00
Can Celik and Jonathan 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
Ogulcan Celik
bc1c052d15
fix: read alternate-screen agent history
2026-07-31 16:22:04 +03:00
Ogulcan Celik
b44b5b1013
chore: finish repository organization migration
2026-07-30 02:45:05 +03:00
Ogulcan Celik
e16d7d8c07
fix: preserve linked worktree workspace labels
2026-07-28 15:34:13 +03:00
Ogulcan Celik
b499e611b6
fix: resolve relative plugin commands from plugin root
...
refs #1949
2026-07-28 02:19:33 +03:00
Season Saw
a79b3d5580
fix: close workspace when api closes its last tab ( #1899 )
...
herdr tab close on a workspace's only tab returned tab_close_failed,
while the TUI close-tab action on the same tab closes the tab and
cascades to closing the workspace. Cascade in the API too, emitting
tab.closed then workspace.closed. When the cascade would close a whole
worktree group, return confirmation_required instead, matching
pane.close and the TUI prompt.
refs #1760
2026-07-27 02:25:29 +03:00
Ogulcan Celik
bb29eedb72
fix: delay agent prompt submission
...
refs #1878
2026-07-27 00:12:25 +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
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
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
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
e0758c3211
feat: harden named agent cli workflows
...
refs #1525
2026-07-17 23:59:56 +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
5cfe5e5e73
feat: add configurable sidebar metadata tokens
2026-07-13 03:30:13 +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 and Vlad 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
0a684b4130
fix: clear done status on repeated pane focus
2026-07-07 21:13:34 +03:00
Ogulcan Celik
d190c1f55e
fix: send shifted punctuation as text in kitty mode
...
refs #1105
2026-07-07 16:25:36 +03:00
Ogulcan Celik and Robin Gagnon
17e2b2b878
fix: honor prefix in copy mode
...
refs #681
Based on PR #1092 by @reobin.
Co-authored-by: Robin Gagnon <me@reobin.dev >
2026-07-07 01:20:13 +03:00
Ogulcan Celik
56edcbcba8
feat: expose pane scroll state
2026-07-06 23:06:00 +03:00
akbash and akbash-bot
fbc3f0845a
fix: focus parent after worktree removal ( #1075 )
...
refs #1004
Co-authored-by: akbash-bot <akbash-bot@users.noreply.github.com >
2026-07-06 16:19:31 +03:00
Ogulcan Celik
15cab964f3
feat: emit layout update events for runtime layout changes
2026-07-04 16:51:10 +03:00
Ogulcan Celik
cf3769feb9
feat: follow focused pane cwd for new workspaces
...
refs #919
2026-07-02 13:58:26 +03:00
Ogulcan Celik
48d58648ae
fix: follow cached cwd for new tabs
...
refs #912
2026-07-02 02:20:40 +03:00
Ogulcan Celik
9150ed6268
feat: add session snapshot api
2026-06-29 21:36:48 +03:00
Ogulcan Celik
8b74fb8a12
feat: emit placement mutation events
2026-06-29 20:39:54 +03:00
Ogulcan Celik
97f78226bf
fix: route tui modal mutations through api authority
2026-06-29 18:57:13 +03:00
Ogulcan Celik
1a4e94e57e
refactor: route tui mutations through runtime authority
2026-06-29 18:09:25 +03:00
Ogulcan Celik
89ca3ba933
fix: check out existing branches for worktree create
...
refs #729
2026-06-22 00:51:00 +03:00
Ogulcan Celik
4421c0febb
fix: add configurable pane gaps
...
refs #271
2026-06-21 14:03:59 +03:00
Ogulcan Celik
92a10fc044
fix: protect root agent restore sessions
...
refs #712
2026-06-21 02:42:39 +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
2fe57a57a2
fix: stabilize flaky plugin capture tests and auto-trigger website deploy
2026-06-16 02:56:25 +03:00
Dillon Mulroy and Can Celik
16b69b6faa
fix: support key-combo syntax for API send keys ( #613 )
...
Co-authored-by: Can Celik <ogulcancelik@gmail.com >
2026-06-15 18:23:24 +03:00
Ogulcan Celik
4ffd99c2ec
fix: keep auto tab labels compact
2026-06-15 04:56:03 +03:00
Ogulcan Celik
dcfc45b45d
fix: preserve claude session rotations
...
refs #620
2026-06-15 02:13:30 +03:00