Uh oh!
There was an error while loading. Please reload this page.
feat: enable linux/arm64 (multi-arch) companion images (#466) - #469
Merged
Conversation
Every service agent now ships linux/arm64, so companions can be published multi-arch and an arm64 companion resolves every language agent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Closes#466.
Summary
service-*language agent now shipslinux/arm64(go 0.0.43, python 0.0.57, nextjs 0.0.147, rust 0.0.35, swift 0.0.18, generic 0.0.34), so the amd64-only pin on companion publishing is no longer needed — an arm64 companion can now resolve every language agent.linux/amd64,linux/arm64) instead of amd64-only, so an arm64 host can run language services from the registry images.codefly companion build/publishon Apple Silicon defaults to arm64 (dockerArch()→ arm64), and before the agents shipped arm64 that produced a companion that could not run a single language service — with a standing CI check that every language agent is still shippinglinux/arm64.Notes
pkg/sourceworkspace/source.go" item does not apply, as the issue states. Post-feat: automate source plugin pin promotions (#409) #430 the source-workspace version pins live inpkg/sourceworkspace/compatibility.jsonand are promoted through a separate qualification gate (agent promote-source); they are intentionally left untouched. The new check therefore validates each agent’s latest resolvable release, not the compatibility pin — the arm64 signal that matters for a companion is whether each agent is still shipping the arch at all, not which version a source workspace happens to launch.docker/setup-qemu-action+docker/setup-buildx-action.companion publishalready routes multi-platform builds throughdocker buildx build --push.codefly agent verify-platform linux/arm64) reuses the existing agent release inventory (agent versions), so "resolvable" means the same downloadable-artifact signal, just for arm64. It runs in the standingverifygate (CLI release + daily), which is the right cadence: it surfaces an agent that drops arm64 before the next manual companion publish.Test plan
go build ./...go test ./cmd/agents/... ./pkg/sourceworkspace/...normalizePlatformaccepts bothlinux/arm64andlinux_arm64.codefly agent verify-platform linux/arm64resolves go 0.0.43 / python 0.0.57 / nextjs 0.0.147 / rust 0.0.35 / swift 0.0.18 / generic 0.0.34 and passes; a bogus arch fails listing the shipped platforms.companions.yamlverify job runs the arm64 check green; a manualworkflow_dispatchpublish produces multi-arch manifests (requires Docker Hub credentials).