build: track Pi @latest + record resolved pi_version in manifest #126

Merged
clawdie merged 1 commit from pi-latest-tracking into main 2026-06-24 02:01:05 +02:00
Owner

Why

The build hard-pinned @earendil-works/pi-coding-agent@0.78.0 (packages/npm-globals.txt) while pi upgrade on hosts had already moved to 0.80.2 — so images shipped a stale Pi and there was no single switch to track the newest release.

What (Option B — auto-track latest + record provenance)

  • npm-globals.txt: Pi line → @earendil-works/pi-coding-agent@latest. Every image now bundles the newest Pi. Other globals (bw) stay version-pinned.
  • build.sh: record the version that actually got fetched in build-manifest.json as pi_version, derived from the bundled tarball name (earendil-works-pi-coding-agent-<version>.tgz). Runs after fetch+install, so the tarball is present. This keeps the floating spec traceable per artifact.
  • fetch-npm-globals.sh: echoes the resolved tarball (→ earendil-works-pi-coding-agent-0.80.2.tgz) so the build log shows exactly which version a dist-tag resolved to.

Tradeoff (as chosen)

@latest means builds can differ release-to-release and a build could pull an unvetted Pi — accepted in exchange for always-current. Provenance is preserved via pi_version in the manifest. Pin a concrete version in npm-globals.txt again if a build must be byte-for-byte reproducible.

Notes

  • Image is node24; current Pi (0.80.2) is compatible. The legacy-node20 dist-tag (0.74.2) is for node20 holdouts only — not used.
  • @mariozechner/pi-coding-agent is the legacy scope (0.73.1); the build only installs @earendil-works.

Test

sh -n clean (build.sh, fetch-npm-globals.sh); markdown gate green. Ran the fetcher against the new spec: @latest0.80.2, and the manifest version-extraction matches npm view ... version.

🤖 Generated with Claude Code

## Why The build hard-pinned `@earendil-works/pi-coding-agent@0.78.0` (`packages/npm-globals.txt`) while `pi upgrade` on hosts had already moved to **0.80.2** — so images shipped a stale Pi and there was no single switch to track the newest release. ## What (Option B — auto-track latest + record provenance) - **`npm-globals.txt`**: Pi line → `@earendil-works/pi-coding-agent@latest`. Every image now bundles the newest Pi. Other globals (`bw`) stay version-pinned. - **`build.sh`**: record the version that actually got fetched in `build-manifest.json` as **`pi_version`**, derived from the bundled tarball name (`earendil-works-pi-coding-agent-<version>.tgz`). Runs after fetch+install, so the tarball is present. This keeps the floating spec **traceable** per artifact. - **`fetch-npm-globals.sh`**: echoes the resolved tarball (`→ earendil-works-pi-coding-agent-0.80.2.tgz`) so the build log shows exactly which version a dist-tag resolved to. ## Tradeoff (as chosen) `@latest` means builds can differ release-to-release and a build could pull an unvetted Pi — accepted in exchange for always-current. Provenance is preserved via `pi_version` in the manifest. Pin a concrete version in `npm-globals.txt` again if a build must be byte-for-byte reproducible. ## Notes - Image is `node24`; current Pi (0.80.2) is compatible. The `legacy-node20` dist-tag (0.74.2) is for node20 holdouts only — not used. - `@mariozechner/pi-coding-agent` is the legacy scope (0.73.1); the build only installs `@earendil-works`. ## Test `sh -n` clean (build.sh, fetch-npm-globals.sh); markdown gate green. Ran the fetcher against the new spec: `@latest` → **0.80.2**, and the manifest version-extraction matches `npm view ... version`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
clawdie added 1 commit 2026-06-24 01:59:54 +02:00
The image shipped a hard pin (@earendil-works/pi-coding-agent@0.78.0) while
'pi upgrade' on hosts had moved to 0.80.2, so builds lagged. Switch Pi to the
@latest dist-tag so every image bundles the newest Pi.

To keep the floating spec traceable, record the version that actually got
fetched in build-manifest.json as pi_version, derived from the bundled tarball
name (earendil-works-pi-coding-agent-<version>.tgz) after fetch+install.
fetch-npm-globals.sh now also echoes the resolved tarball so the build log
shows the version a dist-tag resolved to.

Other globals (bw) stay pinned. Image is node24, compatible with current Pi
(the legacy-node20 dist-tag is for node20 only).

Verified: fetch resolves @latest → 0.80.2; version extraction matches npm.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
clawdie merged commit 7c4975cfcf into main 2026-06-24 02:01:05 +02:00
clawdie deleted branch pi-latest-tracking 2026-06-24 02:01:05 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: clawdie/clawdie-iso#126
No description provided.