Skip to content

build(deps): move the Go toolchain to 1.26.7 - #124

Merged
jakewan merged 1 commit into
mainfrom
build/go-1-26-7
Aug 29, 2026
Merged

build(deps): move the Go toolchain to 1.26.7#124
jakewan merged 1 commit into
mainfrom
build/go-1-26-7

Conversation

@jakewan

@jakewan jakewan commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Overview

The merge-blocking govulncheck gate fails on every pull request that touches Go. Two standard-library advisories published since the pin last moved are reachable from finch's own code — a limit on post-handshake messages in crypto/tls (GO-2026-6090) and a maximum recursion depth in encoding/asn1 (GO-2026-5972), both reached through the gRPC transport and the protobuf runtime. Both are fixed in go1.26.6; the pin was at 1.26.5.

This moves the pin to 1.26.7 in mise.toml and in both workflows, which CI asserts agree with each other.

How it works

Two choices worth stating, since neither is visible in a four-line diff.

Why not the ruleset bypass. .claude/rules/ci.md reserves the bypass actor for an advisory with no released fix, and obliges filing an issue to record the exception when it is used. A fix exists here, so the ordinary remedy applies and there is no exception to record.

Why not 1.27. Go 1.27 is released and current, which is precisely why 1.26 remains supported — Go keeps the two most recent minors, so this pin stays within one minor of current as mise.toml requires, with no end-of-life pressure. Against moving now: 1.27.0 is a new minor with no patch release yet, and mise.toml couples golangci-lint to the Go pin ("bump both together"), so 1.27 would pull the linter from 2.12.2 to 2.13.x as well. That is a toolchain upgrade worth its own change, where a regression is attributable to the upgrade rather than to unblocking a gate.

Verified on 1.26.7: just vuln reports no vulnerabilities across all three modules, and just test and just lint pass.

Issue references

Related to #101. That issue tracks the unreconciled duplication between mise.toml and the workflows; this change is an instance of the cost it describes — one version edited in three places — and does not address it.

Unblocks #115, #116, and #123, which fail on this same gate rather than on anything in their own diffs.

Two standard-library advisories published since the last pin are reachable from
finch's own code — a post-handshake message limit in crypto/tls and a recursion
depth limit in encoding/asn1 — so the merge-blocking govulncheck gate now fails
every pull request that touches Go, not only the one that surfaced it.

Both have released fixes, so this is the ordinary remedy rather than a case for
the ruleset bypass, which is reserved for an advisory with nowhere to go. The pin
stays inside 1.26 because 1.27 is a fresh minor whose first patch has not shipped
and whose linter pairing would have to move with it; that upgrade deserves its own
change, where a regression is attributable to it.

The pin lives in mise.toml and in both workflows, which CI asserts agree, so all
three move together. golangci-lint stays put, still built against the same minor.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeowJi9gm6eE3YjoeSyM4A
@jakewan
jakewan marked this pull request as ready for review August 29, 2026 00:05
@jakewan
jakewan merged commit a6c8ffb into main Aug 29, 2026
4 checks passed
@jakewan
jakewan deleted the build/go-1-26-7 branch August 29, 2026 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant