1046 Commits

Author SHA1 Message Date
Ogulcan Celik 199c27609c release: v0.7.2 v0.7.2 2026-07-07 19:19:22 +03:00
Ogulcan Celik fb5a46a03c docs: finalize release docs 2026-07-07 19:17:15 +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
kangal-bot 670a2bb064 chore: approve contributor liby 2026-07-07 12:14:15 +00:00
Ogulcan Celik 5b4450c969 docs: remove star history embed 2026-07-07 01:32:06 +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
Ogulcan Celik efceb30f0b docs: update sponsors 2026-07-06 22:59:24 +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
Ogulcan Celik eb03995128 docs: add community video section 2026-07-06 19:43:42 +03:00
Ogulcan Celik faee06764e test: synchronize multi-client resize assertion 2026-07-06 19:25:42 +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
Ogulcan Celik dd67f8591e docs: expose stats page in website nav 2026-07-06 17:20:39 +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
kangal-bot cdfb75da44 chore: approve merged contributor akbash-bot 2026-07-06 13:19:41 +00: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
kangal-bot 90debb9cef docs: update preview manifest 2026-07-06 12:26:34 +00:00
Ogulcan Celik 4dae557eef ci: use homebrew zig for preview macos builds preview-2026-07-06-4dae557eefd9 2026-07-06 15:16:04 +03:00
Ogulcan Celik d36a6ded3b feat(website): add japanese and simplified chinese docs with i18n, translation issue flow 2026-07-06 04:54:21 +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 8248767590 feat: add public stats page at herdr.dev/stats 2026-07-06 00:41:49 +03:00
Ogulcan Celik cbd9b07fac ci: accept common environment aliases in issue gate 2026-07-05 22:49:48 +03:00
Mirza Arnaut 96fc43c960 refactor(nix): replace apple-sdk wrappers with xcbuild (#995)
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-07-05 22:31:46 +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 e713949ca5 test: wait for client frame before crash assertion 2026-07-05 03:00:45 +03:00
Ogulcan Celik c51068448f test: keep windows smoke cleanup non-fatal 2026-07-05 02:42:37 +03:00
Ogulcan Celik 6972909428 test: wait for windows smoke pane output 2026-07-05 02:33:27 +03:00
Ogulcan Celik c78349f422 fix: wait for server stop socket cleanup 2026-07-05 02:17:45 +03:00
kangal-bot a4935886af chore: approve contributor TonyxSun 2026-07-04 22:23:22 +00: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
kangal-bot b78a8a5c56 chore: approve contributor ppggff 2026-07-04 13:14:10 +00: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
kangal-bot c7400a47f5 chore: approve merged contributor DevSrSouza 2026-07-03 23:49:24 +00: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