Skip to content

Support Windows builds, tests, and releases - #14

Merged
foundev merged 3 commits into
mainfrom
windows-support
Sep 29, 2026
Merged

foundev merged 3 commits into
mainfrom
windows-support

Conversation

@foundev

@foundev foundev commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Problem

go install github.com/BrokkAi/micro-acp@latest fails on Windows because acp-go's internal/osrun used Unix-only syscalls. While testing on Windows, a real micro-acp bug also turned up: every registry binary agent was rejected as an unsafe path.

Changes

  • Dependency: acp-go bumped to a5c9a46 (merged Build and test on Windows acp-go#43), which makes internal/osrun build on Windows.
  • registry.localPath bug (regression test added): it ran filepath.FromSlash and then rejected any name containing \, so on Windows ./agent.exe or ./nested/agent became .\agent.exe and was refused. Backslashes are now checked on the name as published; IsLocal still guards traversal.
  • Tests: the fake npx is written as npx.cmd on Windows (PATHEXT lookup); 0600 permission-bit assertions are skipped on Windows, where Go reports 0666.
  • CI: windows-latest added to the matrix. gofmt -l stays on Linux/macOS (CRLF checkouts report every file); dependency verification runs under bash.
  • Releases: GoReleaser builds windows amd64/arm64 as .zip.

Verification

  • Windows: go build, go vet, go test -count=1 ./... all pass (race not run locally: no cgo).
  • GOOS=linux / GOOS=darwin go vet ./... clean.

🤖 Generated with Claude Code

foundev and others added 3 commits September 29, 2026 14:54
Bump acp-go to the commit that makes internal/osrun build on Windows,
which is what broke `go install` there.

localPath converted "/" to "\" before rejecting paths containing "\",
so on Windows every registry binary command (even "./agent.exe") was
refused as unsafe. Backslashes are now checked on the archive name as
published, before the conversion.

Tests fake npx with a .cmd on Windows and skip Unix permission-bit
checks there. CI gains windows-latest (gofmt stays on Unix, since CRLF
checkouts look unformatted), and GoReleaser publishes Windows zips.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vfh8rxnMX9hmJX8fKPFPMK
@foundev
foundev merged commit 395e6c4 into main Sep 29, 2026
8 checks passed
@foundev
foundev deleted the windows-support branch September 29, 2026 13:05
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.

1 participant