From d199376364ce799b455fb7d4e852e3e2ffb7f958 Mon Sep 17 00:00:00 2001 From: sudacode Date: Mon, 15 Jun 2026 01:58:42 -0700 Subject: [PATCH] chore(release): prepare v0.17.0 --- CHANGELOG.md | 35 ++++++++++ changes/anki-highlight-word-fallback.md | 4 -- changes/desktop-notification-icons.md | 4 -- changes/kiku-lapis-word-sentence-card.md | 4 -- changes/linux-support-assets-updates-docs.md | 4 -- changes/linux-support-assets-updates.md | 6 -- changes/macos-yomitan-popup-focus.md | 5 -- changes/overlay-autopause-startup-subtitle.md | 4 -- changes/overlay-mpv-subtitle-keybindings.md | 4 -- changes/overlay-playlist-visible-state.md | 4 -- .../release-notes-attribution-placement.md | 5 -- changes/split-main-runtime-modules.md | 5 -- changes/stats-anilist-title-search.md | 4 -- .../update-notification-default-overlay.md | 4 -- changes/windows-anki-media-startup.md | 5 -- .../windows-character-dictionary-mpv-path.md | 4 -- changes/windows-overlay-hover.md | 4 -- docs-site/changelog.md | 46 ++++++++++++- package.json | 2 +- release/release-notes.md | 68 +++++++++++++++++++ 20 files changed, 147 insertions(+), 74 deletions(-) delete mode 100644 changes/anki-highlight-word-fallback.md delete mode 100644 changes/desktop-notification-icons.md delete mode 100644 changes/kiku-lapis-word-sentence-card.md delete mode 100644 changes/linux-support-assets-updates-docs.md delete mode 100644 changes/linux-support-assets-updates.md delete mode 100644 changes/macos-yomitan-popup-focus.md delete mode 100644 changes/overlay-autopause-startup-subtitle.md delete mode 100644 changes/overlay-mpv-subtitle-keybindings.md delete mode 100644 changes/overlay-playlist-visible-state.md delete mode 100644 changes/release-notes-attribution-placement.md delete mode 100644 changes/split-main-runtime-modules.md delete mode 100644 changes/stats-anilist-title-search.md delete mode 100644 changes/update-notification-default-overlay.md delete mode 100644 changes/windows-anki-media-startup.md delete mode 100644 changes/windows-character-dictionary-mpv-path.md delete mode 100644 changes/windows-overlay-hover.md create mode 100644 release/release-notes.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a0306e7..1b10fb73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ # Changelog +## v0.17.0 (2026-06-15) + +### Changed + +- **Subtitle Delay Keybindings**: Updated default overlay subtitle delay and step bindings to match mpv conventions: `z`, `Z`, and `x` adjust `sub-delay`; `Ctrl+Shift+Left/Right` run native `sub-step` with OSD feedback. The previous SubMiner-only adjacent-cue delay action has been removed. +- **Update Notifications**: New installs now default update notifications to overlay-only instead of overlay + system notifications. + +### Fixed + +- **Anki – Highlight Word**: Fixed bolding of the mined word in Kiku sentence and sentence-furigana fields when the source Yomitan sentence did not already contain bold markup. +- **Anki – Lapis/Kiku Word Cards**: Fixed word-and-sentence marker missing from Lapis/Kiku word cards enriched through SubMiner, which could hide sentence context on the card front. +- **Anki – Windows Media Generation**: Fixed known-word cache refreshes when no deck is configured, and fixed audio/image generation after background launches by recreating missing FFmpeg temp directories before clipping. +- **Character Dictionary – Windows**: Fixed the Windows "SubMiner mpv" shortcut so character dictionary auto-sync can fall back to mpv's current video path when app media state is not yet ready. +- **Notifications**: Restored the SubMiner app icon on system notifications that do not supply a custom notification image. +- **Overlay – macOS Yomitan Popup**: Fixed Yomitan popup focus after card mining or popup reload; fixed popups staying open when clicking transparent overlay space — click-away now closes the popup and returns click passthrough to mpv without a hide/reappear cycle. +- **Overlay – Linux Auto-Pause Startup**: Fixed the visible overlay on Linux auto-paused startup to stay interactive during the initial measurement gap; startup subtitle cache misses now paint raw text before tokenization finishes, and temporarily empty `sub-text` refreshes are resolved before warm readiness resumes playback. +- **Overlay – Playlist Advance**: Fixed the visible overlay being dismissed when mpv advances to the next playlist item, including when the next episode loads after the warm transition delay. +- **Overlay – Windows Subtitle Bar**: Fixed shaky hover and click interaction on the Windows subtitle bar when a video attaches to an already-running background SubMiner instance. +- **Stats – AniList Linking**: Fixed manual AniList linking from the stats anime page so auto-searches strip the generated "Season N" suffix and query only the anime title. +- **Updates – Linux Support Assets**: Fixed Linux updates to correctly install and refresh the launcher runtime plugin copy and rofi theme alongside AppImage and launcher updates; unrelated SubMiner data directories are now left untouched and plugin copies are staged before replacing the live runtime. Fixed first-launch playback on fresh installs by auto-installing missing managed support assets from the bundled app before mpv starts. + +### Docs + +- **Linux Update Flows**: Documented that Linux update flows manage the launcher runtime plugin copy and rofi theme from `subminer-assets.tar.gz`, and that normal launcher playback auto-installs those managed support assets on a fresh install if either is missing. + +
+Internal changes + +### Internal + +- **Runtime Modules**: Split main-process runtime wiring into focused modules without changing user-facing behavior; hardened helpers against stale background stats daemon PIDs, stalled subtitle extraction, and dropped async errors. +- **Release CI**: Fixed GitHub release notes to preserve the `What's Changed` and `New Contributors` attribution sections when CI regenerates from the committed changelog; scoped prerelease note reuse to the same base version so a new beta line starts from current fragments. + +
+ ## v0.16.0 (2026-06-10) ### Breaking Changes diff --git a/changes/anki-highlight-word-fallback.md b/changes/anki-highlight-word-fallback.md deleted file mode 100644 index aac364ea..00000000 --- a/changes/anki-highlight-word-fallback.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: anki - -- Fixed Highlight Word not bolding the mined word in Kiku sentence and sentence-furigana fields when the source Yomitan sentence field did not already contain bold markup. diff --git a/changes/desktop-notification-icons.md b/changes/desktop-notification-icons.md deleted file mode 100644 index 5fcf912a..00000000 --- a/changes/desktop-notification-icons.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: notifications - -- Restored the SubMiner app icon on system notifications that do not provide a custom notification image. diff --git a/changes/kiku-lapis-word-sentence-card.md b/changes/kiku-lapis-word-sentence-card.md deleted file mode 100644 index b8c00609..00000000 --- a/changes/kiku-lapis-word-sentence-card.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: anki - -- Fixed Lapis/Kiku word cards enriched through SubMiner missing the word-and-sentence marker, which could hide sentence context on the card front. diff --git a/changes/linux-support-assets-updates-docs.md b/changes/linux-support-assets-updates-docs.md deleted file mode 100644 index 4312c3cc..00000000 --- a/changes/linux-support-assets-updates-docs.md +++ /dev/null @@ -1,4 +0,0 @@ -type: docs -area: updates - -- Documented that Linux update flows manage the launcher runtime plugin copy and rofi theme from `subminer-assets.tar.gz`, and that normal launcher playback auto-installs those managed support assets if either one is missing. diff --git a/changes/linux-support-assets-updates.md b/changes/linux-support-assets-updates.md deleted file mode 100644 index 1a4e616b..00000000 --- a/changes/linux-support-assets-updates.md +++ /dev/null @@ -1,6 +0,0 @@ -type: fixed -area: updates - -- Fixed Linux updates so the managed support-asset install now creates and refreshes both the launcher runtime plugin copy and the rofi theme alongside AppImage and launcher updates. -- Fixed Linux support-asset refreshes so unrelated SubMiner data directories are left alone and plugin copies are staged before replacing the live runtime plugin. -- Fixed first Linux launcher playback on fresh installs by auto-installing the managed runtime plugin copy and rofi theme from the bundled app before mpv starts when either support asset is missing. diff --git a/changes/macos-yomitan-popup-focus.md b/changes/macos-yomitan-popup-focus.md deleted file mode 100644 index b5aa84d5..00000000 --- a/changes/macos-yomitan-popup-focus.md +++ /dev/null @@ -1,5 +0,0 @@ -type: fixed -area: overlay - -- Fixed macOS Yomitan popup focus after card mining or popup reload while still allowing click-away to close the popup without a hide/reappear cycle. -- Fixed macOS Yomitan popups staying open when clicking transparent overlay space; click-away is captured for popup close, then passthrough returns to mpv. diff --git a/changes/overlay-autopause-startup-subtitle.md b/changes/overlay-autopause-startup-subtitle.md deleted file mode 100644 index b78c2ac4..00000000 --- a/changes/overlay-autopause-startup-subtitle.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: overlay - -- Fixed auto-paused Linux visible overlay startup so the overlay stays interactive during the first measurement gap, startup subtitle cache misses paint raw text before tokenization finishes, and temporarily empty mpv `sub-text` refreshes parsed cues before synthetic warm readiness can resume playback. diff --git a/changes/overlay-mpv-subtitle-keybindings.md b/changes/overlay-mpv-subtitle-keybindings.md deleted file mode 100644 index b724b9fe..00000000 --- a/changes/overlay-mpv-subtitle-keybindings.md +++ /dev/null @@ -1,4 +0,0 @@ -type: changed -area: overlay - -- Updated default overlay subtitle delay/step bindings to match mpv: `z`, `Z`, and `x` adjust `sub-delay`; `Ctrl+Shift+Left/Right` run native `sub-step` and show subtitle delay on the OSD. Removed the old SubMiner-only adjacent-cue delay action. diff --git a/changes/overlay-playlist-visible-state.md b/changes/overlay-playlist-visible-state.md deleted file mode 100644 index 76764550..00000000 --- a/changes/overlay-playlist-visible-state.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: overlay - -- Kept the visible overlay active while mpv advances to the next playlist item, even when the next episode loads after the warm transition delay. diff --git a/changes/release-notes-attribution-placement.md b/changes/release-notes-attribution-placement.md deleted file mode 100644 index f49354ee..00000000 --- a/changes/release-notes-attribution-placement.md +++ /dev/null @@ -1,5 +0,0 @@ -type: fixed -area: release - -- Kept the GitHub release `What's Changed` and `New Contributors` attribution sections when CI regenerates release notes from the committed changelog. -- Scoped prerelease note reuse to the same base version so a new beta line starts from current fragments instead of stale notes from older prereleases. diff --git a/changes/split-main-runtime-modules.md b/changes/split-main-runtime-modules.md deleted file mode 100644 index 01c10c1f..00000000 --- a/changes/split-main-runtime-modules.md +++ /dev/null @@ -1,5 +0,0 @@ -type: internal -area: runtime - -- Split main-process runtime wiring into focused modules without changing user-facing behavior. -- Hardened split runtime helpers against stale background stats daemon PIDs, stalled subtitle extraction, and dropped async errors. diff --git a/changes/stats-anilist-title-search.md b/changes/stats-anilist-title-search.md deleted file mode 100644 index 23e0c02f..00000000 --- a/changes/stats-anilist-title-search.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: stats - -- Fixed manual AniList linking from the stats anime page so automatic searches drop the generated `Season N` suffix and search only the anime title. diff --git a/changes/update-notification-default-overlay.md b/changes/update-notification-default-overlay.md deleted file mode 100644 index 7e521426..00000000 --- a/changes/update-notification-default-overlay.md +++ /dev/null @@ -1,4 +0,0 @@ -type: changed -area: updates - -- New installs now default update notifications to overlay-only instead of overlay + system notifications. diff --git a/changes/windows-anki-media-startup.md b/changes/windows-anki-media-startup.md deleted file mode 100644 index 8bd45ed8..00000000 --- a/changes/windows-anki-media-startup.md +++ /dev/null @@ -1,5 +0,0 @@ -type: fixed -area: anki - -- Fixed known-word cache refreshes without a configured deck by using AnkiConnect's valid all-notes query instead of `is:note`. -- Fixed Windows media generation after background launches by recreating missing FFmpeg temp output directories before clipping audio or images. diff --git a/changes/windows-character-dictionary-mpv-path.md b/changes/windows-character-dictionary-mpv-path.md deleted file mode 100644 index 53a21696..00000000 --- a/changes/windows-character-dictionary-mpv-path.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: dictionary - -- Fixed Windows `SubMiner mpv` shortcut launches so character dictionary auto-sync can fall back to mpv's current video path when app media state is not ready yet. diff --git a/changes/windows-overlay-hover.md b/changes/windows-overlay-hover.md deleted file mode 100644 index 497d866e..00000000 --- a/changes/windows-overlay-hover.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: overlay - -- Fixed shaky Windows subtitle-bar hover/click interaction when a video attaches to an already-running background SubMiner app. diff --git a/docs-site/changelog.md b/docs-site/changelog.md index 969a7f7e..231ed253 100644 --- a/docs-site/changelog.md +++ b/docs-site/changelog.md @@ -1,6 +1,46 @@ # Changelog -## v0.16.0 (2026-06-10) +## v0.17.0 (2026-06-15) + +**Changed** + +- **Subtitle Delay Keybindings**: Updated default overlay subtitle delay and step bindings to match mpv conventions: `z`, `Z`, and `x` adjust `sub-delay`; `Ctrl+Shift+Left/Right` run native `sub-step` with OSD feedback. The previous SubMiner-only adjacent-cue delay action has been removed. +- **Update Notifications**: New installs now default update notifications to overlay-only instead of overlay + system notifications. + +**Fixed** + +- **Anki – Highlight Word**: Fixed bolding of the mined word in Kiku sentence and sentence-furigana fields when the source Yomitan sentence did not already contain bold markup. +- **Anki – Lapis/Kiku Word Cards**: Fixed word-and-sentence marker missing from Lapis/Kiku word cards enriched through SubMiner, which could hide sentence context on the card front. +- **Anki – Windows Media Generation**: Fixed known-word cache refreshes when no deck is configured, and fixed audio/image generation after background launches by recreating missing FFmpeg temp directories before clipping. +- **Character Dictionary – Windows**: Fixed the Windows "SubMiner mpv" shortcut so character dictionary auto-sync can fall back to mpv's current video path when app media state is not yet ready. +- **Notifications**: Restored the SubMiner app icon on system notifications that do not supply a custom notification image. +- **Overlay – macOS Yomitan Popup**: Fixed Yomitan popup focus after card mining or popup reload; fixed popups staying open when clicking transparent overlay space — click-away now closes the popup and returns click passthrough to mpv without a hide/reappear cycle. +- **Overlay – Linux Auto-Pause Startup**: Fixed the visible overlay on Linux auto-paused startup to stay interactive during the initial measurement gap; startup subtitle cache misses now paint raw text before tokenization finishes, and temporarily empty `sub-text` refreshes are resolved before warm readiness resumes playback. +- **Overlay – Playlist Advance**: Fixed the visible overlay being dismissed when mpv advances to the next playlist item, including when the next episode loads after the warm transition delay. +- **Overlay – Windows Subtitle Bar**: Fixed shaky hover and click interaction on the Windows subtitle bar when a video attaches to an already-running background SubMiner instance. +- **Stats – AniList Linking**: Fixed manual AniList linking from the stats anime page so auto-searches strip the generated "Season N" suffix and query only the anime title. +- **Updates – Linux Support Assets**: Fixed Linux updates to correctly install and refresh the launcher runtime plugin copy and rofi theme alongside AppImage and launcher updates; unrelated SubMiner data directories are now left untouched and plugin copies are staged before replacing the live runtime. Fixed first-launch playback on fresh installs by auto-installing missing managed support assets from the bundled app before mpv starts. + +**Docs** + +- **Linux Update Flows**: Documented that Linux update flows manage the launcher runtime plugin copy and rofi theme from `subminer-assets.tar.gz`, and that normal launcher playback auto-installs those managed support assets on a fresh install if either is missing. + +
+Internal changes + +**Internal** + +- **Runtime Modules**: Split main-process runtime wiring into focused modules without changing user-facing behavior; hardened helpers against stale background stats daemon PIDs, stalled subtitle extraction, and dropped async errors. +- **Release CI**: Fixed GitHub release notes to preserve the `What's Changed` and `New Contributors` attribution sections when CI regenerates from the committed changelog; scoped prerelease note reuse to the same base version so a new beta line starts from current fragments. + +
+ +## Previous Versions + +
+v0.16.x + +

v0.16.0 (2026-06-10)

**Breaking Changes** @@ -24,7 +64,7 @@ - **Stats Browsing**: Remembers library card size; retries stored cover art without extra AniList lookups; preserves PNG/WebP MIME types; honors custom AnkiConnect URLs for Browse; shows progress during session deletes. - **Startup Notifications**: Tokenization, subtitle annotation, and character dictionary status now route through queued overlay notifications in `overlay`/`both` mode instead of falling back to mpv OSD while the overlay loads. - **Notification Deduplication**: Cycling subtitle modes updates the active overlay card in place rather than stacking duplicates; repeated progress updates (e.g. subsync) tick in place without flickering. -- **Update Notification Default**: New installs default `notificationType` to `overlay`, while `both` remains available for overlay + system notifications. +- **Update Notification Default**: New installs default `notificationType` to `both` so update alerts appear in both overlay and system notifications. **Fixed** @@ -48,7 +88,7 @@
-## Previous Versions +
v0.15.x diff --git a/package.json b/package.json index 8941e4a5..1793e0eb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "subminer", "productName": "SubMiner", "desktopName": "SubMiner.desktop", - "version": "0.17.0-beta.2", + "version": "0.17.0", "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/release/release-notes.md b/release/release-notes.md new file mode 100644 index 00000000..6ee812a8 --- /dev/null +++ b/release/release-notes.md @@ -0,0 +1,68 @@ +## Highlights +### Changed + +- **Subtitle Delay Keybindings:** Overlay subtitle delay controls now match mpv's native bindings. + - `z`, `Z`, and `x` adjust subtitle delay; `Ctrl+Shift+Left/Right` step to the adjacent subtitle and show the current delay on the OSD. + - Removes the old SubMiner-specific adjacent-cue delay action in favor of mpv's built-in `sub-step`. + +- **Update Notifications:** New installs now default to overlay-only update notifications instead of also sending a system notification. + +### Fixed + +- **Anki — Highlight Word:** The mined word is now correctly bolded in Kiku sentence and sentence-furigana fields even when the source Yomitan sentence did not already contain bold markup. + +- **Anki — Lapis/Kiku Word Cards:** Word cards enriched through SubMiner now correctly include the word-and-sentence marker, restoring sentence context on the card front. + +- **Anki — Windows:** Fixed two issues that surfaced after background app launches on Windows. + - Audio clip and image generation now works correctly by recreating missing FFmpeg temp directories before export. + - Known-word cache refreshes no longer fail when no deck is configured. + +- **Desktop Notifications:** Restored the SubMiner app icon on system notifications that do not supply their own image. + +- **Dictionary — Windows:** The character dictionary auto-sync on `SubMiner mpv` shortcut launches can now fall back to mpv's current video path when app media state is not yet ready. + +- **Overlay — macOS Yomitan Popup:** Fixed focus and dismiss behavior for the Yomitan popup on macOS. + - Popup focus is correctly restored after mining a card or reloading the popup. + - Clicking on transparent overlay space now properly closes the popup and passes the click through to mpv, with no hide/reappear cycle. + +- **Overlay — Linux Startup:** Fixed several edge cases that could leave the overlay unresponsive or drop subtitles at startup when auto-pause was active. + - The overlay stays interactive during the initial render measurement gap. + - Subtitles paint as plain text immediately on cache misses, before tokenization finishes. + - Temporarily empty subtitle state is now re-parsed correctly before warm readiness resumes playback. + +- **Overlay — Playlist Advance:** The visible overlay now stays interactive when mpv advances to the next playlist item, including when the next episode loads after the warm transition delay. + +- **Overlay — Windows:** Fixed shaky subtitle-bar hover and click behavior when a video connects to an already-running background SubMiner instance. + +- **Stats — AniList Search:** Manual AniList linking from the stats anime page now searches only the anime title, dropping any generated "Season N" suffix that was causing failed lookups. + +- **Updates — Linux:** Improved Linux update reliability for managed support assets. + - Updates now correctly install and refresh both the launcher runtime plugin copy and the rofi theme alongside AppImage and launcher updates. + - Support-asset refreshes no longer touch unrelated SubMiner data directories, and plugin copies are staged safely before replacing the live runtime plugin. + - Fresh installs now auto-install the managed runtime plugin and rofi theme from the bundled app on first launcher playback if either asset is missing. + +### Docs + +- **Linux Updates:** Documented how Linux update flows manage the launcher runtime plugin and rofi theme, and that the first launcher playback auto-installs any missing managed support assets from the bundled app. + +## What's Changed + +- Replace subtitle delay actions with native mpv keybindings by @ksyasuda in #120 +- fix(stats): strip Season N suffix from AniList title searches by @ksyasuda in #121 +- fix(overlay): preserve visible state across playlist item transitions by @ksyasuda in #124 +- fix(overlay): restore macOS Yomitan popup focus without breaking click-away by @ksyasuda in #125 +- fix(linux): auto-install managed plugin copy; include in asset updates by @ksyasuda in #127 +- Fix Windows Anki startup and overlay regressions by @ksyasuda in #128 + +## Installation + +See the README and docs/installation guide for full setup steps. + +## Assets + +- Linux: `SubMiner.AppImage` +- macOS: `SubMiner-*.dmg` and `SubMiner-*.zip` +- Windows: `SubMiner-*.exe` and `SubMiner-*-win.zip` +- Optional extras: `subminer-assets.tar.gz` and the `subminer` launcher + +Note: the `subminer` wrapper script uses Bun (`#!/usr/bin/env bun`), so `bun` must be installed and on `PATH`.