You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: bump Go to 1.26.3, fix new CVEs, run go fix modernizers (#5)
Why:
- CI security scan was failing on 4 new govulncheck advisories:
GO-2026-4982, GO-2026-4980 (html/template), GO-2026-4971 (net),
GO-2026-4918 (net/http + golang.org/x/net). All fixed by Go 1.25.10+
and x/net v0.50+.
- Stayed on the major track (1.26) instead of just patching, to pick
up Green Tea GC (-10..40% GC overhead), cgo +30%, io.ReadAll 2x,
and stack-allocated slice backing — all free wins for the API/worker.
Changes:
- go.mod: go 1.26.3.
- Dockerfiles (api, worker, migrate): golang:1.25-alpine -> 1.26-alpine.
- golang.org/x/net: v0.49.0 -> v0.53.0 (closes GO-2026-4918).
- GitHub Actions: checkout v4->v5, setup-go v5->v6, setup-node v4->v5
(resolves Node20 deprecation warnings).
- go fix ./... modernizers:
- interface{} -> any (~60 files).
- for i := 0; i < N; i++ -> for range N where applicable.
- sync.WaitGroup.Add+go+Done pattern -> wg.Go(...) (worker pool).
- if x < y { x = y } -> max(x, y) / min(x, y).
- intPtr/boolPtr helpers inlined to new(expr) (Go 1.26 syntax);
obsolete helpers removed.
- Lint cleanup: WriteString(fmt.Sprintf(...)) -> fmt.Fprintf(&buf, ...).
- npm audit fix in web/: closes axios (high), brace-expansion, postcss
advisories that surfaced between previous green CI and now. Required
a tiny TS fix in web/src/api/client.ts where the new axios types make
headers['content-type'] non-string (coerced via String(...)).
- Docs: CLAUDE.md, docs/README.md mention Go 1.26.
Verification (local):
- go build ./..., make test, test-race, test-contract: PASS.
- make lint (golangci-lint v2.11.4 rebuilt under go1.26.3): 0 issues.
- govulncheck ./...: only GO-2026-4887, GO-2026-4883 remain — both in
the accepted-list in ci.yml (Moby daemon-side, fix N/A upstream).
- npm audit --audit-level=high in web/: 0 vulnerabilities.
- npm run build: PASS.
- tests/integration: PASS (Postgres on host port 5433).
- internal/infrastructure/db integration: 2 pre-existing failures
(TestMatchRepositorySuite/{TestGetStuckRunning,TestUpdateStatus_NotFound},
TestTournamentRepositorySuite/TestGetLeaderboard_*) reproduce on main
with the same DB state — unrelated to this change.
0 commit comments