<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/kitty_graphics.rs, branch tmuxrdr</title>
<subtitle>herdr but with less disrespect for the tmux community
</subtitle>
<id>https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr</id>
<link rel='self' href='https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/'/>
<updated>2026-09-27T18:05:25+00:00</updated>
<entry>
<title>fix: keep offscreen kitty images loaded instead of resending them on scroll (#4686)</title>
<updated>2026-09-27T18:05:25+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-27T18:05:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=25aaa0b7e31b0b271ce72a69c9dd272d7ee83376'/>
<id>urn:sha1:25aaa0b7e31b0b271ce72a69c9dd272d7ee83376</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: encode kitty placements in a single pass (#4657)</title>
<updated>2026-09-26T17:19:10+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-26T17:19:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=ccd51946fd3b6da307259460f09755ef07be69f6'/>
<id>urn:sha1:ccd51946fd3b6da307259460f09755ef07be69f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat!: replace the custom graphics api with optimized native kitty rendering (#4561)</title>
<updated>2026-09-24T17:59:48+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-24T17:59:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=c411883ec639c9893ed9c33021c890485e91727b'/>
<id>urn:sha1:c411883ec639c9893ed9c33021c890485e91727b</id>
<content type='text'>
* feat!: replace the custom graphics api with optimized native kitty rendering

* fix: enable safe kitty optimizations automatically

---------

Co-authored-by: JJ Liebig &lt;jonathan.liebig@gmail.com&gt;</content>
</entry>
<entry>
<title>fix: keep direct graphics bound to its client (#3549)</title>
<updated>2026-09-02T19:45:51+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-02T19:45:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=e22cba35ef7b405758097a5f9436aae8fb4caaf0'/>
<id>urn:sha1:e22cba35ef7b405758097a5f9436aae8fb4caaf0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: support independent multi-client tab views (#3526)</title>
<updated>2026-09-02T11:24:33+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-02T11:24:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=6c0bb273d5d5405a00985621b17e36f8b4d64609'/>
<id>urn:sha1:6c0bb273d5d5405a00985621b17e36f8b4d64609</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: render the shell in the client (#3487)</title>
<updated>2026-09-01T12:48:22+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-01T12:48:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=207be3c771d281baae6e5fa0fb74be9a056e97a2'/>
<id>urn:sha1:207be3c771d281baae6e5fa0fb74be9a056e97a2</id>
<content type='text'>
* feat: add opt-in client-rendered shell

* feat: add client-owned shell mouse controls

* feat: complete client-owned shell chrome

* feat: add client-owned shell settings and notifications

* feat: run client shell custom commands

* feat: render popup terminals in client shell

* feat: add client-owned scrollback and copy mode

* fix: preserve client worktree trust defaults

* feat: render startup diagnostics in client shell

* feat: render onboarding in client shell

* feat: render product announcements in client shell

* feat: render release notes in client shell

* feat: render mobile switcher in client shell

* feat: render kitty graphics in client shell

* fix: preserve client shell lifecycle coherence

* refactor: route client shell commands through endpoint connections

* refactor: make the client-rendered shell the default

* refactor: remove monolithic launch mode

* refactor: complete client-rendered shell cutover

* perf: retain client pane surface updates

* perf: scale retained pane surface updates

* perf: remove remote pane input latency

* test: make client shell checks platform-independent

* fix: prevent client timer starvation

* test: fix client shell platform gates

* test: accept retained surfaces in cross-area checks

* test: make client mode assertions platform-neutral

* fix: badge only outdated integrations</content>
</entry>
<entry>
<title>fix(graphics): batch kitty image row lifecycle (#3166)</title>
<updated>2026-08-24T01:49:44+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-24T01:49:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7d56b4c51b046a5d477439bcea4512339f8841aa'/>
<id>urn:sha1:7d56b4c51b046a5d477439bcea4512339f8841aa</id>
<content type='text'>
* fix(graphics): coalesce terminal kitty placements

A Unicode-placeholder image arrives as one placement per viewport row it
covers, and after 624dfd47 the budgeted encoder emitted one placement per
frame, so every redraw painted images one row per frame.

* fix(graphics): coalesce only pure kitty re-displays

Keep pixel uploads and superseded-image deletes in a transaction of
their own: a placement joins the coalesced transaction only when its
image is uploaded and its source already maps to that image, and
nothing joins after an upload or a delete.

* fix(graphics): batch kitty image row lifecycle

---------

Co-authored-by: kataokatsuki &lt;kataokatsuki@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>fix(graphics): isolate oversized kitty images (#3035)</title>
<updated>2026-08-20T20:09:42+00:00</updated>
<author>
<name>akbash</name>
<email>akbash@herdr.dev</email>
</author>
<published>2026-08-20T20:09:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=624dfd4796559042ec13ccf4d4b54374902ab81d'/>
<id>urn:sha1:624dfd4796559042ec13ccf4d4b54374902ab81d</id>
<content type='text'>
* fix(graphics): isolate oversized kitty images

refs #3033

* fix(graphics): budget pane image cleanup

refs #3033

---------

Co-authored-by: akbash-bot &lt;300245827+akbash-bot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>fix(graphics): support high-dpi direct file frames (#2680)</title>
<updated>2026-08-13T14:21:26+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-13T14:21:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=b7dca4bb2a2cf488407ae051b40782f03fcabc62'/>
<id>urn:sha1:b7dca4bb2a2cf488407ae051b40782f03fcabc62</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(graphics): add direct pane frame streaming (#2523)</title>
<updated>2026-08-08T23:04:39+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-08T23:04:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=1777e9bba32b953ed1ad203b4a16d01105539000'/>
<id>urn:sha1:1777e9bba32b953ed1ad203b4a16d01105539000</id>
<content type='text'>
* 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</content>
</entry>
</feed>
