v0.61.1 — the gates, checked
A patch release for the checks v0.61.0 added, after those checks were reviewed adversarially and eight faults were found in them.
None was a live bug. Every one was a check narrower than its name, or a diagnostic that printed nothing. Nothing in the running application behaves differently — this release makes the safeguards actually cover what they claim to.
The checks now cover what they say
The new SQL bind-argument check did not cover this project's own preferred way of writing to the database, so a test named for every SQL statement was quietly skipping 31 of them. It now covers 316 statements rather than 287, and it fails if someone adds a future write helper without listing it — so this particular gap cannot reopen.
Two smaller gaps in the same check are closed. A statement stored in one kind of Go declaration was skipped entirely, meaning a single keyword silently decided whether it was checked. And statements assembled from other constants were never resolved at all — which covers the ones involved in the defect that motivated the check in the first place.
Diagnostics that said nothing
When the container reported the wrong version, the failure message printed the expected version and then nothing at all where the actual one belonged — the same no-reason failure the message was written to prevent.
The Compose command in the README, the one a reader copies and runs, was the only version reference no check verified. A release could bump everything else and leave that command pinned to the previous image. It is checked now, and that check caught exactly this on its first outing.
An unreadable version constant silently switched the version check back off rather than failing — the state that check spent sixteen releases in.
Tests
The suite now sets an explicit timeout. Go's ten-minute default sits close enough to how long these tests actually take that ordinary load on a developer machine produced a failure that looked exactly like a hang, at a commit where the build was green.