03337bc545
CI / check (push) Has been cancelled
CodeAF (Agent-Field/CodeAF) is a Go coding harness that ships one binary. Pinned to v0.7.1; the flake's nixpkgs already carries go 1.26.7 and go.mod asks for 1.26.5, so no extra nixpkgs input is needed. Two things about this build are not obvious from the derivation: - `make build` runs two host-side steps before compiling: `go generate ./internal/manual` packs the built-in manual into the pages.pack.gz and chat.pack.gz that the codeaf_packed_manual tag embeds, and internal/furrowbin/cmd/fetch stages the pinned Agent-Field/furrow release into internal/furrowbin/cache for go:embed. Both are run in preBuild with GOOS/GOARCH unset, the way the Makefile does it, so a cross build does not try to run a target binary on the build machine. buildGoModule runs preBuild in the vendoring derivation as well, before vendor/ exists and before the dependencies are in reach, so the two steps are gated on vendor/. - The furrow step gets its bytes from fetchurl and `-from`, the offline road upstream documents. The fetcher still checks the sha256 in internal/furrowbin/pin.json, so the hashes here duplicate a pin that is already in the source; drop the furrow entirely and codeaf still builds and falls back to looking for the binary on PATH. Tests are off: the upstream suite is a make/CI matrix with network and timing assumptions, not a `go test ./...` that fits buildGoModule. Verified with nix build .#codeaf, `codeaf --version` reporting 0.7.1 and `codeaf manual` listing the packed manual pages. Refs nix-overlay-m5y