Commit Graph

62 Commits

Author SHA1 Message Date
Ogulcan Celik 8d2af4e046 perf: adopt libghostty integration improvements
refs #276
2026-07-17 03:26:33 +03:00
Ogulcan Celik 4a3302d19a chore: update vendored libghostty-vt
refs #276
2026-07-16 23:29:28 +03:00
Ogulcan Celik 5cfe5e5e73 feat: add configurable sidebar metadata tokens 2026-07-13 03:30:13 +03:00
Ogulcan Celik c8850a2e3e feat: add copy mode search and tmux word motions
refs #1230
2026-07-10 04:22:10 +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
Ogulcan Celik 6ea68f9af2 fix: forward page keys to primary-screen pagers
refs #953
2026-07-03 21:50:34 +03:00
Ogulcan Celik f4d216b63d fix: preserve windows backspace input
refs #907

refs #920
2026-07-02 16:22:11 +03:00
Ogulcan Celik 2c422e60f1 feat: inject powershell prompt shell integration for cwd reporting on windows
refs #919
2026-07-02 13:58:25 +03:00
Ogulcan Celik b7015f17a4 fix: render ansi undercurl styles
refs #895
2026-06-30 15:55:13 +03:00
Ogulcan Celik 8b1d77acf6 fix: keep powershell panes alive after agent ctrl-c
refs #860
2026-06-30 00:19:36 +03:00
Ogulcan Celik 292a98a91e fix: answer osc 12 cursor color queries
refs #806
2026-06-25 22:08:11 +03:00
Ogulcan Celik 520d0b8b9c fix: prevent release key fallback from doubling input
refs #769
2026-06-24 02:47:07 +03:00
Ogulcan Celik 4846cb1324 fix: skip wide spacer cells in pane reads
refs #698
2026-06-22 14:30:16 +03:00
Ogulcan Celik 36b4001f45 feat: sync theme with host appearance
refs #675
2026-06-18 02:53:31 +03:00
Ogulcan Celik 7ba4bfe90e fix: stabilize windows pane cursor rendering
refs #556
2026-06-12 03:37:03 +03:00
Ogulcan Celik 0efd8eaad1 fix: remove pty taint from agent detection 2026-06-10 21:00:56 +03:00
Ogulcan Celik 82468a0e03 feat: add manifest-based detection engine 2026-06-10 19:23:13 +03:00
Ogulcan Celik 36a1b7f864 feat: distribute agent detection manifests 2026-06-10 15:33:45 +03:00
Ogulcan Celik 120001b591 fix: keep non-claude pty working transitions screenless 2026-06-09 04:26:19 +03:00
Ogulcan Celik 55f5a3b5d4 refactor: split agent detection policy from pane runtime 2026-06-09 04:26:19 +03:00
Ogulcan Celik a7cd7806f2 fix: reduce scroll CPU in headless server
refs #512
2026-06-08 19:49:06 +03:00
Ogulcan Celik fb56e64537 fix: improve windows pane behavior 2026-06-08 01:36:51 +03:00
Ogulcan Celik 3f7236f817 fix: drop empty pty mouse writes
refs #496
2026-06-07 17:01:27 +03:00
Ogulcan Celik 52e57507e1 ci: tighten windows branch validation 2026-06-07 16:29:45 +03:00
Ogulcan Celik 3c2b46d24a feat: add native windows beta support 2026-06-07 16:29:44 +03:00
Ogulcan Celik acfbb7c85a fix: enable grapheme clusters in panes
refs #243
2026-06-05 00:42:14 +03:00
Ogulcan Celik 670656b26f fix: forward resize terminal responses
refs #471
2026-06-04 22:43:06 +03:00
Ogulcan Celik 3cbe4ec793 fix: avoid ghostty utf8 grapheme buffer crash
refs #453
2026-06-04 00:56:07 +03:00
Ogulcan Celik b695d7cbc0 fix: forward any-motion pane mouse events
refs #419
2026-06-03 02:03:44 +03:00
Ogulcan Celik 6b61ab6a3a fix: answer xtgettcap queries in panes
refs #393
2026-06-02 03:32:40 +03:00
Ogulcan Celik cc527d45fe perf: retain terminal render updates 2026-06-02 02:31:12 +03:00
Ogulcan Celik 5bd21b7ed4 chore: update libghostty vendor
refs #276
2026-06-01 23:05:51 +03:00
Ogulcan Celik 53e4b27165 fix: answer osc 4 palette queries
refs #387
2026-06-01 18:17:11 +03:00
Ogulcan Celik 67e48c0cc9 fix: route terminal replies outside pane input
refs #306
2026-05-28 04:50:28 +03:00
Ogulcan Celik bf9cc20124 fix: preserve live handoff terminal state 2026-05-28 04:12:53 +03:00
zhugehyuk 43c6ca3a5d feat: persist pane history across restarts (#248)
refs #217

Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-24 21:28:33 +03:00
Ogulcan Celik 1b9a165f9e fix: answer pane default color queries
refs #253
2026-05-22 19:37:34 +03:00
Ogulcan Celik 659badf106 fix: avoid agent detection from runtime arguments
refs #238
2026-05-21 22:17:37 +03:00
Ogulcan Celik 38a3c3c5cd fix: support kitty unicode placeholders
refs #136
2026-05-20 03:47:29 +03:00
Ogulcan Celik d616bcd6b8 fix: preserve modified enter input
refs #168
2026-05-19 14:24:30 +03:00
kangal-bot fa0e380e62 fix: preserve alt backspace in panes (#165)
refs #155

Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-18 20:13:19 +03:00
Ogulcan Celik 3ecacfddae feat: add direct terminal attach stream 2026-05-17 01:41:17 +03:00
Ogulcan Celik a36da363f1 refactor: extract terminal state and runtime from panes 2026-05-17 01:41:16 +03:00
Ogulcan Celik 72770305d3 feat: add hook-owned custom agent status labels 2026-05-16 02:26:14 +03:00
Ogulcan Celik 73dba97521 fix: forward pane cursor shape
fixes #116
2026-05-15 20:53:55 +03:00
Ogulcan Celik 4600309051 feat: support kitty graphics in attached clients 2026-05-13 14:15:26 +03:00
Ogulcan Celik fb9aff5408 feat: render kitty graphics in local panes 2026-05-13 14:15:26 +03:00
Ogulcan Celik fe693f613a feat: add optional pane border labels 2026-05-11 23:34:20 +03:00
Ogulcan Celik 55cdf2e8f8 fix: stabilize integration agent state reports 2026-05-11 16:13:17 +03:00