Skip to content

fix(docker): publish spawn-pi image so --beta sandbox works for pi#3373

Merged
la14-1 merged 2 commits intoOpenRouterTeam:mainfrom
AhmedTMM:pi-docker
Apr 29, 2026
Merged

fix(docker): publish spawn-pi image so --beta sandbox works for pi#3373
la14-1 merged 2 commits intoOpenRouterTeam:mainfrom
AhmedTMM:pi-docker

Conversation

@AhmedTMM
Copy link
Copy Markdown
Collaborator

Summary

`spawn pi local --beta sandbox` fails because the sandbox flow tries to pull `ghcr.io/openrouterteam/spawn-pi:latest`, but the image was never published — `pi` was missing from the Docker build matrix in `.github/workflows/docker.yml`, and there was no `sh/docker/pi.Dockerfile`.

This PR:

  • Adds `sh/docker/pi.Dockerfile` (Ubuntu 24.04 + Node 22 via `n` + `npm install -g @mariozechner/pi-coding-agent` — same shape as `kilocode.Dockerfile` and `codex.Dockerfile`).
  • Adds `pi` to the matrix in `.github/workflows/docker.yml` so the daily/scheduled build (and any push touching `sh/docker/**`) publishes `ghcr.io/openrouterteam/spawn-pi:latest`.

Test plan

  • Merge → workflow runs (push trigger fires on `sh/docker/**` change) → `spawn-pi:latest` published to ghcr.io.
  • After publish: `spawn pi local --beta sandbox` pulls successfully.

🤖 Generated with Claude Code

The sandbox flow on local pulls ghcr.io/openrouterteam/spawn-<agent>:latest,
but the Docker build matrix in .github/workflows/docker.yml didn't include
`pi` and there was no sh/docker/pi.Dockerfile, so the image was never
published. `spawn pi local --beta sandbox` failed with "denied" pulling
spawn-pi:latest.

Adds the Dockerfile (mirrors kilocode/codex: Ubuntu 24.04 + Node 22 +
`npm install -g @mariozechner/pi-coding-agent`) and registers `pi` in
the workflow matrix. The next scheduled or manual run will publish
ghcr.io/openrouterteam/spawn-pi:latest.
@AhmedTMM AhmedTMM marked this pull request as ready for review April 29, 2026 22:36
@la14-1
Copy link
Copy Markdown
Member

la14-1 commented Apr 29, 2026

Review

Tiny, correct unblocker for `spawn pi local --beta sandbox`. Exactly the shape that `kilocode.Dockerfile` / `codex.Dockerfile` already use — npm-based install, Ubuntu 24.04 base, Node 22 via `n`, `sleep inf` entrypoint.

Looks good

  • `pi.Dockerfile` is byte-for-byte the same shape as `kilocode.Dockerfile` with only the npm package name changed. No divergence from the existing template.
  • Install command `npm install -g @mariozechner/pi-coding-agent` matches the production agent install in `packages/cli/src/shared/agent-setup.ts:1391` and the `install` field in `manifest.json`.
  • Matrix addition is alphabetically out of order (`junie, pi` is fine, but look at `claude, codex, cursor, openclaw, opencode, kilocode, hermes, junie, pi` — not alphabetical, matches the pre-existing order of the others). Leaving it as-is is fine; matches convention.
  • All 6 checks pass.

Minor

  • The Dockerfile pins a major Node version (`22`) via `n` but not the patch. That's consistent with the other Dockerfiles, so it's not a regression — but every rebuild pulls latest 22.x. Fine for now.
  • Pi is a node runtime (per `manifest.json:"runtime": "node"`) and has no compiled binaries, so the x86_64 image is enough — no ARM tarball entry needed per the rules doc. Matches `codex`/`kilocode`/`junie`.
  • No changes needed to `manifest.json` — pi was already there with the right install command.

Timing

  • `docker.yml` trigger fires on push to `sh/docker/**`, so merging kicks off an immediate build. After that, `ghcr.io/openrouterteam/spawn-pi:latest` is pullable and `spawn pi local --beta sandbox` starts working. No separate workflow-dispatch needed.

LGTM, merge and kick the build.

Reviewed by SPA

Copy link
Copy Markdown
Member

@la14-1 la14-1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated branch to latest main. Full review at the earlier comment.

@la14-1 la14-1 merged commit 83ecccf into OpenRouterTeam:main Apr 29, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants