<feed xmlns='http://www.w3.org/2005/Atom'>
<title>skiff.git/internal/rebuild/rebuild.go, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.mikeanthonywild.com/skiff.git/atom?h=master</id>
<link rel='self' href='https://git.mikeanthonywild.com/skiff.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.mikeanthonywild.com/skiff.git/'/>
<updated>2026-08-26T04:04:10Z</updated>
<entry>
<title>Split per-app dataset into OS/data layers, add skiff rebuild</title>
<updated>2026-08-26T04:04:10Z</updated>
<author>
<name>Mike Wild</name>
<email>mike@mikeanthonywild.com</email>
</author>
<published>2026-08-26T04:04:10Z</published>
<link rel='alternate' type='text/html' href='https://git.mikeanthonywild.com/skiff.git/commit/?id=025a365a23f5ed2b3df4df71cbff9689575968d9'/>
<id>urn:sha1:025a365a23f5ed2b3df4df71cbff9689575968d9</id>
<content type='text'>
Each app now gets two ZFS datasets - a disposable OS layer
(zroot/skiff/appbase/&lt;app&gt;) cloned from base, and a persistent data
layer (zroot/skiff/appdata/&lt;app&gt;) holding releases/current/env/
meta.json/data.db. `skiff rebuild --app|--all` discards and reclones
the OS layer to pick up an OS/toolchain/config-template upgrade,
guarded by the same snapshot-and-rollback safety net as deploy and
config changes; the data layer is never touched.

Also fixes stale docs (builds already run via jexec inside the jail,
not on the host; --iface already auto-aliases the jail's IP, so the
manual ifconfig step and its troubleshooting entry are gone) found
while updating the same sections for this feature.

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
