From 6b39929fb5378ade800a2bfeb922195dee0386fb Mon Sep 17 00:00:00 2001 From: Sam & Claude Date: Thu, 25 Jun 2026 11:00:25 +0200 Subject: [PATCH] skill(freebsd): sharpen thin-jail detection caveat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The per-jail 'pkg info -e FreeBSD-runtime' detection is reliable for thick jails (independent base) but may be empty or error on thin jails — a thin jail has no independent pkg-managed base; its method follows the release template it was bootstrapped from, and it's upgraded at the template level, not per-jail. Co-Authored-By: Claude Opus 4.8 --- skills/freebsd-os-upgrade/SKILL.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/skills/freebsd-os-upgrade/SKILL.md b/skills/freebsd-os-upgrade/SKILL.md index 3011e63..2e0f2d1 100644 --- a/skills/freebsd-os-upgrade/SKILL.md +++ b/skills/freebsd-os-upgrade/SKILL.md @@ -112,8 +112,13 @@ tolerated, but move them up for consistency + security). OSA uses **Bastille** - **Thin jail** — a clone/overlay of a bootstrapped release template. Bootstrap the new release once, then bring each thin jail up off it. -Each jail's base is managed the same two ways as the host — detect per jail: -`bastille cmd pkg info -e FreeBSD-runtime` (pkgbase) vs freebsd-update. +Each jail's base is managed pkgbase or freebsd-update. For a **thick** jail +(independent base) detect it directly: +`bastille cmd pkg info -e FreeBSD-runtime` (present = pkgbase). On a +**thin** jail this may be empty or error — a thin jail has no independent +pkg-managed base; its method follows the release **template** it was bootstrapped +from, and you upgrade it at the template level (re-bootstrap / re-clone or +`bastille upgrade`), not per-jail. Bastille flow (confirm against the installed Bastille version + bootstrap method):