Skip to content

feat(frontend): in-app "what's new" release-notes panel#12

Merged
github-actions[bot] merged 2 commits into
mainfrom
feat/whats-new
Jul 9, 2026
Merged

feat(frontend): in-app "what's new" release-notes panel#12
github-actions[bot] merged 2 commits into
mainfrom
feat/whats-new

Conversation

@FinkeFlo

@FinkeFlo FinkeFlo commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a top-bar "What's new" control that opens a modal with curated,
bundled release notes. An unread dot shows while the running version has
not been acknowledged, and the modal auto-opens once per version jump.

Design spec + plan live in the private deploy repo
(docs/superpowers/{specs,plans}/2026-07-09-whats-new-*).

What it does

  • Sparkles icon-button in the top bar (next to the theme toggle), with an
    unread dot while the running version is unseen.
  • Auto-opens the modal once per unseen version, without stacking on an
    already-open modal (anyModalOpen() guard); the dot is the fallback entry.
  • Modal lists changelog entries (newest expanded, older collapsible) with
    Feature / Fix / Security badges.

Design decisions

  • Offline / self-contained: notes ship with the frontend
    (src/content/changelog.ts) — no runtime network calls, no external
    links, no PR references. Fits the stateless single-binary / air-gapped CF
    deployment.
  • Seen-key = the running version from the existing /api/v1/info,
    normalized (normalizeVersion strips a leading v and -btp/-local/-dev),
    so the indicator fires on every image bump. Last-seen state in localStorage.
  • No new dependencies (reuses <Modal>, lucide-react, TanStack Query).

Backend

None. Uses the existing /api/v1/info version. No TODO(backend) items.

Release follow-up (cross-repo)

Add a checklist step to scripts/release-and-deploy.sh (deploy repo):
append a CHANGELOG entry whose version equals the normalized release tag
before tagging. Optionally a CI check asserting CHANGELOG[0].version
matches the tag prevents drift.

Gates

  • npm run lintnpm run buildnpm run check:palette
  • Full Vitest suite: 261 passed (incl. 8 new tests for whats-new.ts,
    WhatsNewModal, WhatsNewButton).

Add a top-bar What's-new button (next to the theme toggle) that opens a modal with bundled, curated release notes. An unread dot shows while the running version (from /api/v1/info, normalized) has not been acknowledged, and the modal auto-opens once per version jump without stacking on an already-open modal. Notes ship with the frontend (content/changelog.ts) so there are no runtime network calls; last-seen state lives in localStorage.

Signed-off-by: FinkeFlo <florian.kube@gmail.com>
@github-actions
github-actions Bot enabled auto-merge (rebase) July 9, 2026 16:01
… notes

The auto-opening modal's backdrop intercepted pointer events and broke the Playwright e2e harness, whose build reports version "e2e-dev" (normalized "e2e") with no matching changelog entry. Gate the unread dot and the auto-open on the running version having a CHANGELOG entry, so dev builds, the e2e harness, and any version without notes neither nag nor block automation. Manual open via the top-bar button still works for any version.

Signed-off-by: FinkeFlo <florian.kube@gmail.com>
@github-actions
github-actions Bot merged commit b397956 into main Jul 9, 2026
15 of 16 checks passed
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