Skip to content

About: Recent Releases (release notes) replacing Recent Commits#41

Merged
PeterRounce merged 8 commits into
mainfrom
claude/about-release-notes
Jun 17, 2026
Merged

About: Recent Releases (release notes) replacing Recent Commits#41
PeterRounce merged 8 commits into
mainfrom
claude/about-release-notes

Conversation

@PeterRounce

Copy link
Copy Markdown
Member

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 release job in .github/workflows/ci.yml: on push to main, when build/build.go's version changes, it tags v{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...vV footer when exceeded — so the first catch-up release (last published was v0.10.0) stays readable. Idempotent: skips if the tag already exists. Job-scoped permissions: contents: write; the workflow default stays contents: read.

2. Backend: /about/commits/about/releases

One call to the GitHub Releases API (the per-commit N+1 fetch and its caching machinery are gone). A pure, table-tested selectReleases helper 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.tsx renders each release block (version link, "Current" badge, date, notes) with a small inline bullet/paragraph renderer — no new markdown dependency, no dangerouslySetInnerHTML for release bodies.

4. Version

Bumped 0.21.00.22.0 (MINOR — new feature) + CLAUDE.md sync.

Testing

  • Go: go vet ./... && go build && go test -race -count=1 ./... — clean (incl. new TestSelectReleases table tests).
  • Frontend: npm run build (tsc + vite) — clean.
  • Whole-branch review: no Critical/Important findings.

Heads-up

The two docs: commits (design + plan, under docs/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 filter docs:/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

PeterRounce and others added 8 commits June 17, 2026 10:23
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>
@PeterRounce PeterRounce merged commit 4190317 into main Jun 17, 2026
8 checks passed
@PeterRounce PeterRounce deleted the claude/about-release-notes branch June 17, 2026 11:30
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