Repository navigation
Conversation
The pin was `d5d1a0a5` from 2026-08-21 ("ci: request a dev deploy after
publishing"), nine commits behind swarf's `main`. Three of those nine are
firehose fixes that hilt reaches through `swarf/pkg/client`, which
`pkg/rpc/service/bucket/service.go` and `pkg/api/service/accesskey/service.go`
use in non-test code:
#17 raise the firehose client's SSE scanner limit, and read the stream
through one `sse.Scanner`
#18 bound the event `MaxEventBytes` names, and report the service's
error events
#19 report a failed firehose stream to the caller of the handler
Before #19 a failed stream was swallowed; the caller saw a stream that had
simply stopped producing.
Verified with `GOWORK=off`: `go build ./...`, `go vet ./...`,
`go vet -tags itest ./itest` (the tag-gated suite is where
`itest/stack_test.go` imports `swarf/pkg/client` and `swarf/pkg/store`, so it
is the only thing that compiles that usage), and `go test ./...` -- 26 packages
ok, 0 failures. Docker was unavailable, so the testcontainers-backed Postgres
and OpenBao suites skipped; those need CI.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
Both Dockerfile stages name a *file*. `go help build`: "If the arguments to
build are a list of .go files from a single directory, build treats them as a
list of source files specifying a single package." One file listed, one file
compiled -- so any second file added to `package main` is silently dropped and
the build fails on the first symbol that crosses between them.
This is latent today only because `cmd/` holds exactly one `.go` file.
`cmd/client/` is a separate package and resolves normally, which is why nothing
has ever noticed.
It is not hypothetical: sprue had the identical spelling, and adding a
`cmd/version.go` there broke its container build for eighteen hours while every
package-level check stayed green. Reproduced here the same way, with a
throwaway second file in `package main`:
$ go build -o /tmp/hilt-probe ./cmd/main.go
# command-line-arguments
cmd/main.go:20:6: undefined: probeSymbol
$ go build -o /tmp/hilt-probe ./cmd
(clean)
The probe was reverted; only the Dockerfile changes here. `Makefile` already
said `./cmd` and needed nothing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
hilt#76 (error codes from the Tenant API) merged at 11:29Z, so this PR's green 8/8 had been measured against a base that no longer exists. Not a conflict -- GitHub reported `behind`, not `dirty` -- because the two touch disjoint files: #76 is pkg/api/*, this is Dockerfile, go.mod and go.sum. The merge was clean and both of this PR's changes survive it: both Dockerfile stages still build ./cmd rather than ./cmd/main.go, and swarf is still pinned at 1778ec0. Merged rather than rebased: #77 is already pushed and open, and a rebase would invalidate anyone's checkout of it for no gain. Verified on the merged tree, GOWORK=off: go build ./... clean, go vet ./... clean, go vet -tags itest ./itest clean (the only thing that compiles hilt's swarf usage in itest/stack_test.go), go mod tidy -diff clean, and go test ./... 26 packages ok with 0 failures. Docker was unavailable, so the testcontainers-backed Postgres and OpenBao suites skipped here as before; CI covers them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
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.
[From Claude:]
Two independent commits. Happy to split them if you'd rather review them apart.
1.
0cd1b4a— bump swarf to1778ec0The pin was
d5d1a0a5from 2026-08-21 (ci: request a dev deploy after publishing), nine commits behind swarf'smain. Three of those nine are firehose fixes, and hilt reaches them throughswarf/pkg/clientin non-test code —pkg/rpc/service/bucket/service.goandpkg/api/service/accesskey/service.go:sse.ScannerMaxEventBytesnames, and report the service's error eventsBefore #19 a failed stream was swallowed — the caller saw a stream that had simply stopped producing.
2.
4857e93—go build ./cmd, not./cmd/main.goBoth Dockerfile stages named a file. From
go help build:One file listed, one file compiled. Any second file added to
package mainis silently dropped, and the build fails on the first symbol crossing between them.Latent today only because
cmd/holds exactly one.gofile.cmd/client/is a separate package and resolves normally, which is why nothing has ever noticed.Makefilealready said./cmdand needed nothing — this is the Dockerfile only.Not hypothetical: sprue had the identical spelling, and adding a
cmd/version.gothere broke its container build for eighteen hours while every package-level check stayed green. Reproduced here the same way, with a throwaway second file inpackage main:The probe was reverted; only the Dockerfile changes here.
Verification
All with
GOWORK=off:go build ./...— cleango vet ./...— cleango vet -tags itest ./itest— clean. Worth calling out: the tag-gated suite is whereitest/stack_test.goimportsswarf/pkg/clientandswarf/pkg/store, so it is the only thing that compiles hilt's swarf usage in that file.go build ./...never sees it.go test ./...— 26 packages ok, 0 failuresLimit: Docker was unavailable in my environment, so the testcontainers-backed Postgres and OpenBao suites skipped, and neither the container build nor
make itestactually ran. CI covers both.Context
This came out of the fil-forge monorepo work — the stale pin was found while auditing in-repo dependency freshness. Related and worth knowing:
ingothas weekly gomod dependabot, and in its last 100 PRs, 35 are dependabot's and zero bump afil-forge/*module.hilthas no dependabot config at all. The cause looks like tagging —swarf,hiltandingoteach carry exactly one tag,v0.0.0, which sorts below the pseudo-version already pinned, so there is no newer version for dependabot to offer. Filed here only as context; not something this PR addresses.Opened as a draft so nobody feels obliged to review before Petra has looked.
🤖 Generated with Claude Code
https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
Generated by Claude Code