<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slosh.git/contrib, branch v0.1.5</title>
<subtitle>an opinionated terminal multiplexer in C with programmable pane chrome</subtitle>
<id>https://git.sl0p.foo/slosh.git/atom/contrib?h=v0.1.5</id>
<link rel='self' href='https://git.sl0p.foo/slosh.git/atom/contrib?h=v0.1.5'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/'/>
<updated>2026-09-02T14:22:03Z</updated>
<entry>
<title>slosh --install-terminfo: the binary carries its own terminfo entry</title>
<updated>2026-09-02T14:22:03Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T14:22:03Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=f9986df0da09cc692e168e33ef9ccfab5b9d2faf'/>
<id>urn:sha1:f9986df0da09cc692e168e33ef9ccfab5b9d2faf</id>
<content type='text'>
The xterm-256color fallback works everywhere; the real entry is
better, and a tarball user on a bare box had no easy way to get it.
The entry is generated from the vendored tree (contrib/terminfo, so
it describes the terminal core we actually ship), compiled with tic,
embedded as bytes, and written to ~/.terminfo under every name it
answers to, letter and Darwin-hashed layouts both. No root, no
package, no conflict with a ghostty installed later. Proven end to
end in a mount namespace: bare box falls back, installs, and the
next pane says xterm-ghostty.
</content>
</entry>
<entry>
<title>version: never answer for somebody else's git; arch: 0.1.4-3</title>
<updated>2026-09-02T14:10:48Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T14:10:48Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=9cc6ff911ac794c5831407358fddb7b7c9c24ef6'/>
<id>urn:sha1:9cc6ff911ac794c5831407358fddb7b7c9c24ef6</id>
<content type='text'>
The v0.1.4 arch packages introduced themselves as 0.1.4-dirty: the
tag's tarball has no .git, makepkg builds it inside the release
box's repository, and git describe walked up and answered for the
outer tree -- mid-release, when the paperwork is honestly dirty.
Found at 0.1.2, diagnosed, and then left unfixed by yours truly.

Two fences now. contrib/version only trusts a .git whose toplevel is
its own root (helps every future tarball). The PKGBUILD exports
GIT_CEILING_DIRECTORIES for build and package (helps regardless of
which contrib/version the pinned tarball carries, which is why the
first rebuild still said -dirty: the fix was outside the tarball).
pkgrel=3; both architectures rebuilt, verified 'slosh 0.1.4', and
republished.
</content>
</entry>
<entry>
<title>ship: paperwork before the website, so the demo is not stamped -dirty</title>
<updated>2026-09-02T13:58:12Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:58:12Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=60d622062aefa1258e348c4085ab33e0e7e2ae48'/>
<id>urn:sha1:60d622062aefa1258e348c4085ab33e0e7e2ae48</id>
<content type='text'>
Steps 6 and 7 rewrite the formula and PKGBUILD; building the site
from the tag checkout with those uncommitted made git describe say
-dirty, and v0.1.4's demo introduced itself as 0.1.4-dirty+webdemo.
Commit the pins first, build the site from a clean tag second.
</content>
</entry>
<entry>
<title>release: v0.1.4 paperwork -- formula and PKGBUILD pinned</title>
<updated>2026-09-02T13:57:00Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:57:00Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=0280bc0635cb02ff8a96be7f5d730fee9161c307'/>
<id>urn:sha1:0280bc0635cb02ff8a96be7f5d730fee9161c307</id>
<content type='text'>
</content>
</entry>
<entry>
<title>contrib/vendor-check: watching upstream is one command now</title>
<updated>2026-09-02T13:38:38Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:38:38Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=8c1553801a9812bf4e8541872eb720470ce89a0b'/>
<id>urn:sha1:8c1553801a9812bf4e8541872eb720470ce89a0b</id>
<content type='text'>
Vendoring by pinned commit stays (D12) -- the package channels build
from source archives where submodules are empty, the arch build is
offline-clean because the core is in the tarball, and upstream has no
stable release channel to depend on anyway. What was missing is the
watching: vendor-check reads the pin from vendor.json, asks the
GitHub API what happened since, and lists the commits touching the
terminal core. First run found 120 relevant commits in three weeks,
including upstream fixing the same class of kitty-graphics bug our
patch 0001 fixes -- which is the argument for finally sending it.
</content>
</entry>
<entry>
<title>arch-repo: find zig on PATH itself; release: v0.1.3 paperwork</title>
<updated>2026-09-02T13:26:52Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:26:52Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=5dfb761d3060bff5be8623272fdaf0eeb27706ca'/>
<id>urn:sha1:5dfb761d3060bff5be8623272fdaf0eeb27706ca</id>
<content type='text'>
ship calls arch-repo without the ZIG= prefix the by-hand runs had,
so the leg died on makepkg's dependency check mid-release. arch-repo
now derives ZIG from PATH when pacman has no zig, and exports it.
The formula and PKGBUILD pins ride along: ship's steps 6 and 7 had
already written them when the leg failed, and its preflight rightly
refuses a dirty tree.
</content>
</entry>
<entry>
<title>gen-docs: the page title separator is a middle dot</title>
<updated>2026-09-02T13:17:19Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:17:19Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=e468637d7d01a3a3bcfff24b0ce641e1fa8997df'/>
<id>urn:sha1:e468637d7d01a3a3bcfff24b0ce641e1fa8997df</id>
<content type='text'>
</content>
</entry>
<entry>
<title>themes: pin the attach tag to each palette's muted chrome tone</title>
<updated>2026-09-02T13:11:59Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:11:59Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=736f259bfc0f01b43b59676e4de31ce33d03ed60'/>
<id>urn:sha1:736f259bfc0f01b43b59676e4de31ce33d03ed60</id>
<content type='text'>
Every shipped theme names attach_fg explicitly, reusing its own
minbar colour -- the default gray suits the dark themes and nothing
else, and paper's light ground proved it.
</content>
</entry>
<entry>
<title>webdemo: version from contrib/version, published by ship</title>
<updated>2026-09-02T12:47:30Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T12:47:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=3578eefea5b53bce2c1dbbc7f104f3cf85c8aa5b'/>
<id>urn:sha1:3578eefea5b53bce2c1dbbc7f104f3cf85c8aa5b</id>
<content type='text'>
The demo's Makefile said VERSION := 0.1.0 by hand, so the in-browser
slosh announced a release two tags old no matter what was built into
it. It now derives from contrib/version like every other artifact,
suffixed +webdemo so the guest build names itself. And ship gains a
website step: the site (demo included) is rebuilt from the tag
checkout and published as part of a release, so the demo cannot fall
behind again.
</content>
</entry>
<entry>
<title>shaders: remove the .so plugin loader</title>
<updated>2026-09-02T12:43:09Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T12:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=18d1aef0f9bf4620135fd9f77f26683e6f2f8c00'/>
<id>urn:sha1:18d1aef0f9bf4620135fd9f77f26683e6f2f8c00</id>
<content type='text'>
The static musl release builds cannot dlopen -- musl compiles it out
-- so loadable shader plugins were a feature most shipped binaries
could not use. Nothing we ship used it either: every shader in
contrib/shaders is an expression. Gone: the dlopen/glob loader in
shader.c, shader_dir in the config, the plugin ABI table and entry
macro, the Windows dl*/glob shims that existed only for it, the
contrib/shader-plugin skeleton, its tests, and every doc mention.
shader_abi.h stays as the shader model (cell_t, shade_ctx_t,
shader_t) with a note about what it used to be.
</content>
</entry>
</feed>
