<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slosh.git/vendor/libghostty-vt/src/apprt, branch master</title>
<subtitle>an opinionated terminal multiplexer in C with programmable pane chrome</subtitle>
<id>https://git.sl0p.foo/slosh.git/atom/vendor/libghostty-vt/src/apprt?h=master</id>
<link rel='self' href='https://git.sl0p.foo/slosh.git/atom/vendor/libghostty-vt/src/apprt?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/'/>
<updated>2026-09-02T13:45:32Z</updated>
<entry>
<title>vendor: libghostty-vt bedb6f2 -&gt; 3c1ef5b3 (2026-09-01)</title>
<updated>2026-09-02T13:45:32Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:45:32Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=311979f10132697b990a670c6c99b19c1c33d623'/>
<id>urn:sha1:311979f10132697b990a670c6c99b19c1c33d623</id>
<content type='text'>
Three weeks of upstream: 504 commits, 120 touching the terminal core
-- OSC 5522, kitty relative placements, C0 fixes, the wuffs pixel
path. Rebuilt from ghostty's own dist step (zig build dist
-Demit-lib-vt=true), zig floor unchanged at 0.16.0, and slosh's C
usage compiled unmodified.

Patch 0001 is re-implemented, not retired: upstream rewrote the area
into ImageStorage.clearScreen but kept the behaviour we patch out --
a terminal clear still reclaims transmitted-but-unplaced images,
which breaks the upload-once place-per-frame pattern the protocol's
two verbs exist for. The patch now removes just that sweep; the
placement clearing and orphan reaping stay upstream's. Their recent
'preserve data on unmatched delete' fixes the same class of bug, so
sending ours upstream remains the way to actually retire it.
</content>
</entry>
<entry>
<title>vendor: an unanchored build/ ignore was eating libghostty-vt's build tooling</title>
<updated>2026-08-24T08:01:26Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-24T08:01:26Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=75774b64ecfdbbfc6df78e34fb489ed21e401386'/>
<id>urn:sha1:75774b64ecfdbbfc6df78e34fb489ed21e401386</id>
<content type='text'>
The build/ pattern matched every directory of that name, not just our
build output at the root -- so vendor/libghostty-vt/src/build/ (the
library's own build.zig helpers) never made it into git, and make
vendor broke on fresh clones. Anchor the ignore to /build/ and restore
the 284 files it had silently dropped.
</content>
</entry>
<entry>
<title>sl0ptty: M0 — libghostty-vt vendored, one pane, compositor, diff renderer</title>
<updated>2026-08-13T20:00:03Z</updated>
<author>
<name>sl0p</name>
<email>sl0p@sl0p.foo</email>
</author>
<published>2026-08-13T20:00:03Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=2c1b855c3cf8cf8841bf25cd939e478a7f0bfac8'/>
<id>urn:sha1:2c1b855c3cf8cf8841bf25cd939e478a7f0bfac8</id>
<content type='text'>
Design contract in DESIGN.md. libghostty-vt vendored fresh from ghostty
main@bedb6f2 (zig 0.16), built to a 14MB static lib.

M0: pty spawn (no libutil), a lib-vt terminal per pane, a screen cell buffer,
a diff emitter that repaints only what changed, raw mode, SIGWINCH, and a
~120Hz frame cap that coalesces pty reads.

Also the seed of the headless harness: --headless dumps the composited screen
without a tty, so composition is testable in milliseconds.

tests/live_m0.py covers what headless cannot: raw mode, the diff emitter,
resize propagation, and the quit path. 6/6 green.
</content>
</entry>
</feed>
