Skip to content

chore: release v0.16.0#121

Merged
ikeikeikeike merged 1 commit into
mainfrom
chore/release-v0.16.0
Jul 16, 2026
Merged

chore: release v0.16.0#121
ikeikeikeike merged 1 commit into
mainfrom
chore/release-v0.16.0

Conversation

@ikeikeikeike

Copy link
Copy Markdown
Member

Cuts v0.16.0 for the retrospective-review sweep: 28 commits on main since v0.15.0, 13 of them merged fix PRs (#108-#120) from reviewing every previously-unreviewed merged PR.

CHANGELOG-only — goreleaser injects the version from the tag (-X main.version={{.Version}}), so there is no version constant to bump.

Why v0.16.0 (minor) rather than a patch

Every entry is a fix to already-shipped behavior with no breaking changes, so semver would permit v0.15.1. Going minor instead because the sweep includes a security fix (a secret-redaction hole that persisted access_token-style values unredacted) plus several fixes that change whether a feature runs at all — quality gates never fired outside the monorepo root, on_repo: was dead since it shipped, evolved agents/commands were linked nowhere. Operators reading a patch bump would reasonably skip it; these warrant the attention.

Highlights

  • Security: compound secret key names (access_token, client_secret, ...) were missed by the structured redaction fallback added in v0.9.18 and written to observations.jsonl in the clear.
  • Three defects were in bugfix code written to prevent that exact class of bug, reintroduced via an unhandled path: pickFreePort's exhaustion fallback ignored its own claimed map; kind: compose shipped without a mysql probe, so a wrapped mysql fell back to a bare TCP dial — the very two-phase-startup race plugins/engine/mysql already had to fix (measured: ~1.6s of false-ready against a real mysql:8.4); AddOrAttach's ENOENT-only prunable check missed the shape where the dir survives but its .git link is gone.
  • Features that silently did nothing: quality gates outside the root, on_repo: matching, evolved agents/commands deployment, backfill's CLAUDE.md relink, autostart's "diagnosable" failure logging.
  • Docs corrected against reality: the v0.3 config fallback is still live (only the plugin gRPC handshake went in v0.5.0); the macOS chown claim was backwards (disproven on a real Darwin host + real ES container).

Full detail per entry in CHANGELOG.md.

Test plan

  • goreleaser check — config valid
  • go build ./...
  • go test ./... -short — all packages pass
  • golangci-lint run ./... — 0 issues
  • Every one of the 13 fix PRs merged with its own full CI green (unit + lint + nix flake check + real-Docker conformance across ubuntu-24.04 / ubuntu-24.04-arm x mysql/postgres/redis/elasticsearch/compose)

After merge, tagging v0.16.0 triggers the goreleaser release workflow.

A retrospective /code-review sweep of every merged PR that had never been
reviewed — all 32, including the earlier retro-review PRs themselves, which
had never been reviewed either. 13 turned up a confirmed, still-live defect;
each was fixed in its own PR with a regression test (#108-#120), and the
finding was posted as an inline comment on the PR that introduced it.

The headline is a secret-redaction hole: v0.9.18's structured fallback only
matched bare secret key names, so a compound key like access_token wrote its
value to observations.jsonl unredacted.

Three of the defects were in bugfix code written to prevent that exact class
of bug, which reintroduced it through an unhandled path: pickFreePort's
exhaustion fallback ignored the claimed map it exists to honor, kind: compose
shipped without a mysql probe so a wrapped mysql fell back to a bare TCP dial
(the very race plugins/engine/mysql already had to fix), and AddOrAttach's
ENOENT-only prunable check missed the shape where the dir survives but its
.git link is gone.

No breaking changes; every entry is a fix to already-shipped behavior. The
version itself is injected by goreleaser from the tag, so this commit is
CHANGELOG-only.
@ikeikeikeike
ikeikeikeike merged commit e96e437 into main Jul 16, 2026
11 checks passed
@ikeikeikeike
ikeikeikeike deleted the chore/release-v0.16.0 branch July 16, 2026 16:39
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