feat: add user-facing release notes (docs site; in-app popover gated off for launch)#1816
Merged
Conversation
Contributor
There was a problem hiding this comment.
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-noteslibrary (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.
paustint
force-pushed
the
feat/release-notes-2
branch
from
July 16, 2026 14:31
c0e0020 to
3820915
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
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>
paustint
force-pushed
the
feat/release-notes-2
branch
from
July 19, 2026 20:44
8181c6a to
5b23240
Compare
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.
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
apps/docs/release-notes/, published todocs.getjetstream.app/release-notes(Docusaurus, deployed independently on Cloudflare Pages).pnpm release-notes:generateparses every MDX, validates the frontmatteragainst a Zod schema (
libs/release-notes), and writesrelease-notes.generated.json. That JSON isimported 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
dependsOnrelease-notes:build-data, so CIregenerates the JSON from the committed MDX — no AI runs in CI.
/release-notesClaude Code command plusrelease-notes-context.mjs(gathers merged PRs since the last
v*tag; no AI),new-release-note.mjs, andgather-prs.mjs.HeaderWhatsNewPopover, wired into the header, unread badge +per-platform filtering. Disabled for launch (see below).
(nine per-version notes) so the archive is current at launch.
CONTRIBUTING.md→ Releasing → Release notes.In-app popover is gated off for launch
The popover renders nothing while
SHOW_WHATS_NEW_POPOVER(inHeaderNavbar.tsx) isfalse. Headeritems 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
trueto restore it once its known issues are addressed:The data pipeline is unaffected, so notes still publish to the docs site regardless.
Authoring a note going forward
/release-notes <patch|minor|major>drafts the note forthe version you're about to cut and validates it.
docs: release notes vX.Y.ZPR, edit the wording, merge tomain.pnpm releasebumps + deploys; CI regenerates the JSON from the merged MDX.Note:
release-notes:contextbases 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:generate→ 108 notes validate against the schema, zero errors.pnpm --dir apps/docs build→ docs site builds cleanly (all MDX compiles).ui-coretypechecks after the header change.🤖 Generated with Claude Code