Summary
Two gaps remain in CI after #384 added go vet ./... to the unit-test job.
1. vet runs untagged only
go vet ./... does not build files behind build tags, and the acceptance suite has 22 of them (basic, metrics, connection, listen, project_use, manual, ...). So none of test/acceptance/ is vetted on a normal run.
go vet -tags basic ./... is clean today. The other 21 are unverified. Two real findings have already come out of that directory this week that vet would likely have caught earlier: two no-op append(sliceLiteral) calls, and an assertion reading the wrong stream.
Needs a decision on shape: a tag matrix, a comma-separated -tags list (risks duplicate symbols across tags), or vetting the acceptance package separately per tag.
2. No gofmt gate
Nothing checks formatting, which is how two files regressed during the 2026-09-01 work and were only noticed by hand.
This cannot simply be switched on: roughly 40 files on main are already unformatted, so a gate fails immediately. It needs a repo-wide gofmt -w first, which is a large mechanical diff best landed on its own rather than inside a feature branch.
Suggested order
- Repo-wide
gofmt -w, alone, no behaviour changes.
- Add
gofmt -l to the unit-test job, failing on non-empty output.
- Decide the tagged-vet shape and add it.
Summary
Two gaps remain in CI after #384 added
go vet ./...to the unit-test job.1. vet runs untagged only
go vet ./...does not build files behind build tags, and the acceptance suite has 22 of them (basic,metrics,connection,listen,project_use,manual, ...). So none oftest/acceptance/is vetted on a normal run.go vet -tags basic ./...is clean today. The other 21 are unverified. Two real findings have already come out of that directory this week that vet would likely have caught earlier: two no-opappend(sliceLiteral)calls, and an assertion reading the wrong stream.Needs a decision on shape: a tag matrix, a comma-separated
-tagslist (risks duplicate symbols across tags), or vetting the acceptance package separately per tag.2. No gofmt gate
Nothing checks formatting, which is how two files regressed during the 2026-09-01 work and were only noticed by hand.
This cannot simply be switched on: roughly 40 files on
mainare already unformatted, so a gate fails immediately. It needs a repo-widegofmt -wfirst, which is a large mechanical diff best landed on its own rather than inside a feature branch.Suggested order
gofmt -w, alone, no behaviour changes.gofmt -lto the unit-test job, failing on non-empty output.