diff --git a/.changeset/gold-snakes-smash.md b/.changeset/gold-snakes-smash.md
deleted file mode 100644
index ad0db50a420..00000000000
--- a/.changeset/gold-snakes-smash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@primer/mcp': minor
----
-
-Adds support for fetching docs via the `/llms.txt` endpoint per-component
diff --git a/.changeset/pagelayout-resizable-persistence.md b/.changeset/pagelayout-resizable-persistence.md
deleted file mode 100644
index 53ab376c4c3..00000000000
--- a/.changeset/pagelayout-resizable-persistence.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-'@primer/react': minor
----
-
-Add `currentWidth` and `onResizeEnd` props to PageLayout.Pane for controlled resizable width
-
-The `PageLayout.Pane` component now supports controlled width:
-
-- `onResizeEnd` — callback fired when a resize operation ends (pointer release or keyboard key up). Replaces localStorage persistence. Requires `currentWidth`.
-- `currentWidth` — sets the current displayed width in pixels (`number | undefined`). Pass `undefined` when the persisted value hasn't loaded yet. Requires `onResizeEnd`.
-
-Both props must be provided together (enforced by TypeScript). `resizable` remains a plain `boolean` prop.
-
-These props are only meaningful when `resizable={true}` — without it, no drag handle renders so `onResizeEnd` never fires.
-
-**New export:**
-
-- `defaultPaneWidth` — Record of preset width values: `{small: 256, medium: 296, large: 320}`
-
-**Example usage:**
-
-```tsx
-import {PageLayout, defaultPaneWidth} from '@primer/react'
-
-// Default behavior (unchanged) — localStorage persistence
-
-
-// Controlled width with custom persistence
-const [width, setWidth] = useState(defaultPaneWidth.medium)
- {
- setWidth(newWidth)
- myStorage.save('pane-width', newWidth)
- }}
-/>
-
-// Async load — pass undefined until value is fetched
-
-```
diff --git a/.changeset/red-pugs-sing.md b/.changeset/red-pugs-sing.md
deleted file mode 100644
index 9e35cca57ff..00000000000
--- a/.changeset/red-pugs-sing.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@primer/react": patch
----
-
-Update PageHeader story to have semantic headings
diff --git a/.changeset/sixty-keys-perform.md b/.changeset/sixty-keys-perform.md
deleted file mode 100644
index e52b5b7b231..00000000000
--- a/.changeset/sixty-keys-perform.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@primer/react": patch
----
-
-fix: ActionBar overflow menu not closing on select
diff --git a/examples/codesandbox/package.json b/examples/codesandbox/package.json
index c56219a0541..c928318dc16 100644
--- a/examples/codesandbox/package.json
+++ b/examples/codesandbox/package.json
@@ -17,7 +17,7 @@
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.3",
- "@primer/react": "38.11.0",
+ "@primer/react": "38.12.0",
"@primer/styled-react": "1.0.3",
"styled-components": "5.x",
"typescript": "^5.9.2",
diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json
index 6427ca1ebe9..27a7cb4f683 100644
--- a/examples/nextjs/package.json
+++ b/examples/nextjs/package.json
@@ -10,7 +10,7 @@
"type-check": "tsc --noEmit"
},
"dependencies": {
- "@primer/react": "38.11.0",
+ "@primer/react": "38.12.0",
"@primer/styled-react": "1.0.3",
"next": "^16.1.5",
"react": "^19.2.0",
diff --git a/examples/theming/package.json b/examples/theming/package.json
index 40cfe5c7f5e..ba27e7500b9 100644
--- a/examples/theming/package.json
+++ b/examples/theming/package.json
@@ -11,7 +11,7 @@
},
"dependencies": {
"@primer/octicons-react": "^19.21.0",
- "@primer/react": "38.11.0",
+ "@primer/react": "38.12.0",
"@primer/styled-react": "1.0.3",
"clsx": "^2.1.1",
"next": "^16.1.5",
diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md
index ee71f502473..32cd304b20e 100644
--- a/packages/mcp/CHANGELOG.md
+++ b/packages/mcp/CHANGELOG.md
@@ -1,5 +1,16 @@
# @primer/mcp
+## 0.2.0
+
+### Minor Changes
+
+- [#7495](https://github.com/primer/react/pull/7495) [`b69325f`](https://github.com/primer/react/commit/b69325fcb75261707f7cac01bb8f075fc13081f2) Thanks [@adierkens](https://github.com/adierkens)! - Adds support for fetching docs via the `/llms.txt` endpoint per-component
+
+### Patch Changes
+
+- Updated dependencies [[`3c160b2`](https://github.com/primer/react/commit/3c160b26bded975de6175ccf04272e8946cef54e), [`c87db98`](https://github.com/primer/react/commit/c87db981280090cdccc84d19c607d1462212d223), [`d86c970`](https://github.com/primer/react/commit/d86c970be94dc47da55d492dc978d63d3f9ca005)]:
+ - @primer/react@38.12.0
+
## 0.1.0
### Minor Changes
diff --git a/packages/mcp/package.json b/packages/mcp/package.json
index 8746b1b2959..5fb99905a85 100644
--- a/packages/mcp/package.json
+++ b/packages/mcp/package.json
@@ -2,7 +2,7 @@
"name": "@primer/mcp",
"private": true,
"description": "An MCP server that connects AI tools to the Primer Design System",
- "version": "0.1.0",
+ "version": "0.2.0",
"type": "module",
"bin": {
"mcp": "./bin/mcp.js"
@@ -38,7 +38,7 @@
"@modelcontextprotocol/sdk": "^1.24.0",
"@primer/octicons": "^19.15.5",
"@primer/primitives": "10.x || 11.x",
- "@primer/react": "^38.0.0",
+ "@primer/react": "^38.12.0",
"cheerio": "^1.0.0",
"turndown": "^7.2.0",
"zod": "^4.3.5"
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
index 369c347535c..cbbebf26485 100644
--- a/packages/react/CHANGELOG.md
+++ b/packages/react/CHANGELOG.md
@@ -1,5 +1,57 @@
# @primer/react
+## 38.12.0
+
+### Minor Changes
+
+- [#7348](https://github.com/primer/react/pull/7348) [`3c160b2`](https://github.com/primer/react/commit/3c160b26bded975de6175ccf04272e8946cef54e) Thanks [@mattcosta7](https://github.com/mattcosta7)! - Add `currentWidth` and `onResizeEnd` props to PageLayout.Pane for controlled resizable width
+
+ The `PageLayout.Pane` component now supports controlled width:
+
+ - `onResizeEnd` — callback fired when a resize operation ends (pointer release or keyboard key up). Replaces localStorage persistence. Requires `currentWidth`.
+ - `currentWidth` — sets the current displayed width in pixels (`number | undefined`). Pass `undefined` when the persisted value hasn't loaded yet. Requires `onResizeEnd`.
+
+ Both props must be provided together (enforced by TypeScript). `resizable` remains a plain `boolean` prop.
+
+ These props are only meaningful when `resizable={true}` — without it, no drag handle renders so `onResizeEnd` never fires.
+
+ **New export:**
+
+ - `defaultPaneWidth` — Record of preset width values: `{small: 256, medium: 296, large: 320}`
+
+ **Example usage:**
+
+ ```tsx
+ import {PageLayout, defaultPaneWidth} from '@primer/react'
+
+ // Default behavior (unchanged) — localStorage persistence
+
+
+ // Controlled width with custom persistence
+ const [width, setWidth] = useState(defaultPaneWidth.medium)
+ {
+ setWidth(newWidth)
+ myStorage.save('pane-width', newWidth)
+ }}
+ />
+
+ // Async load — pass undefined until value is fetched
+
+ ```
+
+### Patch Changes
+
+- [#7527](https://github.com/primer/react/pull/7527) [`c87db98`](https://github.com/primer/react/commit/c87db981280090cdccc84d19c607d1462212d223) Thanks [@llastflowers](https://github.com/llastflowers)! - Update PageHeader story to have semantic headings
+
+- [#7535](https://github.com/primer/react/pull/7535) [`d86c970`](https://github.com/primer/react/commit/d86c970be94dc47da55d492dc978d63d3f9ca005) Thanks [@francinelucca](https://github.com/francinelucca)! - fix: ActionBar overflow menu not closing on select
+
## 38.11.0
### Minor Changes
diff --git a/packages/react/package.json b/packages/react/package.json
index b22cb0bb110..c5dba76494e 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,7 +1,7 @@
{
"name": "@primer/react",
"type": "module",
- "version": "38.11.0",
+ "version": "38.12.0",
"description": "An implementation of GitHub's Primer Design System using React",
"main": "./dist/index.js",
"module": "./dist/index.js",