Repository navigation
build(furrow): the Windows desktop engine carries its pinned furrow - #1987
Merged
Merged
Conversation
`make app-sidecar APP_GOOS=windows` still deleted the staged furrow and built without one, a rule from before Windows had a furrow. #1888 pinned the Windows artifacts and made `make build` embed them, but the desktop's sidecar recipe was not updated, so the Windows desktop app shipped an engine that could not move chats. The recipe now fetches and checks the pinned engine for every platform before compiling; a failed fetch stops the build. Windows keeps its plain go build (Defender quarantined the garbled binary) and no longer installs garble it never uses. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
`FURROW_ARTIFACT` and `FURROW_SOURCE` stage a furrow without checking the pin, on purpose, for developers. But the Makefile's offline example pointed at ~/.agentfield/bin/furrow, which on dev machines is another product's furrow 0.1.0, and a build made that way carried it without a word. The fetcher now prints the staged path, target platform and pinned version whenever it takes an override. The example names a release artifact. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AbirAbbas
force-pushed
the
fix/windows-sidecar-furrow
branch
from
October 27, 2026 01:33
f901376 to
05dd6b8
Compare
Collaborator
Author
|
Gate (run 40433301860): the touched packages ( |
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.
Summary
The desktop app bundles the engine that
make app-sidecarbuilds. ForAPP_GOOS=windowsthat recipe still ranrm -f internal/furrowbin/cache/furrow-*.gzand built with no furrow. That rule came in with #1882, before Windows had a furrow. #1888 pinned the furrow v0.2.0 Windows artifacts and mademake buildembed them, but this recipe was missed, so the Windows desktop app shipped an engine that cannot move chats.app-sidecarnow fetches and checks the pinned furrow for every platform before compiling, Windows included. A failed fetch stops the build, under the same rule as Linux and macOS.go build, because Defender quarantined the garbled binary. It no longer installs garble it never uses.FURROW_ARTIFACTandFURROW_SOURCEstill stage an unpinned furrow, on purpose, for developers. The fetcher now prints one line naming what it staged and the pinned version, so that's never silent.~/.agentfield/bin/furrow, which on dev machines is another product's furrow 0.1.0. That's how a local build ended up carrying 0.1.0. It now names a release artifact.docs/testing-anywhere.mddropped the retiredCODEAF_CELLSswitch and the "Windows users run codeaf in WSL" line.release.ymlalready fetches before both Windows release builds; the sidecar recipe was the only shipping path that dropped furrow.Verification
make app-sidecar APP_GOOS=windows APP_GOARCH=amd64downloadedfurrow-windows-amd64.exefrom the v0.2.0 release. Both the cached artifact and the inflated staged archive hash to the pin's327cc313….codeaf-x86_64-pc-windows-msvc.exe identity showexits 0. It wrote outbin/furrow-0.2.0-e5e27527772c.exe(sha256 matches the pin), and that file runs and printsfurrow 0.2.0. The scratch root was removed.TestW1WindowsSidecarFetchesBeforeBuildingdrives the real make recipe against an offline toolchain fixture. It checks that the fetch runs before the build, and that a fetch failure stops the build with its message.TestW3BuiltArtifactAnnouncesOverridechecks the override is staged and announced exactly once.internal/furrowbinand 13fetchtests pass by name with the pinned furrow. Both new tests also pass under-race.go vetis clean.🤖 Generated with Claude Code