About: Recent Releases (release notes) replacing Recent Commits#41
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Single GitHub Releases API call (drops the per-commit N+1 fetch); filters to the running..latest version range via selectReleases. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New release job tags v{version} and publishes notes built from non-merge
commit subjects since the previous tag (capped at 30). Idempotent: skips if
the tag already exists. Job-scoped contents:write keeps the workflow default
at contents:read.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add docs/superpowers/ to .gitignore (matches existing docs/plans/ 'local planning docs' convention) and untrack the planning specs/plans that were committed before the rule (kept locally via --cached). - Extend the CI release-notes grep to also drop docs:/chore: subjects (incl. conventional-commit scopes) so planning/chore commits don't appear as release-note bullets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The About page's "Recent Commits" list read like a bad changelog — merge-commit noise, developer phrasing, and an N+1 GitHub fetch (one API call per commit) just to tag each row with a version. This replaces it with proper release notes.
1. CI auto-publishes a GitHub Release on version bump
New
releasejob in.github/workflows/ci.yml: on push tomain, whenbuild/build.go's version changes, it tagsv{version}and publishes a GitHub Release. Notes are built from non-merge commit subjects since the previous tag (the "tidying"), capped at 30 with a…compare/PREV...vVfooter when exceeded — so the first catch-up release (last published was v0.10.0) stays readable. Idempotent: skips if the tag already exists. Job-scopedpermissions: contents: write; the workflow default stayscontents: read.2. Backend:
/about/commits→/about/releasesOne call to the GitHub Releases API (the per-commit N+1 fetch and its caching machinery are gone). A pure, table-tested
selectReleaseshelper filters releases to the inclusive[running, latest]range — when up to date it shows only the running version's notes; when behind, everything up to the latest. Graceful empty on any API error or when no releases exist in range.3. Frontend: "Recent Commits" → "Recent Releases"
about.tsxrenders each release block (version link, "Current" badge, date, notes) with a small inline bullet/paragraph renderer — no new markdown dependency, nodangerouslySetInnerHTMLfor release bodies.4. Version
Bumped
0.21.0→0.22.0(MINOR — new feature) + CLAUDE.md sync.Testing
go vet ./... && go build && go test -race -count=1 ./...— clean (incl. newTestSelectReleasestable tests).npm run build(tsc + vite) — clean.Heads-up
The two
docs:commits (design + plan, underdocs/superpowers/) will appear as bullets in the v0.22.0 release notes — faithful to the design's "tidied = strip merges + version bumps" rule. If you'd prefer to also filterdocs:/internal-prefixed commits out of release notes, that's a small follow-up to the CI grep.Design & plan:
docs/superpowers/specs/2026-06-17-about-release-notes-design.md,docs/superpowers/plans/2026-06-17-about-release-notes.md.🤖 Generated with Claude Code