Skip to content

docs: release notes for the network, radius-sdk, radius-cli and the Radius skills, with a feed - #92

Merged
erikzrekz merged 5 commits into
mainfrom
eriks-claude/release-notes
Oct 27, 2026
Merged

erikzrekz merged 5 commits into
mainfrom
eriks-claude/release-notes

Conversation

@erikzrekz

@erikzrekz erikzrekz commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Part of ENG-2633 (project: Docs analytics-driven improvements). Builds on #91, now merged.

Why

Release notes are the #2 page on docs.radiustech.xyz (80 views, Sep 26 – Oct 26), but they cover the network only, and the newest entry is 2026-09-28. Since then:

  • the SDK has shipped 0.4.0 to 0.7.0,
  • the CLI 0.3.1 to 0.6.0,
  • the skills plugin 0.0.2 to 0.2.2.

None of that reached the page. Most traffic arrives as pasted links (61% direct), and 43% of it is on phones, so each release needs its own link that works there.

What changes

Skills changelog (1ef942d)

  • New plugins/radius/CHANGELOG.md, backfilled from 0.0.2 to 0.2.2 using the versions as they landed on main. I checked each entry against its diff.
  • scripts/validate_plugin.py fails CI when the manifest version has no ## <version> (<YYYY-MM-DD>) entry, a heading is malformed, or entries aren't newest first.
  • AGENTS.md and the root README gain the rule.
  • The changelog isn't release content, so no plugin version bump.

Generated page and feed (022e955, e8b54d6)

  • scripts/generate-release-notes.ts writes docs/pages/release-notes.mdx and public/release-notes.xml. Both are gitignored.
  • prebuild, predev, docs:validate and docs:markdown-audit run it.
Section Source Rule
Radius Network release-notes/network.md Moved from the page unchanged; written by hand
radius-sdk, radius-cli their CHANGELOG.md (Changesets) A version appears once its <pkg>@<version> tag exists, dated by the tag, so the docs never announce what isn't on npm. Major / Minor / Patch become Breaking changes / New / Fixes. A minor change with bold text starting "Breaking" (**Breaking:**, **Breaking for installs:**) goes under Breaking. "Updated dependencies" becomes one Uses radius-sdk@x.y.z. line. Links to npm and the GitHub release.
Radius skills plugins/radius/CHANGELOG.md One section per version
  • Layout: one timeline, newest first. Each release is a ## <date>: <product> <version> heading, so #2026-10-27-radius-sdk-070 is a stable link to share. A table at the top links the latest release of each product.
  • Headlines: each change's first sentence is bolded, as written.
  • Page description: names the latest release (now "Latest: radius-sdk 0.7.0 (2026-10-27). Add Radius to an x402 server you already run."), so link previews and llms.txt show what's new.
  • Missing tags fail the build. A checkout without release tags errors instead of quietly dropping the SDK and CLI. docs.yml now checks out with fetch-depth: 0 and fetch-tags: true, like docs-deploy.yml.
  • CI additions: docs.yml runs the new tests (pnpm test:release-notes) and also triggers on packages/cli/CHANGELOG.md.

Sharing and measurement (16c67fc)

Up to date with main (aee3b3d)

Why not Vocs's built-in ::changelog: it reads GitHub Releases from one repo and renders through a client component. It has no per-product anchors, network notes, skills or feed.

Verification

On e8b54d6:

  • From packages/docs, all pass: format:check, lint, typecheck:docs, docs:validate (0 errors, 0 warnings, including the generated page), test:skills, test:release-notes (10 tests), docs:markdown-audit, build, docs:agent-check and docs:sitemap-check.
  • python3 scripts/validate_plugin.py --base-ref origin/main passes. With a malformed heading, or the current version removed from the changelog, it fails as intended (checked on 1ef942d).
  • Built output:
    • 32 releases: 7 network, 7 SDK, 7 CLI, 11 skills.
    • Every heading anchor matches the built HTML ids.
    • The feed has 32 entries.

On 16c67fc:

  • Markdown version, llms.txt and sitemap: /release-notes.md, the llms.txt line and the sitemap entry are present.
  • Feed format: the feed parses as Atom, with unique ids and the required elements.
  • wrangler dev + Playwright, 390 px and 1280 px: no horizontal overflow, and an anchor link lands below both fixed bars on phone, desktop and 1600 px. It did not before the CSS fix.
  • Feed fetches return application/atom+xml and are recorded as agent fetch. noindex still applies on workers.dev hosts.

For the reviewer

  • When new entries go live: production picks them up on the next docs deploy, either after an npm release or a docs-only deploy run by hand. The deploy that followed the 0.7.0 / 0.6.0 release ran from main without this PR, so the live page shows the new entries only after the next deploy.
  • Network notes: none have been written since 2026-09-28. This PR keeps the section and its format but doesn't invent entries. They need a source from the network team.
  • Follow-ups (not here): a per-release OG image; KPIs for release-notes views, social referrers and feed fetches in the weekly report.

🤖 Generated with Claude Code

https://claude.ai/code/session_012M6NrUBhuq32wQaTAVbWn7

…r version (ENG-2633)

plugins/radius/CHANGELOG.md backfills 0.0.2 to 0.2.2 from the versions as
they landed on main, written for developers who use the skills. The docs
release notes will be built from it. validate_plugin.py fails when the
manifest version has no `## <version> (<YYYY-MM-DD>)` entry, when headings
are malformed, or when versions or dates are not newest first.

The changelog is not release content (skills, manifest, README), so it
needs no plugin version bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012M6NrUBhuq32wQaTAVbWn7
… skills changelogs (ENG-2633)

scripts/generate-release-notes.ts writes docs/pages/release-notes.mdx and an
Atom feed, public/release-notes.xml (both gitignored), newest first, from:

- release-notes/network.md: the Radius Network notes, moved from the page
- packages/sdk and packages/cli CHANGELOG.md (Changesets): a version is
  listed once its <package>@<version> tag exists, dated by the tag, with npm
  and GitHub release links; Major/Minor/Patch become Breaking changes, New
  and Fixes, and "Updated dependencies" becomes one "Uses ..." line
- plugins/radius/CHANGELOG.md: the Radius skills

Each release is a `## <date>: <product> <version>` heading, so its anchor
is a stable link to share. Each change's first sentence is bolded as its
headline, as written. The page description names the latest release, so
link previews and llms.txt show what is new. The generator fails when a
checkout has no release tags; docs CI now fetches history and tags like
docs-deploy, runs the generator tests, and runs on CLI changelog changes.

prebuild, predev, docs:validate and docs:markdown-audit run the generator.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012M6NrUBhuq32wQaTAVbWn7
- Every page links the Atom feed (<link rel="alternate">) for feed readers
  and agents; _headers serves it as application/atom+xml.
- The Worker records feed fetches with the other agent files, so
  docs_agent_fetches shows who follows release notes.
- A link to a heading scrolls it below both fixed bars. Vocs offsets
  headings for the top nav only, so the "On this page" bar covered a shared
  release on phones and desktops.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012M6NrUBhuq32wQaTAVbWn7
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

@erikzrekz
erikzrekz marked this pull request as ready for review October 27, 2026 13:10
Base automatically changed from eriks-claude/inspiring-bohr-i7h4tf to main October 27, 2026 13:15
azf20
azf20 previously approved these changes Oct 27, 2026
…nges (ENG-2633)

radius-sdk 0.7.0 marks its peer-dependency move "**Breaking for installs:**",
which the "**Breaking:**"-only rule left under New. Any bold text starting
with "Breaking" now counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012M6NrUBhuq32wQaTAVbWn7
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ No Changeset found

Latest commit: e8b54d6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@erikzrekz
erikzrekz merged commit 5addf78 into main Oct 27, 2026
8 checks passed
@erikzrekz
erikzrekz deleted the eriks-claude/release-notes branch October 27, 2026 14:18
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.

4 participants