aboutsummaryrefslogtreecommitdiff
path: root/src/ghostty
AgeCommit message (Collapse)Author
2026-09-27refactor: extract libghostty-vt binding into ghostty-vt workspace crate (#4661)Can Celik
* refactor: extract libghostty-vt binding into ghostty-vt workspace crate * fix: build libghostty-vt into each build's out dir
2026-09-24feat!: replace the custom graphics api with optimized native kitty rendering ↵Can Celik
(#4561) * feat!: replace the custom graphics api with optimized native kitty rendering * fix: enable safe kitty optimizations automatically --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-19feat: add configurable pane screen and scrollback clearing (#4383)Can Celik
2026-09-13feat: add ctrl-hover highlighting and fix wrapped links (#4074)Can Celik
refs #1282
2026-09-10chore: upgrade libghostty and preserve terminal behavior (#3906)Can Celik
2026-09-06feat: manage multiple ssh machines from one client (#3670)Can Celik
2026-09-05fix: preserve pixel mouse after sgr reassertion (#3637)akbash
refs #3295 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-03perf: compress idle terminal scrollback (#3556)Can Celik
2026-09-02fix: include short viewport output in recent reads (#3448)akbash
refs #3444 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-19fix(perf): eliminate redundant terminal wake work (#2962)Can Celik
* fix(perf): eliminate redundant terminal wake work * fix(perf): harden release benchmark gate * test(perf): strengthen performance guardrails
2026-08-13fix(graphics): support high-dpi direct file frames (#2680)Can Celik
2026-08-09feat(graphics): add direct pane frame streaming (#2523)Can Celik
* feat(graphics): add direct pane frame streaming * feat(graphics): expose pane visibility * test(graphics): preserve legacy terminal image output * fix(graphics): harden streaming lifecycle * fix(input): preserve mouse releases outside panes
2026-08-08fix: forward pane terminal bells (#2498)akbash
refs #2453 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-07fix: avoid redundant Windows recent-history snapshots (#2474)JJ Liebig
refs #962 Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-06fix: render OSC 4 palette overrides instead of forwarding the index (#2162)Mo
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-03fix: propagate host color scheme to pane apps (#2214)Can Celik
refs #714
2026-07-26fix: ignore empty clipboard writesOgulcan Celik
refs #1893
2026-07-24fix: answer XTWINOPS size queries in panesOgulcan Celik
refs #835
2026-07-24fix: inherit host palette in pane queries (#1759)akbash
refs #1752 Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-22refactor: replace pane mouse and clipboard internalsOgulcan Celik
replaces contributions from othavi0
2026-07-17perf: adopt libghostty integration improvementsOgulcan Celik
refs #276
2026-07-16chore: update vendored libghostty-vtOgulcan Celik
refs #276
2026-07-10feat: add copy mode search and tmux word motionsOgulcan Celik
refs #1230
2026-07-04fix: kitty graphics streams freeze on partial updates and leak host images ↵Gabriel
(#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-04fix: restore windows recent pane readsOgulcan Celik
refs #962
2026-06-30fix: render ansi undercurl stylesOgulcan Celik
refs #895
2026-06-25fix: answer osc 12 cursor color queriesOgulcan Celik
refs #806
2026-06-22fix: skip wide spacer cells in pane readsOgulcan Celik
refs #698
2026-06-22fix: enable kitty file mediaOgulcan Celik
refs #732
2026-06-05fix: enable grapheme clusters in panesOgulcan Celik
refs #243
2026-06-04fix: avoid ghostty utf8 grapheme buffer crashOgulcan Celik
refs #453
2026-06-03fix: forward any-motion pane mouse eventsOgulcan Celik
refs #419
2026-06-02test: speed up ghostty scrollback limit testOgulcan Celik
2026-06-02perf: retain terminal render updatesOgulcan Celik
2026-06-01chore: update libghostty vendorOgulcan Celik
refs #276
2026-06-01fix: answer osc 4 palette queriesOgulcan Celik
refs #387
2026-05-28fix: preserve live handoff terminal stateOgulcan Celik
2026-05-20fix: support kitty unicode placeholdersOgulcan Celik
refs #136
2026-05-15fix: forward pane cursor shapeOgulcan Celik
fixes #116
2026-05-15fix: refresh and reuse kitty graphics placementsOgulcan Celik
2026-05-13fix: gate kitty graphics behind configOgulcan Celik
2026-05-13feat: support kitty graphics in attached clientsOgulcan Celik
2026-05-13feat: render kitty graphics in local panesOgulcan Celik
2026-05-11fix: preserve indexed terminal colorsOgulcan Celik
fixes #74
2026-05-09chore: enable clippy lintingOgulcan Celik
2026-05-09feat: add ansi pane read formatOgulcan Celik
2026-05-07fix: preserve osc8 hyperlinks in client renderingOgulcan Celik
fixes #73
2026-05-07build: update libghostty-vt vendorOgulcan Celik
vendor ghostty 063ac3e and remove the musl libc++ link workaround. expose the new selection formatter and hyperlink uri apis for follow-up rendering work. add manual artifact validation for static linux builds.
2026-04-25test: add libghostty upgrade contract coverageOgulcan Celik
2026-04-21perf: reduce headless server render overheadOgulcan Celik