-
pi-devbox v1.10.1 — pi 1.0.0, pi-atelier v0.13.0, and the fix v1.10.0 needed
Lint / skill-floor (push) Successful in 11sLint / doc-drift (push) Successful in 12sLint / hadolint (push) Successful in 14sLint / actionlint (push) Successful in 19sPublish Docker Image / resolve-versions (push) Successful in 12sPublish Docker Image / base-decide (push) Successful in 13sPublish Docker Image / build-base (push) Has been skippedPublish Docker Image / lint-gate (push) Successful in 25sPublish Docker Image / smoke-studio (push) Failing after 5m43sPublish Docker Image / build-variant-studio (push) Has been skippedPublish Docker Image / smoke (push) Failing after 8m21sPublish Docker Image / build-variant (push) Has been skippedPublish Docker Image / promote-base-latest (push) Has been skippedPublish Docker Image / update-description (push) Has been skippedreleased this
2026-10-02 10:36:46 +02:00 v1.10.1 is v1.10.0 plus one corrected smoke assertion. v1.10.0 was tagged and
never published: its build (run 704) failed 1 of 104 assertions, so every
publish job skipped and no image, no latest, no Hub description was written.WHY v1.10.0 FAILED — the test was stale, the image was correct.
scripts/smoke-test.sh required @mariozechner/clipboard to be installed and
require()-able at every install site. pi 0.86.0 (#9163) "Replaced the external
native clipboard dependency with bundled asynchronous macOS, Windows, and X11
helpers while preserving platform command and OSC 52 fallbacks." Measured in
the published npm tarballs, not inferred from the changelog prose:pi 0.85.1 -> declares @mariozechner/clipboard@0.3.9
pi 0.87.1 -> declares no @mariozechner/* at all
pi 1.0.0 -> declares no @mariozechner/* at allSo on a correct image the package is legitimately absent, the assertion's
if [ -z "$sites" ]; then exit 1fired, and both smoke jobs went red on the
same line: smoke 100 passed/1 failed, smoke-studio 103 passed/1 failed with
every studio-specific assertion green. The gate worked exactly as designed —
it was enforcing pi 0.85.1's dependency graph against a pi 1.0.0 image.Worth stating plainly: pi 1.0.0, pi-atelier v0.13.0 and pi-studio v0.9.61
passed 103 of 104 assertions on a pi MAJOR bump.THE FIX does not delete the guard. Its "fail when the family is absent" shape
is precisely what stops prune_foreign_natives() from deleting the native
binding instead of the surplus platform copies. It now derives its expectation
from what the image's pi DECLARES:declares + install loads -> pass
declares + no install -> FAIL (prune removed function)
does not declare + no install -> pass (bundled since 0.86.0)
does not declare + install -> FAIL (orphan nothing depends on)That re-arms automatically if a future pi re-adds the dependency; a
skip-if-absent would have unblocked the release while disarming the guard
forever. Verified as that four-quadrant truth table on EXIT CODES, not on
messages, because run() keys on status — and the final check extracted the
command string verbatim from the committed file and ran it throughsh -cthe
way run() invokes it, so the escaping was tested as shipped, not as drafted.Clipboard FUNCTION did not regress: pi bundles it now, and 0.99.x explicitly
fixed the OSC 52 fallback for containers with no display (#9688). No new base
package is needed.CONTENT (unchanged from v1.10.0 — see that CHANGELOG section):
pi 0.85.1 -> 1.0.0 (MAJOR; no Breaking Changes section)
pi-atelier v0.10.3 -> v0.13.0 (commit 34d26f1, annotated tag dd06971)
pi-studio v0.9.60 -> v0.9.61 (641aa32)
pi-obsmem pinned 731c3d4 (PR#83 Pi 0.87 fix, merged but never released)
mempalace-toolkit 2167a1b -> 975ab92 (dormant_unless suppression)
base packages + sqlite3, bc, dc, bsdextrautils
entrypoint-user.sh sets core.sshCommand (stops the recurring git push failure)
TUI fullscreen is now pi's default; revert documented three waysWHY THE NUMBER MOVED instead of re-pointing v1.10.0: CI had already consumed
that tag. A version that failed its build should stay failed and readable
rather than be overwritten with different bytes.Base layer does not rebuild — no base input changed since
12f99c4, so
base-decide cache-hits base-dad0f365ff24 that run 704 already pushed.Gates: doc-drift 23 OK / 0 DRIFT / 0 SKIP / 0 FAIL; base-hash, workflow-shell,
skill-floor, lint-shell all rc=0.Downloads