diff --git a/docs/release-notes/6.4.12/changelog.ai.txt b/docs/release-notes/6.4.12/changelog.ai.txt
new file mode 100644
index 000000000..13cfbbe5f
--- /dev/null
+++ b/docs/release-notes/6.4.12/changelog.ai.txt
@@ -0,0 +1,8 @@
+AI Context: 6.4.12 Changelog (changelog.mdx)
+
+This file tracks manual edits made after the generation script ran.
+The script reads the "Skipped PRs" section to avoid re-adding removed entries.
+
+## Skipped PRs
+
+## Manual Rewrites
diff --git a/docs/release-notes/6.4.12/changelog.mdx b/docs/release-notes/6.4.12/changelog.mdx
new file mode 100644
index 000000000..a8ac2fbee
--- /dev/null
+++ b/docs/release-notes/6.4.12/changelog.mdx
@@ -0,0 +1,72 @@
+---
+id: d6yac3ip
+title: Webiny 6.4.12 Changelog
+description: See what's new in Webiny version 6.4.12
+---
+
+import { GithubRelease } from "@/components/GithubRelease";
+import { Alert } from "@/components/Alert";
+
+
+
+## Website Builder
+
+### Fixed Missing `version` and `metadata` Fields in Single-Page Queries ([#5727](https://github.com/webiny/webiny-js/pull/5727))
+{/* REVIEW-PENDING @Pavel910 — confirm this entry, then delete this line */}
+
+The `GET_PAGE_BY_ID` and `GET_PAGE_BY_PATH` queries in the Website Builder SDK were missing the `version` and `metadata` fields from their selection sets. If you needed these fields, you had to patch the SDK manually. Both fields are now included by default.
+
+### Fixed Stale Page Revision Data After Mutations ([#5757](https://github.com/webiny/webiny-js/pull/5757))
+{/* REVIEW-PENDING @Pavel910 — confirm this entry, then delete this line */}
+
+Creating, publishing, unpublishing, or deleting page revisions did not update the revisions cache, so the editor's revisions drawer and top bar dropdown displayed stale data until a page reload. All revision mutations now properly update the cache, and both UI components are driven from a shared `RevisionListPresenter` instead of local state copies.
+
+### Added Delete Revision API Endpoint ([#5757](https://github.com/webiny/webiny-js/pull/5757))
+{/* REVIEW-PENDING @Pavel910 — confirm this entry, then delete this line */}
+
+The admin app called `websiteBuilder.deletePageRevision`, but the mutation was never declared on the backend — the entire client feature was wired to a non-existent endpoint. The mutation now exists and delegates to the CMS `DeleteEntryRevisionUseCase`, which handles deleting the latest revision and cascading to a full entry delete when necessary.
+
+### Improved Revision List Actions and Confirmations ([#5757](https://github.com/webiny/webiny-js/pull/5757))
+{/* REVIEW-PENDING @Pavel910 — confirm this entry, then delete this line */}
+
+Per-revision actions (create from, edit, publish, unpublish, delete) are now determined by the presenter rather than derived in the view. Destructive actions now require confirmation through a dialog and display a toast with the outcome. Previously, delete ran on the first click and failed silently on error.
+
+### Fixed Workflow Decorators Not Applying to Top Bar Actions ([#5757](https://github.com/webiny/webiny-js/pull/5757))
+{/* REVIEW-PENDING @Pavel910 — confirm this entry, then delete this line */}
+
+The page editor config was not registered through `Plugins`, so workflow decorators were never applied to the top bar actions. Additionally, an approved review no longer counts as "under review", so the editor becomes writable again and offers **Publish** instead of **New Revision**.
+
+## Development
+
+### Debug Logger Tool ([#5734](https://github.com/webiny/webiny-js/pull/5734))
+{/* REVIEW-PENDING @brunozoric — confirm this entry, then delete this line */}
+
+A new opt-in, permission-gated debugger is now available for troubleshooting issues in environments where you cannot access AWS or the underlying code. When a user with the `dev-tools.debug` permission enables capture, debug payloads from instrumented call sites are returned in the GraphQL response under `extensions.debug`.
+
+**Key details:**
+
+- Capture is requested per-request via the `x-webiny-debug` header (set to `1`, or a glob pattern like `cms.os.*` with `!` to exclude).
+- Debug sessions are buffered in memory (capped at 4 MB), and payloads never reach CloudWatch—only the permitted user sees them.
+- The first instrumented call site is `cms.os.list`, which captures OpenSearch query and response data around entry listing.
+
+A new **Dev Tools → Debugger** panel in Admin lets you toggle capture, filter by namespace, and download a JSON report. Collected sessions are held in memory only and do not persist beyond the browser tab.
+
+
+
+After deploying this release, you must redeploy your API infrastructure (`yarn webiny deploy api`) and invalidate your CloudFront distribution to ensure the new `x-webiny-debug` header is forwarded correctly. Without this, the feature silently captures nothing.
+
+
+
+### Fixed Peer Dependency Ranges Being Locked During Package Publishing ([#5777](https://github.com/webiny/webiny-js/pull/5777))
+{/* REVIEW-PENDING @adrians5j — confirm this entry, then delete this line */}
+
+When publishing packages, peer dependencies were incorrectly locked to the exact version installed in the monorepo rather than preserving the original range. This caused installation failures with `@webiny/website-builder-nextjs` — npm would error with `ERESOLVE` if your project used a different Next.js version than the one pinned during publishing.
+
+Peer dependencies are now published with their original version ranges. For example, `@webiny/website-builder-nextjs` now correctly declares `next: >=15.0.0 <16.0.0`, allowing installation alongside any compatible Next.js 15 version.
+
+## Admin
+
+### Fixed Keyboard Shortcut Leak on Component Unmount ([#5757](https://github.com/webiny/webiny-js/pull/5757))
+{/* REVIEW-PENDING @Pavel910 — confirm this entry, then delete this line */}
+
+`useHotkeys` leaked registered shortcuts when a component unmounted while shortcuts were active. The cleanup effect closed over stale state, so a drawer that unmounted while open never released its `esc` binding, causing the next component to claim it to throw an error.
diff --git a/docs/release-notes/6.4.12/upgrade-guide.mdx b/docs/release-notes/6.4.12/upgrade-guide.mdx
new file mode 100644
index 000000000..2ecb9004b
--- /dev/null
+++ b/docs/release-notes/6.4.12/upgrade-guide.mdx
@@ -0,0 +1,61 @@
+---
+id: tiuvp42p
+title: Upgrade from 6.4.x to 6.4.12
+description: Learn how to upgrade Webiny from 6.4.x to 6.4.12.
+---
+
+import { Alert } from "@/components/Alert";
+import { AdditionalNotes } from "@/components/upgrade/AdditionalNotes";
+
+
+
+- how to upgrade Webiny from 6.4.x to 6.4.12
+
+
+
+
+
+Make sure to check out the [6.4.12 changelog](./changelog) to get familiar with the changes introduced in this release.
+
+
+
+## Step-by-Step Guide
+
+### 1. Upgrade Webiny Packages
+
+Upgrade all Webiny packages by running the following command:
+
+```bash
+yarn webiny upgrade 6.4.12 --debug
+```
+
+Note that the command above will run upgrades for all available versions of Webiny up to 6.4.12. If there are upgrades for 6.4.1, 6.4.5, they will be ran.
+
+You can omit the version to upgrade to the latest available:
+
+```bash
+yarn webiny upgrade --debug
+```
+
+Once the upgrade has finished, running the `yarn webiny --version` command in your terminal should return **6.4.12**.
+
+
+
+If the above command fails or is not available in your setup, you can run the upgrade script directly via `npx`:
+
+```bash
+npx https://github.com/webiny/webiny-upgrades-v6 6.4.12 --debug
+```
+
+
+
+### 2. Deploy Your Project
+
+Proceed by redeploying your Webiny project:
+
+```bash
+# Execute in your project root.
+yarn webiny deploy --env {environment}
+```
+
+