Add a novision build tag so the server can be built and tested off-device - #846
Open
yuzi-co wants to merge 1 commit into
Open
Add a novision build tag so the server can be built and tested off-device#846yuzi-co wants to merge 1 commit into
yuzi-co wants to merge 1 commit into
Conversation
This was referenced Aug 1, 2026
yuzi-co
force-pushed
the
build/novision-tag
branch
from
August 2, 2026 21:28
9a15e2d to
f2e305c
Compare
common/kvm_vision.go links against libkvm through cgo, so any package that
reaches it can only be built on the cross-compiler with the device libraries
present. That is most of the server, which means none of it can be type
checked or tested on a workstation or in CI.
The novision tag swaps that file for a pure Go stub with the same surface, so
the tree builds and the tests run anywhere:
go vet -tags novision ./...
go test -tags novision ./...
The device build is unchanged: without the tag the real bindings are used
exactly as before.
yuzi-co
force-pushed
the
build/novision-tag
branch
from
August 13, 2026 17:47
f2e305c to
b82cea5
Compare
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.
common/kvm_vision.go links against libkvm through cgo, so any package that reaches it can only be built with the cross-compiler and the device libraries present. That is most of the server, which means none of it can be type checked or tested on a workstation or in CI.
This adds a
novisiontag that swaps that one file for a pure Go stub with the same surface:The device build is untouched. Without the tag the real bindings are used exactly as before, and
common/kvm_vision.goonly gains a//go:build !novisionline.I opened this first because several other fixes I am proposing come with tests, and without something like this there is no way to run them anywhere but on hardware.
One thing worth knowing
With the tag in place the existing suite runs, and it is not quite green under load.
service/controlmodeandservice/picoclawhave tests with one-second timing budgets that fail when the whole suite runs in parallel on a slow filesystem, and pass consistently when run alone:Those are pre-existing and nothing to do with this change, but if you wire this into CI you will meet them.
-p 1makes it reliable in my testing.Verified:
go build,go vet, andGOOS=linux GOARCH=riscv64 go buildall clean with and without the tag.