Summary
Every workflow in .github/workflows/ runs exclusively on ubuntu-slim or ubuntu-latest. As a result, darwin-only build failures in the Go module are not caught by CI.
Evidence this matters
Issue #61 documents a concrete example: `internal/utils/reflink` fails to build on darwin (missing `reflink_darwin.go`), but every PR to date has been green because no CI job exercises macOS. The package's own doc comment claims APFS support, so this isn't a tracked unsupported-platform — it's a regression nobody can see.
Given that:
- The repo ships an `install.sh` and an `install.ps1` (implying multi-platform user intent)
- The Go port uses OS-specific build tags (`reflink_linux.go`, `reflink_other.go`) where platform divergence is expected
- The autoloop agent generates code without cross-platform test feedback
…the autoloop will keep introducing darwin breakage at roughly the rate it touches platform-tagged code, and nobody will know until somebody clones on a Mac.
Suggested change
Add a macOS runner to the Go build/test job in `.github/workflows/ci.yml` (and any sibling Go workflows). Minimal version:
```yaml
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
```
If macOS minutes are a concern, restricting it to `go build ./...` (skipping the full `go test ./...`) would still catch the entire class of build-tag regressions at low cost.
Windows would be a nice-to-have for completeness (the install.ps1 suggests it's in scope) but darwin is the higher-priority gap given the install.sh path.
Summary
Every workflow in
.github/workflows/runs exclusively onubuntu-slimorubuntu-latest. As a result, darwin-only build failures in the Go module are not caught by CI.Evidence this matters
Issue #61 documents a concrete example: `internal/utils/reflink` fails to build on darwin (missing `reflink_darwin.go`), but every PR to date has been green because no CI job exercises macOS. The package's own doc comment claims APFS support, so this isn't a tracked unsupported-platform — it's a regression nobody can see.
Given that:
…the autoloop will keep introducing darwin breakage at roughly the rate it touches platform-tagged code, and nobody will know until somebody clones on a Mac.
Suggested change
Add a macOS runner to the Go build/test job in `.github/workflows/ci.yml` (and any sibling Go workflows). Minimal version:
```yaml
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
```
If macOS minutes are a concern, restricting it to `go build ./...` (skipping the full `go test ./...`) would still catch the entire class of build-tag regressions at low cost.
Windows would be a nice-to-have for completeness (the install.ps1 suggests it's in scope) but darwin is the higher-priority gap given the install.sh path.