Add multi-product changelog (CLI, MCP, Desktop, Connect, References) - #469
Conversation
Introduce a product-aware changelog and backfill each product's history. - Product tabs + filtering on the infinite-scroll feed (All / CLI / Desktop / MCP / Connect / References), with per-entry product badges and a ?product= deep link. Existing changelog URLs are unchanged. - Retag the CLI back-catalog titles as "CLI: <version>" — titles only, no file renames and no URL changes. - Backfill real entries from each product's own history: - MCP: 5.0.0, 5.1.0 - Desktop: 0.4.0 (the 0.x line) and 1.0.0-rc.6 - References: 2026.05-2026.07 (monthly digests) - Connect: 2026.03-2026.07 (monthly highlights) - Style the reference "View source on GitHub" links as primary-color + underline so they read as links. - Point /changelog/latest at the newest entry.
There was a problem hiding this comment.
Pull request overview
This PR converts the changelog experience into a product-aware feed (All / CLI / Desktop / MCP / Connect / References) by adding product filtering UI, per-entry product badges, and a ?product= deep link, while backfilling historical entries for each product and keeping existing changelog URLs stable.
Changes:
- Add product tabs/filtering + product badges to the infinite-scroll changelog feed (and filter the sidebar accordingly).
- Backfill changelog content for MCP/Desktop/Connect/References and retag existing CLI entries via title updates.
- Restyle reference “View source on GitHub” links and update
/changelog/latestto the newest entry.
Reviewed changes
Copilot reviewed 54 out of 54 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/src/css/custom.css | Restyles reference GitHub links to look more like links (color + underline). |
| src/src/components/ChangelogInfiniteScroll/styles.module.css | Adds styles for product tabs, entry header layout, and product badge. |
| src/src/components/ChangelogInfiniteScroll/index.js | Implements product tabs, URL query handling, sidebar filtering, and badge rendering. |
| src/src/components/ChangelogInfiniteScroll/changelogEntries.js | Introduces product metadata (PRODUCTS) and assigns products to entries (defaulting to CLI). |
| src/sidebars-changelog.js | Updates changelog sidebar ordering to include new product-specific docs. |
| src/docs-changelog/latest.mdx | Redirects “latest” to the newest changelog entry and broadens description. |
| src/docs-changelog/july-2026/reference-2026.07.md | Adds References monthly digest entry for 2026.07. |
| src/docs-changelog/july-2026/desktop-1.0.0-rc.6.md | Adds Desktop 1.0.0-rc.6 release-candidate changelog entry. |
| src/docs-changelog/july-2026/connect-2026.07.md | Adds Connect monthly highlights entry for 2026.07. |
| src/docs-changelog/july-2026/1.0.0-rc.1.mdx | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/june-2026/mcp-5.1.0.md | Adds MCP 5.1.0 changelog entry. |
| src/docs-changelog/june-2026/reference-2026.06.md | Adds References monthly digest entry for 2026.06. |
| src/docs-changelog/june-2026/connect-2026.06.md | Adds Connect monthly highlights entry for 2026.06. |
| src/docs-changelog/june-2026/0.41.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/june-2026/0.41.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/may-2026/desktop-0.4.0.md | Adds Desktop 0.4.0 historical consolidated entry. |
| src/docs-changelog/may-2026/mcp-5.0.0.md | Adds MCP 5.0.0 changelog entry. |
| src/docs-changelog/may-2026/reference-2026.05.md | Adds References monthly digest entry for 2026.05. |
| src/docs-changelog/may-2026/connect-2026.05.md | Adds Connect monthly highlights entry for 2026.05. |
| src/docs-changelog/may-2026/0.40.2.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/may-2026/0.39.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/may-2026/0.38.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/may-2026/0.37.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/april-2026/connect-2026.04.md | Adds Connect monthly highlights entry for 2026.04. |
| src/docs-changelog/april-2026/0.36.2.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/april-2026/0.35.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/april-2026/0.34.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/connect-2026.03.md | Adds Connect monthly highlights entry for 2026.03. |
| src/docs-changelog/march-2026/0.33.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.32.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.31.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.30.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.29.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.28.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.27.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/march-2026/0.26.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/february-2026/0.25.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/february-2026/0.24.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/january-2026/0.23.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/january-2026/0.22.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/january-2026/0.21.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/december-2025/0.20.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/december-2025/0.19.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/december-2025/0.18.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/december-2025/0.17.2.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/december-2025/0.16.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/november-2025/0.15.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/november-2025/0.14.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/november-2025/0.13.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/october-2025/0.12.1.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/september-2025/0.11.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/september-2025/0.10.2.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/september-2025/0.9.0.md | Retags CLI entry title with “CLI: …”. |
| src/docs-changelog/september-2025/0.8.0.md | Retags CLI entry title with “CLI: …”. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The product filter buttons were marked up as ARIA tabs (role=tablist/tab) but don't control tabpanels — they filter the feed and change the URL. Switch to a role=group of aria-pressed toggle buttons, which is simpler and semantically accurate. Addresses Copilot review feedback on #469.
Addresses Copilot review feedback on #469: - Exclude /changelog/latest from the infinite-scroll DocItem override so its MDX <Redirect> to the newest entry fires (correct title, sidebar highlight, and a real entry URL) instead of rendering the feed at a non-entry permalink. - Bump .section scroll-margin-top to clear the sticky product tabs, so jumping to an entry no longer hides its heading under them.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 81 out of 84 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
src/src/data/hardware/targets.json:214
- The Jetson target slugs are renamed here (e.g.
jetson-orin-nano-devkit→jetson-orin-nano), but the committed dropdown snapshotsrc/src/data/hardware/generated-targets.json(used bysrc/src/components/TargetSelector/index.jsto render targets and tocollectAnchor(target.target)) still contains the old*-devkitslugs. That means local/offline builds (docusaurus startwithout running the build refresh step) won’t show the new slugs and hash deep-links like#jetson-orin-nano/#jetson-agx-orinwon’t resolve.
Shared version labels (e.g. Connect and References both 2026.07) produced
duplicate HTML ids from id={entry.version}; derive the id from the unique
permalink slug instead. (Copilot review.)
43d0f28 to
6440023
Compare
…entry accuracy - index.js: start the feed at the landing entry within the active product's filtered set (fixes ?product= deep links), and carry the active filter through sidebar navigation so a doc-to-doc click no longer resets it. - Drop the CI-only deploy-approval bullet from Connect 2026.07. - References 2026.06: list only browsable references (drop the four unpublished NPU/Zephyr entries and the internal "not browsable yet" note). - Retitle/rename Desktop 0.4.0 -> 0.4.4 (title, version, sidebar id, filename). - MCP: move the July security/license bullets out of 5.1.0 into a new 5.2.0 July entry (headline: Docker->Avocado package-coverage report + multi-release feeds).
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 56 out of 56 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
src/src/components/ChangelogInfiniteScroll/index.js:145
selectProduct()always setsactivePermalink(and the URL) to the newest entry for the selected product (nextEntries[0]). When hydrating from a deep link like/changelog/.../desktop-0.4.4?product=desktop, this jumps away from the requested entry, contradicting the intent described in the comment abovestartIndex.
Consider selecting the current pathname if it exists within the chosen product’s entries, and only falling back to the newest entry when it doesn’t.
src/src/components/ChangelogInfiniteScroll/index.js:75
- The sidebar filter rewrites entry
hrefs to include?product=..., buthighlightActiveLink()still searches for an exacthrefmatch without the query string. With a product filter active, this prevents the active entry link from being highlighted.
Adjust highlightActiveLink() to match links by comparing href.split('?')[0] to the active permalink.
This issue also appears on line 141 of the same file.
Turns the changelog into a product-aware changelog and backfills each product's history. The infinite-scroll feed gains product tabs + filtering (All / CLI / Desktop / MCP / Connect / References), per-entry product badges, and a
?product=deep link.The product-tab UX originated from the
multiproduct-changelog-uxbranch; this PR builds on it, reconciles the naming, and backfills real content.Changes
CLI: <version>(titles only).5.0.0,5.1.0.0.4.0(consolidated 0.x line) and1.0.0-rc.6.2026.05–2026.07.2026.03–2026.07(user-facing only)./changelog/latestat the newest entry.Review fixes (Copilot)
aria-pressedtoggle buttons for the product filters./changelog/latestfrom the infinite-scroll override so its redirect fires.scroll-margin-topfor the sticky tabs.id(permalink slug) so shared version labels don't collide.SEO / indexing
Product tags are display-only. No changelog files were renamed and no slugs changed — every existing
/changelog/...URL is preserved.Testing
scripts/checks.shpasses locally (redocly, eslint,prettier --check ., build).