Repository navigation
Conversation
The 0.9.0 release published amd64-only single-platform manifests for propr/app, propr/ui, propr/docs and propr/launcher because the release workflow invokes build-images.sh without --platform, so it builds for the x64 runner's native platform. On Apple Silicon, propr setup's platform gate requires a declared native linux/arm64 core image, so setup fails with 'Image does not declare the required linux/arm64 platform' and aborts with 'failed to pull core image(s)'. Publish app/ui/docs/launcher as linux/amd64,linux/arm64 manifest lists via buildx (staged as reconcile-<sha> candidates, then published to the immutable version/sha tags by the existing reconcile flow). The agent image stays pinned to linux/amd64 (Debian binNMU pins) and is still published from the local smoke-tested build. promote-latest propagates the multi-arch index digest unchanged. Note: already-published 0.9.0 tags are immutable and reconcile refuses to overwrite them with a different digest, so this takes effect from the next release unless the 0.9.0 tags are replaced registry-side. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
propr setupfrom the npm package fails on Apple Silicon (arm64 Docker engine) when downloading core images:Root cause: the 0.9.0 release published amd64-only single-platform manifests for
propr/app,propr/ui,propr/docs,propr/launcher(verified viadocker manifest inspect --verbose:Descriptor.platform = linux/amd64, mediaType manifest.v2, no index). The release workflow runs./scripts/build-images.sh --dockerhubon an x64 self-hosted runner without--platform, and the script defaults to the native platform. On macOS, setup's platform gate (packages/cli/src/commands/setup/imagePlatform.ts) requires core images to declare the engine's native platform (linux/arm64on Apple Silicon), so the pull is refused before it starts. The agent image is unaffected because the gate deliberately pins the agent tolinux/amd64under Docker Desktop emulation.Fix
In
build-smoke-and-push, after the existing local build + smoke tests and Docker Hub login:./scripts/build-images.sh --push --dockerhub --platform linux/amd64,linux/arm64 --only app,ui,docs,launcher— builds multi-arch manifest lists, stages them asreconcile-<sha>candidates, and publishes the immutable:version/:shatags from the index digest via the existing reconcile flow (all base images are multi-arch Node alpine/slim images)../scripts/build-images.sh --push-only --dockerhub --only agent— the agent stays pinned tolinux/amd64(Debian binNMU pins) and is published from the local smoke-tested build as before.promote-latestcopies the version-tag digest to:latest, so latest becomes multi-arch unchanged.Also adds a regression test in
test/releaseImageFixtures.test.tsasserting the release publishes multi-arch service images while the agent stays amd64-pinned. Workflow YAML validated;test/releaseImageFixtures.test.tspasses (13/13, incl. the new test) and the workflow regex tests intest/agentTankImageVerification.test.tspass (that file has 18 pre-existing failures on clean main, unrelated to this change).Notes
0.9.0tags are immutable: the reconcile flow refuses to overwrite them with a different digest, so this takes effect from the next release unless the0.9.0tags are replaced registry-side.proprrunner can run arm64 builds via QEMU binfmt (the added step registers it best-effort; the multi-arch build fails loudly without it).