Skip to content

feat: add user-facing release notes (docs site; in-app popover gated off for launch)#1816

Merged
paustint merged 5 commits into
mainfrom
feat/release-notes-2
Jul 22, 2026
Merged

feat: add user-facing release notes (docs site; in-app popover gated off for launch)#1816
paustint merged 5 commits into
mainfrom
feat/release-notes-2

Conversation

@paustint

@paustint paustint commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a user-facing release notes system for Jetstream: a published notes archive on the docs
site, a deterministic data pipeline that feeds an in-app "What's New" popover, and the tooling +
process for authoring notes going forward. The in-app popover is fully built but gated off for the
initial launch
— we start with the docs-site blog only.

What's included

  • Docs blog — release notes are MDX files under apps/docs/release-notes/, published to
    docs.getjetstream.app/release-notes (Docusaurus, deployed independently on Cloudflare Pages).
  • Data pipelinepnpm release-notes:generate parses every MDX, validates the frontmatter
    against a Zod schema (libs/release-notes), and writes release-notes.generated.json. That JSON is
    imported into the app bundle, so the popover's data ships with the app (no runtime dependency on
    the docs site — it only links out to it). App builds dependsOn release-notes:build-data, so CI
    regenerates the JSON from the committed MDX — no AI runs in CI.
  • Authoring tooling — the /release-notes Claude Code command plus release-notes-context.mjs
    (gathers merged PRs since the last v* tag; no AI), new-release-note.mjs, and gather-prs.mjs.
  • In-app "What's New" popoverHeaderWhatsNewPopover, wired into the header, unread badge +
    per-platform filtering. Disabled for launch (see below).
  • Backfilled notes — the full history through v10.3.1 (initial commit) plus v10.3.2 → v10.6.1
    (nine per-version notes) so the archive is current at launch.
  • Process docsCONTRIBUTING.md → Releasing → Release notes.

In-app popover is gated off for launch

The popover renders nothing while SHOW_WHATS_NEW_POPOVER (in HeaderNavbar.tsx) is false. Header
items are built by spreading an array that's empty when the flag is off, so no empty action slot is
left behind. Flip the flag to true to restore it once its known issues are addressed:

  • the popover can exceed the viewport height without scrolling, and
  • its bell icon collides with the background-jobs bell right next to it.

The data pipeline is unaffected, so notes still publish to the docs site regardless.

Authoring a note going forward

  1. Locally (on your own AI plan, never CI): /release-notes <patch|minor|major> drafts the note for
    the version you're about to cut
    and validates it.
  2. Open a docs: release notes vX.Y.Z PR, edit the wording, merge to main.
  3. pnpm release bumps + deploys; CI regenerates the JSON from the merged MDX.

Note: release-notes:context bases off the last git tag, not the last note — after a gap,
pass --base <last-note-version> (that's how the v10.3.2 → v10.6.1 backfill in this PR was produced).

Testing

  • pnpm release-notes:generate108 notes validate against the schema, zero errors.
  • pnpm --dir apps/docs build → docs site builds cleanly (all MDX compiles).
  • ui-core typechecks after the header change.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings June 22, 2026 02:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a release-notes pipeline that publishes user-facing release notes on the docs site and powers an in-app “What’s new” popover, plus supporting release tooling to generate/validate the shared release-notes dataset.

Changes:

  • Add a new @jetstream/release-notes library (types + filtering utilities + generated JSON data) and wire app builds to generate the dataset.
  • Add release tooling scripts to gather merged PR context and generate validated JSON from MDX frontmatter.
  • Add docs-site release-notes blog (Docusaurus plugin) and an in-app “What’s new” popover fed by the generated release-notes data.

Reviewed changes

Copilot reviewed 130 out of 132 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tsconfig.base.json Adds path alias for the new @jetstream/release-notes library.
scripts/release.mjs Adds a non-blocking pre-release reminder to ensure a matching release note exists.
scripts/release-preview.mjs Refactors git-history logic to shared helpers.
scripts/release-notes-context.mjs New script to output a merged-PR digest for drafting release notes.
scripts/new-release-note.mjs New scaffolder to create a starter MDX release-note file.
scripts/lib/gather-prs.mjs New shared helper for tag fetching + PR/commit gathering.
scripts/generate-release-notes.ts New generator/validator to produce release-notes.generated.json from MDX frontmatter.
package.json Adds scripts for release-notes context + generation and adds gray-matter.
libs/shared/ui-core/src/index.ts Documents why the “What’s new” popover is intentionally not re-exported (to preserve code-splitting).
libs/shared/ui-core/src/app/HeaderWhatsNewPopover.tsx New lazy-loaded in-app release-notes popover UI.
libs/shared/ui-core/src/app/HeaderNavbar.tsx Integrates the popover into the header with lazy loading.
libs/shared/ui-core/src/app/tests/HeaderWhatsNewPopover.spec.tsx Adds UI-level tests for the new popover.
libs/release-notes/vite.config.ts Adds Vitest config for the new release-notes library.
libs/release-notes/tsconfig.spec.json Adds TS config for tests in the new library.
libs/release-notes/tsconfig.lib.json Adds TS config for library build, including JSON module support.
libs/release-notes/tsconfig.json Adds TS project references for lib/spec builds.
libs/release-notes/src/lib/release-notes.types.ts Introduces Zod schema/types for release-note frontmatter and runtime consumption.
libs/release-notes/src/lib/release-notes.data.ts Exposes generated release-notes JSON as typed runtime data.
libs/release-notes/src/lib/release-notes-utils.ts Adds filtering/sorting helpers for platform-visible release notes.
libs/release-notes/src/lib/tests/release-notes-utils.test.ts Adds unit tests for release-notes visibility/count utilities.
libs/release-notes/src/index.ts Exports types, utils, and generated data from the new library.
libs/release-notes/project.json Adds Nx target to generate the release-notes dataset before builds.
libs/release-notes/eslint.config.js Adds eslint config for the new library.
CONTRIBUTING.md Documents the release-notes authoring workflow and release-time expectations.
apps/jetstream/project.json Ensures the web app build depends on generating release-notes data.
apps/jetstream-web-extension/project.json Ensures the extension build depends on generating release-notes data.
apps/jetstream-desktop-client/project.json Ensures the desktop client build depends on generating release-notes data.
apps/docs/sidebars.ts Adds “Release Notes” to the docs sidebar.
apps/docs/docusaurus.config.ts Adds a dedicated Docusaurus blog instance for release notes and surfaces it in the navbar.
apps/docs/release-notes/_DOC_AUDIT.md Adds an internal docs-staleness audit file (prefixed to be ignored by Docusaurus).
apps/docs/release-notes/2026-06-21-v10.3.1.mdx Adds release note content (v10.3.1).
apps/docs/release-notes/2026-06-21-v10.3.0.mdx Adds release note content (v10.3.0).
apps/docs/release-notes/2026-06-20-v10.2.0.mdx Adds release note content (v10.2.0).
apps/docs/release-notes/2026-06-18-v10.1.3.mdx Adds release note content (v10.1.3).
apps/docs/release-notes/2026-06-14-v10.1.2.mdx Adds release note content (v10.1.2).
apps/docs/release-notes/2026-06-14-v10.1.1.mdx Adds release note content (v10.1.1).
apps/docs/release-notes/2026-06-13-v10.1.0.mdx Adds release note content (v10.1.0).
apps/docs/release-notes/2026-06-10-v10.0.1.mdx Adds release note content (v10.0.1).
apps/docs/release-notes/2026-06-10-v10.0.0.mdx Adds release note content (v10.0.0).
apps/docs/release-notes/2026-06-05-v9.19.2.mdx Adds release note content (v9.19.2).
apps/docs/release-notes/2026-06-02-v9.19.1.mdx Adds release note content (v9.19.1).
apps/docs/release-notes/2026-05-30-v9.19.0.mdx Adds release note content (v9.19.0).
apps/docs/release-notes/2026-05-27-v9.18.1.mdx Adds release note content (v9.18.1).
apps/docs/release-notes/2026-05-22-v9.18.0.mdx Adds release note content (v9.18.0).
apps/docs/release-notes/2026-05-21-v9.17.2.mdx Adds release note content (v9.17.2).
apps/docs/release-notes/2026-05-16-v9.17.1.mdx Adds release note content (v9.17.1).
apps/docs/release-notes/2026-05-15-v9.17.0.mdx Adds release note content (v9.17.0).
apps/docs/release-notes/2026-05-07-v9.16.0.mdx Adds release note content (v9.16.0).
apps/docs/release-notes/2026-04-23-v9.15.2.mdx Adds release note content (v9.15.2).
apps/docs/release-notes/2026-04-22-v9.15.1.mdx Adds release note content (v9.15.1).
apps/docs/release-notes/2026-04-21-v9.15.0.mdx Adds release note content (v9.15.0).
apps/docs/release-notes/2026-04-19-v9.14.0.mdx Adds release note content (v9.14.0).
apps/docs/release-notes/2026-04-19-v9.13.0.mdx Adds release note content (v9.13.0).
apps/docs/release-notes/2026-04-14-v9.12.1.mdx Adds release note content (v9.12.1).
apps/docs/release-notes/2026-04-14-v9.12.0.mdx Adds release note content (v9.12.0).
apps/docs/release-notes/2026-04-11-v9.11.0.mdx Adds release note content (v9.11.0).
apps/docs/release-notes/2026-04-08-v9.10.0.mdx Adds release note content (v9.10.0).
apps/docs/release-notes/2026-04-05-v9.9.1.mdx Adds release note content (v9.9.1).
apps/docs/release-notes/2026-04-04-v9.9.0.mdx Adds release note content (v9.9.0).
apps/docs/release-notes/2026-04-04-v9.8.1.mdx Adds release note content (v9.8.1).
apps/docs/release-notes/2026-04-03-v9.8.0.mdx Adds release note content (v9.8.0).
apps/docs/release-notes/2026-04-02-v9.7.0.mdx Adds release note content (v9.7.0).
apps/docs/release-notes/2026-04-02-v9.6.0.mdx Adds release note content (v9.6.0).
apps/docs/release-notes/2026-04-01-v9.5.0.mdx Adds release note content (v9.5.0).
apps/docs/release-notes/2026-03-31-v9.4.1.mdx Adds release note content (v9.4.1).
apps/docs/release-notes/2026-03-27-v9.4.0.mdx Adds release note content (v9.4.0).
apps/docs/release-notes/2026-03-20-v9.3.0.mdx Adds release note content (v9.3.0).
apps/docs/release-notes/2026-03-13-v9.2.0.mdx Adds release note content (v9.2.0).
apps/docs/release-notes/2026-03-08-v9.1.0.mdx Adds release note content (v9.1.0).
apps/docs/release-notes/2026-02-28-v9.0.1.mdx Adds release note content (v9.0.1).
apps/docs/release-notes/2026-02-27-v9.0.0.mdx Adds release note content (v9.0.0).
apps/docs/release-notes/2026-02-19-v8.25.0.mdx Adds release note content (v8.25.0).
apps/docs/release-notes/2026-02-17-v8.24.0.mdx Adds release note content (v8.24.0).
apps/docs/release-notes/2026-02-13-v8.23.1.mdx Adds release note content (v8.23.1).
apps/docs/release-notes/2026-02-12-v8.23.0.mdx Adds release note content (v8.23.0).
apps/docs/release-notes/2026-02-09-v8.22.0.mdx Adds release note content (v8.22.0).
apps/docs/release-notes/2026-02-07-v8.21.0.mdx Adds release note content (v8.21.0).
apps/docs/release-notes/2026-02-03-v8.20.0.mdx Adds release note content (v8.20.0).
apps/docs/release-notes/2026-02-02-v8.19.2.mdx Adds release note content (v8.19.2).
apps/docs/release-notes/2026-01-23-v8.19.1.mdx Adds release note content (v8.19.1).
apps/docs/release-notes/2026-01-23-v8.19.0.mdx Adds release note content (v8.19.0).
apps/docs/release-notes/2026-01-23-v8.18.1.mdx Adds release note content (v8.18.1).
apps/docs/release-notes/2026-01-20-v8.18.0.mdx Adds release note content (v8.18.0).
apps/docs/release-notes/2026-01-15-v8.17.1.mdx Adds release note content (v8.17.1).
apps/docs/release-notes/2026-01-12-v8.17.0.mdx Adds release note content (v8.17.0).
apps/docs/release-notes/2026-01-02-v8.16.0.mdx Adds release note content (v8.16.0).
apps/docs/release-notes/2025-12-23-v8.15.1.mdx Adds release note content (v8.15.1).
apps/docs/release-notes/2025-12-16-v8.15.0.mdx Adds release note content (v8.15.0).
apps/docs/release-notes/2025-12-14-v8.14.0.mdx Adds release note content (v8.14.0).
apps/docs/release-notes/2025-12-13-v8.13.1.mdx Adds release note content (v8.13.1).
apps/docs/release-notes/2025-12-13-v8.13.0.mdx Adds release note content (v8.13.0).
apps/docs/release-notes/2025-12-12-v8.12.1.mdx Adds release note content (v8.12.1).
apps/docs/release-notes/2025-12-12-v8.12.0.mdx Adds release note content (v8.12.0).
apps/docs/release-notes/2025-12-05-v8.11.0.mdx Adds release note content (v8.11.0).
apps/docs/release-notes/2025-12-01-v8.10.0.mdx Adds release note content (v8.10.0).
apps/docs/release-notes/2025-11-25-v8.9.1.mdx Adds release note content (v8.9.1).
apps/docs/release-notes/2025-11-23-v8.9.0.mdx Adds release note content (v8.9.0).
apps/docs/release-notes/2025-11-15-v8.8.0.mdx Adds release note content (v8.8.0).
apps/docs/release-notes/2025-11-13-v8.7.0.mdx Adds release note content (v8.7.0).
apps/docs/release-notes/2025-11-07-v8.6.0.mdx Adds release note content (v8.6.0).
apps/docs/release-notes/2025-11-01-v8.5.0.mdx Adds release note content (v8.5.0).
apps/docs/release-notes/2025-10-28-v8.4.0.mdx Adds release note content (v8.4.0).
apps/docs/release-notes/2025-10-21-v8.3.0.mdx Adds release note content (v8.3.0).
apps/docs/release-notes/2025-10-14-v8.2.0.mdx Adds release note content (v8.2.0).
apps/docs/release-notes/2025-10-13-v8.1.0.mdx Adds release note content (v8.1.0).
apps/docs/release-notes/2025-10-08-v8.0.1.mdx Adds release note content (v8.0.1).
apps/docs/release-notes/2025-10-08-v8.0.0.mdx Adds release note content (v8.0.0).
apps/docs/release-notes/2025-09-27-v7.10.0.mdx Adds release note content (v7.10.0).
apps/docs/release-notes/2025-09-24-v7.9.1.mdx Adds release note content (v7.9.1).
apps/docs/release-notes/2025-09-24-v7.9.0.mdx Adds release note content (v7.9.0).
apps/docs/release-notes/2025-09-20-v7.8.0.mdx Adds release note content (v7.8.0).
apps/docs/release-notes/2025-09-16-v7.7.2.mdx Adds release note content (v7.7.2).
apps/docs/release-notes/2025-09-13-v7.7.1.mdx Adds release note content (v7.7.1).
apps/docs/release-notes/2025-09-11-v7.7.0.mdx Adds release note content (v7.7.0).
apps/docs/release-notes/2025-09-07-v7.6.3.mdx Adds release note content (v7.6.3).
apps/docs/release-notes/2025-09-05-v7.6.2.mdx Adds release note content (v7.6.2).
apps/docs/release-notes/2025-09-03-v7.6.1.mdx Adds release note content (v7.6.1).
apps/docs/release-notes/2025-08-30-v7.6.0.mdx Adds release note content (v7.6.0).
apps/docs/release-notes/2025-08-30-v7.5.0.mdx Adds release note content (v7.5.0).
apps/docs/release-notes/2025-08-26-v7.4.0.mdx Adds release note content (v7.4.0).
apps/docs/release-notes/2025-08-23-v7.3.5.mdx Adds release note content (v7.3.5).
apps/docs/release-notes/2025-08-23-v7.3.4.mdx Adds release note content (v7.3.4).
apps/docs/release-notes/2025-08-21-v7.3.3.mdx Adds release note content (v7.3.3).
apps/docs/release-notes/2025-08-14-v7.3.2.mdx Adds release note content (v7.3.2).
apps/docs/release-notes/2025-08-11-v7.3.1.mdx Adds release note content (v7.3.1).
apps/docs/release-notes/2025-08-11-v7.3.0.mdx Adds release note content (v7.3.0).
apps/docs/release-notes/2025-08-09-v7.2.0.mdx Adds release note content (v7.2.0).
apps/docs/release-notes/2025-08-09-v7.1.0.mdx Adds release note content (v7.1.0).
apps/docs/release-notes/2025-07-27-v7.0.0.mdx Adds release note content (v7.0.0).
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread libs/shared/ui-core/src/app/HeaderNavbar.tsx Outdated
Comment thread scripts/release-notes-context.mjs
Comment thread scripts/release-notes-context.mjs Outdated
Comment thread scripts/lib/gather-prs.mjs
Copilot AI review requested due to automatic review settings July 16, 2026 14:31
@paustint
paustint force-pushed the feat/release-notes-2 branch from c0e0020 to 3820915 Compare July 16, 2026 14:31
@socket-security

socket-security Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedgray-matter@​4.0.39910010075100

View full report

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 130 out of 132 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread scripts/release.mjs Outdated
Copilot AI review requested due to automatic review settings July 18, 2026 13:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 131 out of 133 changed files in this pull request and generated 2 comments.

Comment thread scripts/release-notes-context.mjs
Comment thread libs/shared/ui-core/src/app/HeaderWhatsNewPopover.tsx
paustint and others added 5 commits July 19, 2026 12:34
Backfills the nine per-version release notes that accumulated between the last note (v10.3.1) and the current release (v10.6.1), and regenerates release-notes.generated.json (the in-app popover's bundled data source) from the MDX. All notes validate against the schema and the docs site builds cleanly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The in-app What's New popover is built but not shipped yet: for the initial launch we start with the docs-site blog only. All header render sites now spread in a whatsNewItems array that is empty while SHOW_WHATS_NEW_POPOVER is false, so no empty action slot is left behind. Flip the flag to true to restore it once its known issues are fixed (it can exceed the viewport height without scrolling, and its bell icon collides with the background-jobs bell). The data pipeline is unchanged, so notes still publish to docs.getjetstream.app/release-notes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Validate the --bump argument in release-notes-context.mjs, clarify the release.mjs release-note reminder comment to match its actual (confirm-to-proceed) behavior, and apply formatting/import cleanups to HeaderWhatsNewPopover (including removing a duplicated slds-button_icon class).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 19, 2026 20:44
@paustint
paustint force-pushed the feat/release-notes-2 branch from 8181c6a to 5b23240 Compare July 19, 2026 20:44
@paustint paustint changed the title feat: add release notes to docs and in-app feat: add user-facing release notes (docs site; in-app popover gated off for launch) Jul 19, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 140 out of 142 changed files in this pull request and generated 1 comment.

Comment thread CONTRIBUTING.md
@paustint
paustint merged commit 9146139 into main Jul 22, 2026
11 checks passed
@paustint
paustint deleted the feat/release-notes-2 branch July 22, 2026 15:00
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.

2 participants