Commit Graph
442 Commits
Author SHA1 Message Date
Can Celik 4428e1664d fix: preserve unloaded sessions before replacement (#4190)
refs #4125
2026-09-15 21:17:32 +03:00
JJ Liebig ad41567287 fix: scope window titles to each client view (#4130)
refs #4091
2026-09-14 18:35:18 +02:00
3b478e69dc fix: scope agent views to the selected machine (#3784)
* fix: scope agent views to the selected machine

refs #3732

* fix: preserve stable agent view ordering

refs #3732

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-14 02:11:07 +04:00
Can Celik 6075d25f47 fix: keep plugins working after client-only updates (#4077) 2026-09-13 23:37:26 +03:00
Can Celik f8e59221cb feat: add ctrl-hover highlighting and fix wrapped links (#4074)
refs #1282
2026-09-13 23:05:30 +03:00
caner-akcaandJJ Liebig f0cb0e0683 fix: keep an agent name through a process-exit observation (#3574)
A process-exit observation is not proof the agent is gone: the same
observation can be wrong while the agent keeps running, and the name is
the only handle its owner has on the pane. Detection uncertainty already
preserves the name, so releasing it on the observation alone contradicts
that contract and leaves a live agent unreachable by name with a rename
as the only recovery.

Free the name at the point the agent actually leaves the pane - a
recorded exit with no agent detected any more - so a wrong observation
costs nothing and a real exit still releases the name for reuse.

refs #3225

Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-13 19:00:57 +02:00
858ad4e378 fix(input): preserve super-modified pane keys (#4044)
refs #3710

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-13 15:14:31 +02:00
9631f8ee21 fix: decouple pixel mouse from pane graphics (#4045)
refs #3295

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-13 14:57:31 +02:00
JJ Liebig 871ff8b91f fix: flush Windows Codex paste burst before prompt submit (#3961)
Codex's Windows input reader does not surface bracketed paste. It buffers
the prompt as a paste burst and rewrites a following Enter into a newline
until the burst idles out, so the previous size-based delay only reduced
the chance of losing the submit. Append a non-character key after the
paste so Codex flushes the burst synchronously, giving every prompt a
deterministic submit boundary.

refs #3187
2026-09-11 17:04:06 +02:00
Can Celik 5827145940 feat: support conditional sidebar token hiding (#3925) 2026-09-11 00:55:19 +03:00
akbashandakbash-bot 0911056d7e fix: stop token selection at CJK punctuation (#3708)
refs #3706

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-10 13:20:03 +03:00
Can Celik 1682cab326 fix: restore plugin focus events for client navigation (#3850)
refs #3824
2026-09-09 22:04:47 +03:00
Can CelikandJonathan Liebig e7d8220788 fix: preserve sessions after interrupted pane exits (#3418)
* fix: preserve sessions when pane shells are signaled

refs #3415

* fix: preserve shutdown checkpoints across platforms

refs #3415

---------

Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
2026-09-07 15:14:46 +02:00
4828181304 feat: make ui.pane_borders a three-state auto/always/off mode (#3234)
* feat: make ui.pane_borders a three-state auto/always/off mode

Legacy booleans keep parsing (true = auto, false = off); "always" frames
a lone pane while pane_outer_borders is enabled.

* fix: align pane border reload test and documentation

---------

Co-authored-by: Rudolf Schmidt <me@rudionrails.com>
Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
2026-09-07 14:04:54 +02:00
Can Celik c7b79294e2 feat: add conditional styles for sidebar tokens (#3693) 2026-09-06 23:44:15 +03:00
JJ Liebig 9d111db9c8 fix: keep manual selections active during terminal output (#3684) 2026-09-06 16:27:52 +02:00
JJ Liebig 6f57f2f62c fix: resolve Windows plugin pane launch paths (#3666)
* fix: resolve Windows plugin pane launch paths

refs #3024

* test: compare resolved Windows plugin probe paths

refs #3024

* test: compare resolved Windows plugin working directories

refs #3024

* test: wait for Windows plugin fixture completion

refs #3024
2026-09-05 21:56:17 +02:00
JJ Liebig 50ce4ec2dd fix: run the full applicable test suite on windows (#3660)
* fix: run the full applicable test suite on windows

* test: remove redundant test shell assignment

* test: make endpoint and metadata fixtures deterministic

* test: tolerate exited servers during windows probe cleanup
2026-09-05 21:39:32 +03:00
JJ Liebig 7916be1656 fix: make Windows Codex prompt delay size-aware (#3552)
refs #3187
2026-09-05 02:38:14 +02:00
Ogulcan Celik a2b128978a feat: enable kitty graphics by default 2026-09-04 21:59:13 +03:00
JJ Liebig 6045fe6a87 fix: persist Codex resume sessions at launch (#3617)
refs #3517
2026-09-04 14:54:05 +02:00
Can Celik e22cba35ef fix: keep direct graphics bound to its client (#3549) 2026-09-02 22:45:51 +03:00
JJ Liebig 5a2dee700e fix(windows): remove worktrees with active agent panes (#3532)
* fix(windows): remove worktrees with active agent panes

* fix(windows): defer pane restore until shutdown exits
2026-09-02 18:08:10 +02:00
JJ Liebig 8633a398e6 fix: reliably submit delayed agent prompts (#3506) 2026-09-02 13:34:03 +02:00
Can Celik 6c0bb273d5 feat: support independent multi-client tab views (#3526) 2026-09-02 14:24:33 +03:00
Can Celik cc88b3b8e5 feat: add stable client endpoint compatibility (#3509)
* feat: add stable client endpoint compatibility

* fix: keep portable-pty patch checks composable

* ci: run maintenance checks in pull requests

* fix: reject endpoint errors from terminal clients

* feat: keep compatible servers running across updates
2026-09-02 02:45:20 +03: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 095f1337d6 fix: trust worktree repositories per request (#3344)
refs #3044
2026-08-28 18:25:07 +03:00
akbashandakbash-bot d79fd746a9 fix: require explicit workspace group close (#3206)
refs #2874

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-25 23:44:56 +03:00
akbashandakbash-bot 9ff467bda4 fix: route osc 8 file links to plugin handlers (#2942)
refs #2941

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-25 22:02:37 +03:00
akbashandakbash-bot cafd9e5dd0 fix: refresh shared agent manifest caches (#3204)
refs #2711

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-25 01:08:36 +03:00
AlexandOgulcan Celik db6f301f13 feat: add per-mode theme overrides (#2324)
* feat: add per-mode theme overrides

allow [theme.custom.light] and [theme.custom.dark] blocks so custom
overrides can differ per resolved appearance when auto_switch flips.
precedence: theme defaults, then [theme.custom], then the block for
the active mode. configs without the new blocks resolve unchanged.

refs #837

* docs: complete per-mode theme documentation

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-08-23 00:18:56 +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
akbashandakbash-bot 1c76079f8b fix: copy selections before delayed mouse release (#3102)
refs #3100

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-22 01:52:03 +03:00
akbash 25e35f079e fix: preserve focus after background worktree removal (#3099) 2026-08-21 22:42:08 +03:00
Can Celik 2d5f91dd0c fix: match generated characters in prefix bindings (#3085)
refs #3079
2026-08-21 21:09:52 +03:00
7d35ebe7c4 fix: synchronize plugin pane pwd (#2985)
* fix: synchronize plugin pane pwd

refs #2984

* refactor: isolate plugin pwd platform policy

refs #2984

* docs: fix changelog conflict resolution

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-20 02:29:43 +03:00
akbashandakbash-bot 4d17957c43 fix: strip ansi sequences from tab bar status (#3003)
* fix: strip ansi sequences from tab bar status

refs #3001

* docs: clarify tab bar escape sequence scope

refs #3001

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-20 00:17:25 +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
akbashandakbash-bot 2d24950ad9 fix: isolate hidden pane render cadence (#2892)
refs #2890

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-18 04:37:11 +03:00
akbashandakbash-bot 76211757ec fix: reap ctrl-click url openers (#2906)
* fix: reap ctrl-click url openers

refs #2903

* fix: scope linux opener test import

refs #2903

* test: isolate url opener regression

refs #2903

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-18 00:11:20 +03:00
Can Celik 2b4b3849ca fix(theme): skip host palette queries under wsl (#2852)
refs #2440
2026-08-16 00:05:24 +03:00
Can Celik 9166e07b31 fix(theme): keep default active rows subtle and add navigate cursor color (#2838)
refs #2792
2026-08-15 15:36:12 +03:00
Can Celik 15539d3dec feat: make headless terminal size configurable (#2829)
refs #2828
2026-08-15 15:09:53 +03:00
Can Celik d2c317adc4 fix: keep active sidebar rows visible (#2794)
refs #2792
2026-08-14 05:01:12 +03:00
akbashandakbash-bot 9351b058f3 fix: reject prompts to blocked agents (#2790)
* fix: reject prompts to blocked agents

refs #2788

* docs: clarify agent prompt timing

refs #2788

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-14 01:22:46 +03:00
37644cabe0 fix: wait for new pane shell readiness (#2774)
* fix: wait for new pane shell readiness

refs #2773

* refactor: share agent startup bounds

refs #2773

* fix: reconcile agent names after startup timeout

refs #2773

* fix: cover agent cleanup scheduling skew

refs #2773

* fix: bound pane shell readiness retries

refs #2773

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-08-14 00:18:35 +03:00
Michael HacknerandOgulcan Celik f76d7df549 fix: keep tab and sidebar clicks when the terminal reports a stray drag (#2736)
* fix: keep tab and sidebar clicks when the terminal reports a stray drag

This works around a Ghostty bug that causes herdr tabs to be unclickable
in fullscreen mode.

Ghostty on macOS in native fullscreen emits one motion report after a
fresh press in the strip where the menu bar reveals, with the row
shifted to near the bottom of the grid. The cause is upstream: macOS
delivers one mouse event whose y is nearly a window height away from the
real pointer, and Ghostty reports it as it arrives (iTerm2 and
Terminal.app report the same clicks correctly).

Herdr treated the stray report as a real drag and lost the click two
ways: it opened a tab reorder with no drop target, making the release a
no-op, and it handed the release to the pane under the bogus
coordinates.

Now, a press on the tab bar or sidebar owns the gesture until release,
and a tab drag only starts once the pointer is over a real drop target.

refs #796

* fix: scope chrome mouse gestures to their input source

* fix: preserve chrome drag input source

* fix: preserve concurrent chrome presses

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-08-13 18:00:32 +03:00
Can Celik b7dca4bb2a fix(graphics): support high-dpi direct file frames (#2680) 2026-08-13 17:21:26 +03:00