Commit Graph

882 Commits

Author SHA1 Message Date
Ogulcan Celik 3e8f9df14e fix: improve config diagnostic delivery 2026-07-10 17:28:31 +03:00
Ogulcan Celik 66be0b655f fix: stop windows installer from rewriting config
refs #1162
2026-07-10 16:09:17 +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
Ogulcan Celik 9c45342766 fix: preserve explicit session sockets during live handoff
refs #1180

reported-by: dvic

based-on: https://github.com/dvic/herdr/pull/3
2026-07-09 16:32:26 +03:00
Ogulcan Celik 36b2e2f546 fix: use drawn cursor by default in wsl
refs #930
2026-07-09 03:35:35 +03:00
Dillon Mulroy adbaae68da fix: reanchor pi status after session replacement (#1189)
* fix: reanchor pi status after session replacement

refs #943

* fix: guard active pi sessions from nested startup

refs #943

* fix: serialize pi session replacement reports

refs #943
2026-07-09 01:55:14 +03:00
Ogulcan Celik b03f033d09 fix: detect active amp turns
refs #1208
2026-07-09 01:41:56 +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 c3df61b564 fix: make remote helper installs shell-portable
refs #1203
2026-07-08 23:12:29 +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 2b99ced89a fix: keep cursor hide inside sync output
refs #967
2026-07-07 21:20:24 +03:00
Ogulcan Celik e4a7095c93 fix: guard windows process tree cycles
refs #1083
2026-07-07 21:20:06 +03:00
Ogulcan Celik 0a684b4130 fix: clear done status on repeated pane focus 2026-07-07 21:13:34 +03:00
Bryan Lee 1e1d06328c fix: preserve navigator search commands (#1140)
Navigator search treated Escape as either modal close or query reset,
which left no way to return to command mode while keeping the filtered
row set. `/` also rebuilt search mode by clearing the query, so a user
could not resume editing the same filter after backing out.

Make Escape leave search focus only, reserve command-mode Escape for
closing the picker, and let `/` refocus the existing query. The footer
now lists the shortcuts for the active mode so command keys are not
advertised while text input owns them.

refs #1115
2026-07-07 20:54:42 +03:00
Ogulcan Celik d190c1f55e fix: send shifted punctuation as text in kitty mode
refs #1105
2026-07-07 16:25:36 +03:00
akbash 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
Ogulcan Celik b425260f9d perf: move session autosaves off main loop 2026-07-07 15:35:20 +03:00
Ogulcan Celik b017d21290 fix: stop windows server over named pipes
refs #1113
2026-07-07 15:35:20 +03:00
Lane 7a85249617 fix: support esc
interrupt for github copilot (#1120)

* fix: support esc interrupt for github copilot

Github Copilot CLI version v1.0.69-2 introduces the "esc interrupt" prompt.
Update the Github Copilot agent detection manifest to match this prompt and correctly report the agent as working.
Add test cases in tests.rs to verify state detection.
Synchronize the website's copy of the manifest.

refs #1119

* test: clean up github copilot detection rules and tests

Clean up formatting and comments for the github copilot detection rule and tests.

refs #1119

* test: remove copilot manifest literal test

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-07 15:28:50 +03:00
Ogulcan Celik 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
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
Ogulcan Celik 56edcbcba8 feat: expose pane scroll state 2026-07-06 23:06:00 +03:00
akbash ed31632ebf fix: bridge remote image file drops (#1085)
refs #828

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-06 19:51:28 +03:00
akbash d9230f517a fix: clarify remote ssh auth failures (#1084)
refs #1034

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-06 18:21:31 +03:00
akbash 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
akbash c17c419c10 fix: write pane copies to native windows clipboard (#1082)
refs #1067

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-06 17:13:36 +03:00
akbash 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
Wuyue (Tony) Sun b04c6496a8 fix: detect grok build working and blocked states from current ui chrome (#1055)
* fix: detect grok build working and blocked states from current ui chrome

refs #1017

* fix: sync grok detection website manifest

refs #1017

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-06 01:36:49 +03:00
Ogulcan Celik b1d1a07b1c fix: retry pi state socket reports
refs #1049
2026-07-05 22:21:30 +03:00
Ogulcan Celik 220b99a9fa fix: support custom command keybindings on windows
refs #1041
2026-07-05 20:19:13 +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 c78349f422 fix: wait for server stop socket cleanup 2026-07-05 02:17:45 +03:00
Ogulcan Celik 04682e57e6 refactor: route headless deferred creates through runtime helpers 2026-07-04 16:51:10 +03:00
Ogulcan Celik 1c606d4ff3 refactor: route cli pane placement through runtime adapters 2026-07-04 16:51:10 +03:00
Ogulcan Celik ce6c0dc842 refactor: route cli workspace tab worktree through runtime adapters 2026-07-04 16:51:10 +03:00
Ogulcan Celik 89fe8975db refactor: route tui runtime mutations through typed adapters 2026-07-04 16:51:10 +03:00
Ogulcan Celik 5d9212a55a feat: expose session snapshot through cli 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 c97e098627 refactor: route worktree tui actions through runtime wrappers 2026-07-04 14:44:52 +03:00
Ogulcan Celik edd08e895f refactor: route pane layout tui actions through runtime wrappers 2026-07-04 03:15:11 +03:00
Ogulcan Celik 797981c7e9 fix: allow foreground agent session takeover
refs #943
2026-07-04 02:52:34 +03:00
Gabriel 4eceb75d8a fix: kitty graphics streams freeze on partial updates and leak host images (#948)
* fix: request a render on kitty graphics writes

pty output containing a kitty graphics sequence only scheduled the
deferred settle render. that render's wake-up notifies the render loop
only when the dirty flag was not already set, so under a continuous
stream of image updates the notify can be dropped and the pane keeps
showing an old frame until something else forces a full render.

request an immediate render like any other output. the dirty flag and
the minimum render interval still coalesce chunked writes, and the
settle render stays as a backstop.

refs #947

* fix: fingerprint kitty images exactly across retransmissions

the image fingerprint hashed only the first, middle, and last 4096
bytes of pixel data. a program that streams updates by retransmitting
one image id keeps the length and dimensions constant, so a frame whose
changed pixels all fall outside those three windows gets the same
fingerprint as the frame before it. the encoder then treats the image
as already uploaded, emits no graphics bytes, and the frame is dropped
as identical to the previous render. the pane stays stuck on the last
uploaded image until a resize resets the graphics surface.

hash the full payload instead. to keep that off the render hot path,
cache the fingerprint per image id and recompute it only when the
image's transmit time changes. libghostty-vt already refreshes the
transmit time on every transmission; vendor patch 0002 exposes it
through a new GHOSTTY_KITTY_IMAGE_DATA_TRANSMIT_TIME_NS accessor. a
static image costs one map lookup per render and a streaming image one
hash per transmitted frame.

refs #947

* fix: delete superseded host kitty images

host image ids derive from image content, so a pane image whose pixels
change maps to a new host id on every update. nothing deleted the host
image it replaced, and a streaming pane left one full-size image behind
in the host terminal per changed frame until the graphics surface was
reset. track which host image backs each pane image and delete the
replaced one once no source references it.

refs #947

* fix: prune stale kitty graphics source entries

a source entry whose pane closed or whose placement disappeared stayed
in the cache forever. through the shared-reference check it could keep
an old host image alive that nothing visible used anymore, and the
entries themselves accumulated without bound. prune sources against
the visible set at the start of every encode pass.

refs #947

* docs: link issue and upstream discussion for vendor patch 0002

the transmit time accessor now has a removal path: the ghostty
discussion proposing it upstream is linked in the patch ledger.

refs #947

---------

Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-07-04 02:49:15 +03:00
Ogulcan Celik 5abdae1ac7 fix: restore windows recent pane reads
refs #962
2026-07-04 02:15:23 +03:00
Ward Peeters d0e333451b feat: add mastracode integration (#788)
* feat: add mastracode integration

refs #337

Co-authored-by: Mastra Code (openai/gpt-5.5) <noreply@mastra.ai>
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-04 01:29:42 +03:00
Dillon Mulroy d5521e3d25 fix: preserve pi and omp working status across reloads (#984) 2026-07-03 22:47:31 +03:00
Ogulcan Celik 6f148588dd fix: scope empty image paste bridge to remote
refs #986
2026-07-03 22:19:47 +03:00