docs(llm): record the Go toolchain policy

Two rules for every Go builder stage (pin latest stable patch; set
GOTOOLCHAIN=auto), and why the root `go` directive stays at 1.26.4. Notes
that sdk/lx-trading-go already declares go 1.26.5 — above the root module — so
the GOTOOLCHAIN=local failure mode is live in this repo, not hypothetical.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-08-01 16:17:46 -07:00
co-authored by Hanzo Dev
parent 556c9539fc
commit 20e62658cf
+16
View File
@@ -343,6 +343,22 @@ make up # Starts complete stack with monitoring
## Development Workflow
### Go toolchain policy
Every Dockerfile stage that compiles Go must (1) pin its base to the latest
stable patch — currently `1.26.5`, never below the go.mod `go` directive — and
(2) set `ENV GOTOOLCHAIN=auto`.
The official `golang` images ship `GOTOOLCHAIN=local`, which turns "base older
than the governing `go` directive" into a hard failure —
`go: go.mod requires go >= X (running go Y; GOTOOLCHAIN=local)` — instead of
fetching the needed toolchain. This is not hypothetical here:
`sdk/lx-trading-go/go.mod` declares `go 1.26.5`, above the root module's
`1.26.4`, so a submodule build under `GOTOOLCHAIN=local` dies at exactly that.
The root `go` directive stays at `1.26.4` — raising it pushes a hard
patch-level floor onto every consumer. Building an older directive with a newer
toolchain is always valid. `docs/Dockerfile` is exempt (no Go).
### Building
```bash
# Build all components