From b0772798503dab63270b8c1b71e24e16ec1b37f8 Mon Sep 17 00:00:00 2001 From: dan-claude-bot Date: Sat, 18 Jul 2026 18:55:51 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20the=20upgrade=20flow=20speaks=20export?= =?UTF-8?q?=20now=20=E2=80=94=20the=20#79=20reconciliation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rebase onto merged #79, with the reconciliation both PRs' bodies promised: the installer's and the #66 refusals' "copy out by hand (a portable 'box export' is #70)" placeholders now name the real flow — down, export (one portable file per box), rm, switch, import. CI keeps main's versioned layout and uninstall drill, with the #70 round-trip step ordered before the uninstall (it needs a stack to prove state survives 'box rm'). Co-Authored-By: Claude Fable 5 --- bin/box | 8 ++++---- install.sh | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/box b/bin/box index f4af50f..0e13c94 100755 --- a/bin/box +++ b/bin/box @@ -560,8 +560,8 @@ EOF Switch the default box version — repoint the 'current' symlink (and the PATH symlink riding it) at an installed version. Refuses while ANY box exists: never change versions under a user's boxes (#66) — 'box down' what you keep, -copy out what you need via 'box shell'/'box exec' (a portable 'box export' -is #70), 'box rm' each box, then switch. The flip is asserted afterwards: +'box export' what you keep (one +portable file per box, #70), 'box rm' each box, then switch. The flip is asserted afterwards: current must resolve to the version you asked for, and the chain's 'box --version' must answer it. @@ -1343,8 +1343,8 @@ die_under_boxes() { # $1 = the act being refused, $2 = the retry command echo "box: this host has existing boxes:" while IFS= read -r n; do echo "box: · $n"; done <<<"$names" echo "box: refusing to $1 under them (#66: never change versions under a user's boxes)." - echo "box: preserve what you care about — 'box down ', copy out via 'box shell'/'box exec'" - echo "box: (a portable 'box export' is #70) — then 'box rm ' each, and re-run: $2" + echo "box: preserve what you care about — 'box down ', 'box export ' (one" + echo "box: portable file per box, #70) — then 'box rm ' each, and re-run: $2" } >&2 exit 1 } diff --git a/install.sh b/install.sh index 37fb3a8..7344ab6 100755 --- a/install.sh +++ b/install.sh @@ -268,8 +268,8 @@ else while IFS= read -r n; do warn " · $n"; done <<<"$names" warn "refusing to change the default box version under them (#66) — the default stays at $old_ver." log "box $new_ver is installed side-by-side. To switch:" - log " · preserve what you care about — 'box down ', copy out via 'box shell'/'box exec'" - log " (a portable 'box export' is #70), then 'box rm ' when you are done" + log " · preserve what you care about — 'box down ', 'box export '" + log " (one portable file per box, #70), then 'box rm ' when you are done" log " · then flip the default: box use $new_ver" else flip_current "$new_ver"