diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef8adc04..36c90496 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,28 @@
# Changelog
+## v0.21.1 (2026-10-26)
+
+### Changed
+- **Stats Session View**: Redesigned the expanded session view in the stats dashboard.
+ - New stat tiles show pace, lines, known-word rate, lookups, and paused time.
+ - A reading density chart of known and unknown words replaces the cumulative chart.
+ - Yomitan lookups and mined cards now appear in their own lane below the chart.
+
+### Fixed
+- **Subtitle Retiming**: Mining, the subtitle sidebar, subtitle navigation, and replay now use the timing you set with mpv's subtitle delay keys (z/x and sub-step), so mined audio and images match the retimed line.
+- **Subtitle Sidebar**: mpv keys and mouse actions, like volume keys and double-click fullscreen, work again while the sidebar is open.
+
+### Docs
+- **README**: Refreshed the anime screenshots using the current build.
+
+
+Internal changes
+
+### Internal
+- **Packaging Layout**: Packaging inputs now live under `packaging/`, and all build output lands in `dist/`, with packaged apps in `dist/release/`.
+
+
+
## v0.21.0 (2026-10-24)
### Added
diff --git a/changes/mining-respects-sub-delay.md b/changes/mining-respects-sub-delay.md
deleted file mode 100644
index 37de7ae8..00000000
--- a/changes/mining-respects-sub-delay.md
+++ /dev/null
@@ -1,4 +0,0 @@
-type: fixed
-area: subtitles
-
-- mpv's manual subtitle retiming (`sub-delay`, z/x and sub-step) now carries through SubMiner: mined card audio, images, and timestamps clip the retimed line, and the subtitle sidebar highlight, click-to-seek, subtitle navigation, overlay line matching, and replay pause point all follow the retimed timing.
diff --git a/changes/readme-anime-screenshots.md b/changes/readme-anime-screenshots.md
deleted file mode 100644
index 69a4f482..00000000
--- a/changes/readme-anime-screenshots.md
+++ /dev/null
@@ -1,4 +0,0 @@
-type: docs
-area: readme
-
-- Refreshed the README's anime screenshots using the current SubMiner build.
diff --git a/changes/repo-root-packaging-layout.md b/changes/repo-root-packaging-layout.md
deleted file mode 100644
index 2c7541d3..00000000
--- a/changes/repo-root-packaging-layout.md
+++ /dev/null
@@ -1,5 +0,0 @@
-type: internal
-area: build
-
-- Moved packaging inputs (electron-builder resources, Bun runtime manifests and licenses, committed release notes) under `packaging/`.
-- Build output now lands in `dist/`: packaged apps in `dist/release/`, staged Yomitan and Hachidori in `dist/yomitan/` and `dist/hachidori/`.
diff --git a/changes/session-detail-redesign.md b/changes/session-detail-redesign.md
deleted file mode 100644
index a7f17634..00000000
--- a/changes/session-detail-redesign.md
+++ /dev/null
@@ -1,4 +0,0 @@
-type: changed
-area: stats
-
-- Redesigned the expanded session view in the stats dashboard: stat tiles for pace, lines, known-word rate, lookups, and paused time; a reading density chart of known and unknown words per time slice replaces the cumulative area chart; Yomitan lookups and card-mined markers sit in their own lane under the chart; pause markers and pause shading are gone.
diff --git a/changes/subtitle-sidebar-mpv-key-passthrough.md b/changes/subtitle-sidebar-mpv-key-passthrough.md
deleted file mode 100644
index ef4f373f..00000000
--- a/changes/subtitle-sidebar-mpv-key-passthrough.md
+++ /dev/null
@@ -1,4 +0,0 @@
-type: fixed
-area: overlay
-
-- mpv keys and mouse buttons (such as `9`/`0` volume and double-click fullscreen) pass through the overlay again while the subtitle sidebar is open; only input inside the sidebar stays with it.
diff --git a/docs-site/changelog.md b/docs-site/changelog.md
index 4c02c132..1220a018 100644
--- a/docs-site/changelog.md
+++ b/docs-site/changelog.md
@@ -1,5 +1,28 @@
# Changelog
+## v0.21.1 (2026-10-26)
+
+**Changed**
+- **Stats Session View**: Redesigned the expanded session view in the stats dashboard.
+ - New stat tiles show pace, lines, known-word rate, lookups, and paused time.
+ - A reading density chart of known and unknown words replaces the cumulative chart.
+ - Yomitan lookups and mined cards now appear in their own lane below the chart.
+
+**Fixed**
+- **Subtitle Retiming**: Mining, the subtitle sidebar, subtitle navigation, and replay now use the timing you set with mpv's subtitle delay keys (z/x and sub-step), so mined audio and images match the retimed line.
+- **Subtitle Sidebar**: mpv keys and mouse actions, like volume keys and double-click fullscreen, work again while the sidebar is open.
+
+**Docs**
+- **README**: Refreshed the anime screenshots using the current build.
+
+
+Internal changes
+
+**Internal**
+- **Packaging Layout**: Packaging inputs now live under `packaging/`, and all build output lands in `dist/`, with packaged apps in `dist/release/`.
+
+
+
## v0.21.0 (2026-10-24)
**Added**
diff --git a/package.json b/package.json
index 05b7f9a2..1e5206d9 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "subminer",
"productName": "SubMiner",
"desktopName": "SubMiner.desktop",
- "version": "0.21.0",
+ "version": "0.21.1",
"description": "All-in-one sentence mining overlay with AnkiConnect and dictionary integration",
"packageManager": "bun@1.3.5",
"main": "dist/main-entry.js",
diff --git a/packaging/release-notes/release-notes.md b/packaging/release-notes/release-notes.md
index 0ee4fbf6..0f06cc24 100644
--- a/packaging/release-notes/release-notes.md
+++ b/packaging/release-notes/release-notes.md
@@ -1,47 +1,19 @@
## Highlights
-### Added
-- **Hachidori Dictionary Backend**: Bundled Hachidori backend as an alternative to Yomitan. Select it with `dictionaryBackend` and restart SubMiner.
- - Works with subtitle scanning, popups, frequency highlighting, character dictionaries, Anki mining, and stats dashboard mining.
- - First-run setup builds Hachidori's Anki template from your existing SubMiner deck, tags, and field mappings.
- - Can link an external Hachidori app, browser, or Docker host while Anki mining stays in SubMiner.
- - The tray and dictionary-settings shortcut open the selected backend's settings. `--hachidori` and `--yomitan` open a specific one.
-- **Jellyfin Subtitle Generation**: Japanese subtitle generation now works while playing Jellyfin episodes, with both direct-play and transcoded playback.
+### Changed
+- **Stats Session View**: The expanded session view in the stats dashboard has been redesigned. It shows stat tiles for pace, lines, known-word rate, lookups, and paused time, plus a reading density chart of known and unknown words with lookup and card-mined markers.
### Fixed
-- **Media Timing Review**: Opens on the first try and keeps playback paused while open, even when a dictionary popup closes.
-- **Jellyfin Terminal Playback**:
- - `subminer jellyfin -p` lists libraries when SubMiner is already running, and picker image previews work again.
- - Real errors, like an expired session or an unreachable server, now appear instead of an empty list.
- - Watch progress and played status reach Jellyfin even when cast discovery is off.
- - When it starts SubMiner itself, SubMiner now shows a tray icon and quits when mpv closes.
- - The rofi search step is now a compact input box.
-- **macOS Casting**: Jellyfin casting finds mpv when SubMiner is opened from Finder, the Dock, or Spotlight. `mpv.executablePath` and `SUBMINER_MPV_PATH` are now honored on macOS and Linux.
-- **macOS Launcher PATH**: The command-line launcher no longer shows "Not on PATH" when SubMiner is opened from Finder or the Dock.
-- **Keyboard-Only Mode**: `h`, `l`, and the arrow keys type normally in modals and text fields instead of seeking mpv. Toggling the mode inside a modal no longer turns on a hidden keyboard-only mode.
-- **Halfwidth Katakana**: Halfwidth katakana in subtitles now displays as fullwidth, including in mined cards and the stats dashboard. Stats sentence search matches katakana in either width.
-- **Subtitle Annotations**: Lines shown while two cues overlap now get annotations right away. Prefetching no longer restarts during startup.
-- **Subtitle Sidebar**: The open sidebar does far less work during playback.
-- **Hyprland and Sway**: A slow or hung `hyprctl` or `swaymsg` no longer freezes the app.
-- **Stats Mining**: Cards mined from the stats dashboard keep the selected history line and media.
-- **Security Updates**: Updated Electron, undici, and follow-redirects to fix new security advisories.
+- **Subtitle Delay**: Retiming subtitles in mpv (z/x or sub-step) now carries through SubMiner. Mined card audio, images, and timestamps match the retimed line, and so do the subtitle sidebar, subtitle navigation, and replay.
+- **Subtitle Sidebar**: mpv keys and mouse buttons, such as volume keys and double-click fullscreen, work again while the sidebar is open.
### Docs
-- **Hachidori Setup**: Covers backend selection, Hachidori dictionary and Anki setup, settings flags and shortcuts, and linking an external host.
-- **Jellyfin**: The docs now say SubMiner joins the cast menu at startup only when both `startupWarmups.jellyfinRemoteSession` and `jellyfin.remoteControlAutoConnect` are on. Otherwise, enable **Jellyfin Discovery** in the tray.
-- **Casting and mpv**: Added how casting finds mpv on each platform, a troubleshooting entry for casts that never start mpv, and a note on the macOS 27 Accessibility list rename.
-- **Jimaku Environment Variables**: Removed the unused `SUBMINER_JIMAKU_*` variables from the docs. Set the key with `jimaku.apiKey` or `jimaku.apiKeyCommand` instead.
+- **README**: Refreshed the anime screenshots using the current build.
## What's Changed
-- feat(dictionary): add Hachidori backend support by @ksyasuda in #266
-- fix(jellyfin): make terminal play work with a running app and report progress by @ksyasuda in #288
-- fix(overlay): stop Hyprland/Sway tracker polls from blocking the main thread by @ksyasuda in #289
-- fix(overlay): poll cheap playback state in the open subtitle sidebar by @ksyasuda in #290
-- fix(overlay): keep keyboard mode from swallowing modal and text-field keys by @ksyasuda in #291
-- refactor: remove dead code and enable noUnusedLocals by @ksyasuda in #292
-- feat(subtitles): generate Japanese subtitles during Jellyfin playback by @ksyasuda in #294
-- fix(subtitles): widen halfwidth katakana where subtitle text enters the app by @ksyasuda in #295
-- fix(jellyfin): find mpv when SubMiner is launched from Finder by @ksyasuda in #298
+- fix(overlay): forward mpv input while subtitle sidebar is open by @ksyasuda in #300
+- fix(subtitles): follow mpv sub-delay in mining, sidebar, and navigation by @ksyasuda in #302
+- feat(stats): redesign expanded session view with density chart by @ksyasuda in #304
## Installation