Commit Graph

1028 Commits

Author SHA1 Message Date
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 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
kangal-bot 96c485653b chore: approve contributor arunoruto 2026-07-03 22:43:51 +00:00
Ogulcan Celik b91b084dbe docs: add mastracode integration docs and website agent grid card
refs #337
2026-07-04 01:42:12 +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
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 ef67a97047 perf(linux): cache foreground process group scans
refs #936
2026-07-03 04:02:45 +03:00
Ogulcan Celik aa0768b734 fix: stop sgr mouse sequences leaking into panes
refs #939
2026-07-03 02:49:27 +03:00
Ogulcan Celik e1bbc252e2 feat: paginate plugins page with show more button 2026-07-02 22:26:53 +03:00
Ogulcan Celik 974a48172d fix: leave context menu after closing tab
refs #945
2026-07-02 22:08:13 +03:00
Ogulcan Celik d1471e6483 fix: draw host cursor on windows
refs #930
2026-07-02 21:59:06 +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 32146f19d8 fix: allow windows arm64 installer fallback
refs #897
2026-07-02 20:44:20 +03:00
Ogulcan Celik 74a771d126 fix: replace stale agent session from foreground reports
refs #943
2026-07-02 17:21:10 +03:00
Ogulcan Celik f4d216b63d fix: preserve windows backspace input
refs #907

refs #920
2026-07-02 16:22:11 +03:00
Ogulcan Celik 885dbcd19e docs: add trendshift badge 2026-07-02 14:46:07 +03:00
Ogulcan Celik cf3769feb9 feat: follow focused pane cwd for new workspaces
refs #919
2026-07-02 13:58:26 +03:00