From 0008b55b70194709319af12f83c7ce90e0ba627f Mon Sep 17 00:00:00 2001 From: sudacode Date: Sat, 27 Jun 2026 22:59:28 -0700 Subject: [PATCH] chore(release): prepare v0.17.1 --- CHANGELOG.md | 9 +++++ changes/log-export-local-date.md | 5 --- .../youtube-media-generation-reliability.md | 7 ---- docs-site/changelog.md | 9 +++++ package.json | 2 +- release/release-notes.md | 35 +++++++++++++++++++ 6 files changed, 54 insertions(+), 13 deletions(-) delete mode 100644 changes/log-export-local-date.md delete mode 100644 changes/youtube-media-generation-reliability.md create mode 100644 release/release-notes.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b10fb73..5f2226ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## v0.17.1 (2026-06-27) + +### Added +- YouTube Media Cache Mode: Adds `youtube.mediaCache.mode` with `direct` and `background` options. Background mode uses a yt-dlp cache download when direct stream extraction is unreliable — creates a text-only card immediately, queues media updates for mined notes, and fills audio/image fields once the download finishes. Progress is announced via overlay/OSD notifications. Downloads are capped at 720p by default (`youtube.mediaCache.maxHeight`). Switching back to direct mode cancels any in-flight background download. + +### Fixed +- Log Export: Fixed log filenames to use the local date so exports around UTC midnight include the current day's logs rather than stale prior-day files. Expanded export redaction to mask IPs, emails, auth and cookie headers, yt-dlp cookie arguments, URL credentials, token/key/password fields, and signed YouTube media URL parameters. +- YouTube Card Media: Improved media generation reliability by sending safer ffmpeg options for resolved streams and skipping stale stream maps (including cached YouTube files). Hardened background cache downloads with IPv4 and extractor retry flags; failed downloads now notify the user and clear queued media updates instead of leaving them silently pending. Stale background cache files are cleaned on startup and before each new download. + ## v0.17.0 (2026-06-15) ### Changed diff --git a/changes/log-export-local-date.md b/changes/log-export-local-date.md deleted file mode 100644 index ed988076..00000000 --- a/changes/log-export-local-date.md +++ /dev/null @@ -1,5 +0,0 @@ -type: fixed -area: logs - -- Fixed log filenames to use the user's local date so log export includes the current logs instead of stale prior-day logs around UTC midnight. -- Expanded log export redaction to mask common PII and secrets, including IP addresses, emails, auth/cookie headers, yt-dlp cookie arguments, URL credentials, compound token/key/password fields, and signed YouTube media URL query strings. diff --git a/changes/youtube-media-generation-reliability.md b/changes/youtube-media-generation-reliability.md deleted file mode 100644 index 8c1635c9..00000000 --- a/changes/youtube-media-generation-reliability.md +++ /dev/null @@ -1,7 +0,0 @@ -type: fixed -area: youtube - -- Improved YouTube card media generation by sending safer ffmpeg request options for resolved streams and skipping stale stream maps, including cached YouTube files. -- Added `youtube.mediaCache.mode` with `direct` and `background` modes so YouTube card audio/image extraction can optionally use a background yt-dlp media cache when direct stream extraction is unreliable; background mode now announces cache download start/readiness through queued overlay/OSD notifications, creates text-only cards while the cache downloads, queues media updates for the mined note IDs, fills audio/image fields once the cached file is ready, and caps background downloads at `youtube.mediaCache.maxHeight` 720p by default while honoring height changes between downloads. -- Cleaned stale YouTube background media cache files on startup and before new background downloads, and stopped in-flight background downloads when switching back to direct mode. -- Hardened YouTube media cache downloads with IPv4/extractor retry flags and made failed background downloads notify users and clear queued media updates instead of leaving them pending silently. diff --git a/docs-site/changelog.md b/docs-site/changelog.md index 231ed253..67fd1b0b 100644 --- a/docs-site/changelog.md +++ b/docs-site/changelog.md @@ -1,5 +1,14 @@ # Changelog +## v0.17.1 (2026-06-27) + +**Added** +- YouTube Media Cache Mode: Adds `youtube.mediaCache.mode` with `direct` and `background` options. Background mode uses a yt-dlp cache download when direct stream extraction is unreliable — creates a text-only card immediately, queues media updates for mined notes, and fills audio/image fields once the download finishes. Progress is announced via overlay/OSD notifications. Downloads are capped at 720p by default (`youtube.mediaCache.maxHeight`). Switching back to direct mode cancels any in-flight background download. + +**Fixed** +- Log Export: Fixed log filenames to use the local date so exports around UTC midnight include the current day's logs rather than stale prior-day files. Expanded export redaction to mask IPs, emails, auth and cookie headers, yt-dlp cookie arguments, URL credentials, token/key/password fields, and signed YouTube media URL parameters. +- YouTube Card Media: Improved media generation reliability by sending safer ffmpeg options for resolved streams and skipping stale stream maps (including cached YouTube files). Hardened background cache downloads with IPv4 and extractor retry flags; failed downloads now notify the user and clear queued media updates instead of leaving them silently pending. Stale background cache files are cleaned on startup and before each new download. + ## v0.17.0 (2026-06-15) **Changed** diff --git a/package.json b/package.json index 51746aad..3611bb11 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "subminer", "productName": "SubMiner", "desktopName": "SubMiner.desktop", - "version": "0.17.1-beta.1", + "version": "0.17.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/release/release-notes.md b/release/release-notes.md new file mode 100644 index 00000000..987ce7d2 --- /dev/null +++ b/release/release-notes.md @@ -0,0 +1,35 @@ +## Highlights +### Added + +- **YouTube Media Cache Mode:** New `youtube.mediaCache.mode` setting lets you choose between `direct` (the existing behavior) and `background` modes for extracting audio and images when creating cards from YouTube videos. + - Background mode uses a separate yt-dlp download to cache the video file locally, which can rescue media extraction when direct stream URLs are unreliable or expire quickly. + - While the cache downloads, SubMiner creates a text-only card immediately, then fills in audio and image once the file is ready — no need to re-mine the sentence. + - Cache downloads are capped at 720p by default (`youtube.mediaCache.maxHeight`) to keep file sizes reasonable. + +### Fixed + +- **Log Export:** Log filenames now use your local date, so exporting logs around UTC midnight correctly captures today's file instead of yesterday's. + - Log exports also now redact a broader set of sensitive data — IP addresses, email addresses, auth and cookie headers, yt-dlp cookie arguments, URL credentials, API keys, and signed YouTube media URLs. + +- **YouTube Card Media Generation:** Extraction is more reliable and resilient across a wider range of stream conditions. + - Stale or cached stream maps are skipped automatically, and ffmpeg requests use safer options for resolved streams to reduce failures. + - Background cache downloads retry on network issues (IPv4 and extractor fallbacks), notify you on failure instead of silently hanging, and clean up stale cache files on startup and before each new download. + - Switching back to direct mode now cancels any in-progress background downloads cleanly. + +## What's Changed + +- feat(youtube): add mediaCache mode and safer stream media extraction by @ksyasuda in #130 +- fix(logs): use local date for log filenames and expand export redaction by @ksyasuda in #131 + +## 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`.