Engine binaries for darwin-amd64 + linux-arm64; Windows-ready engine resolution - #138
Merged
Conversation
…e platform set Go never reports execute bits for regular files on Windows (os.Stat yields 0666/0444), so runnable() rejected every candidate there, and siblingNames never looked for a .exe. The decision is now a pure, platform-parameterised helper: on windows the candidates are swe-pro-<goos>-<goarch>.exe, swe-pro.exe, then the bare names, and an existing regular file counts as runnable; other OSes keep the execute-bit rule. No Windows engine ships yet (swe-pro-go still has unix-only syscalls), so the docs say so and describe the classic-loop fallback; they also list the vendored platform set. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Built from the same swe-pro-go source as the existing darwin-arm64 and linux-amd64 binaries (main @ 9c4e69a, cmd/codeaf, CGO_ENABLED=0, -buildvcs=false, go1.25.4), so an Intel Mac or an arm64 Linux host — the platform the end-to-end containers run on — gets the engine instead of silently falling back to the classic loop. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
habibgurdov77-star
approved these changes
Aug 20, 2026
|
A |
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.
What this does
Companion to Agent-Field/agentfield#937 (desktop ships swe-planner + pr-af as bundled nodes with the Pro engine on by default). Investigating that PR showed the vendored engine set was darwin-arm64 + linux-amd64 only, so an Intel Mac or an arm64 Linux host (the platform the #937 end-to-end containers ran on) silently fell back to the classic coding loop — and the resolver could never find an engine on Windows even if one existed.
Commits
fix(pro): Windows-ready engine-binary resolution. Go never reports execute bits for regular files on Windows (os.Statyields 0666/0444), sorunnable()rejected every candidate there, andsiblingNames()never looked for a.exe. Both decisions are now pure, platform-parameterised helpers with table tests: on windows the candidates areswe-pro-<goos>-<goarch>.exe,swe-pro.exe, then the bare names, and an existing regular file counts as runnable; other OSes keep the execute-bit rule. Docs updated (platform set, Windows fallback,.exelookup).feat(pro): vendorswe-pro-darwin-amd64andswe-pro-linux-arm64. Built from the same swe-pro-go source as the existing two binaries (main @ 9c4e69a,cmd/codeaf,CGO_ENABLED=0 go build -buildvcs=false, go1.25.4 — the linux-amd64 rebuild reproduces the vendored file byte-for-byte). +55 MB in the repo; drop this commit if you'd rather not carry them.Windows — the remaining gap
No Windows engine ships yet: swe-pro-go does not compile for
GOOS=windows(internal/core/spawner.gousesSetpgid/syscall.Kill,internal/storage/storage.goandinternal/modelsdev/models.gouseflock). Those three need build-tagged ports before aswe-pro-windows-amd64.execan exist; with this PR the node will pick it up the moment one lands.Verification
gofmt -l ./internal/proclean,go vet ./internal/pro/...,go test ./...ingo/all pass.go version -mon the new binaries:GOOS=darwin GOARCH=amd64/GOOS=linux GOARCH=arm64,CGO_ENABLED=0, identical dependency set to the existing binaries;swe-pro-linux-arm64 --versionruns under qemu.🤖 Generated with Claude Code