Two defects surfaced during the v1.4 release gate (2026-07-12):
-
Provisioning aborts on untracked files. /srv/code/pithead-e2e had an untracked tests/integration/benchmarks/bench-verify-egress.sh left by an earlier bench run; git checkout develop refused ("would be overwritten") and the run died in preflight. The e2e checkout is DEDICATED and disposable — provisioning should git checkout -f + git clean -fdx (excluding results//backups/ if worth keeping) instead of assuming a pristine tree.
-
Restore assumes CANONICAL_DIR runs the live stack. The restore path runs pithead apply/up from CANONICAL_DIR (default /srv/code/pithead, the source checkout on main). On gouda the LIVE stack runs from the per-version bundle dir (/srv/code/pithead-v1.3.1); the restore therefore had the source checkout take over the compose project with locally-built :dev images — tari crash-looped and the restore itself exited non-zero, leaving the box needing a hand-run pithead upgrade from the bundle dir. Workaround that works today: pass CANONICAL_DIR=/srv/code/pithead-vX.Y.Z. Fix: either derive the restore dir from the running container's com.docker.compose.project.working_dir label, or refuse to start when CANONICAL_DIR's compose project differs from the live one.
Neither blocked v1.4 (retried with the workaround) but both burn a release-gate cycle each time.
Two defects surfaced during the v1.4 release gate (2026-07-12):
Provisioning aborts on untracked files.
/srv/code/pithead-e2ehad an untrackedtests/integration/benchmarks/bench-verify-egress.shleft by an earlier bench run;git checkout developrefused ("would be overwritten") and the run died in preflight. The e2e checkout is DEDICATED and disposable — provisioning shouldgit checkout -f+git clean -fdx(excludingresults//backups/if worth keeping) instead of assuming a pristine tree.Restore assumes CANONICAL_DIR runs the live stack. The restore path runs
pithead apply/upfromCANONICAL_DIR(default/srv/code/pithead, the source checkout on main). On gouda the LIVE stack runs from the per-version bundle dir (/srv/code/pithead-v1.3.1); the restore therefore had the source checkout take over the compose project with locally-built:devimages — tari crash-looped and the restore itself exited non-zero, leaving the box needing a hand-runpithead upgradefrom the bundle dir. Workaround that works today: passCANONICAL_DIR=/srv/code/pithead-vX.Y.Z. Fix: either derive the restore dir from the running container'scom.docker.compose.project.working_dirlabel, or refuse to start when CANONICAL_DIR's compose project differs from the live one.Neither blocked v1.4 (retried with the workaround) but both burn a release-gate cycle each time.