chore: prepare release v0.7.0

This commit is contained in:
2026-03-19 18:04:02 -07:00
parent 43a0d11446
commit 72d78ba1ca
33 changed files with 165 additions and 142 deletions

View File

@@ -1,5 +0,0 @@
type: changed
area: anki
- Changed known-word cache settings to live under `ankiConnect.knownWords` instead of mixing them into `ankiConnect.nPlusOne`.
- Kept legacy `ankiConnect.nPlusOne` known-word keys and older `ankiConnect.behavior.nPlusOne*` keys as deprecated compatibility fallbacks.

View File

@@ -1,4 +0,0 @@
type: fixed
area: launcher
- Fixed mpv Lua plugin binary auto-detection on Linux to also search `/usr/bin/subminer` and `/usr/local/bin/subminer` (lowercase), matching the conventional Unix wrapper name used by packaged installs such as the AUR package.

View File

@@ -1,4 +0,0 @@
type: changed
area: stats
- Added session deletion to the Sessions tab with the same confirmation prompt used by anime episode/session deletes, and removed all associated session rows from the stats database.

View File

@@ -1,4 +0,0 @@
type: fixed
area: stats
- Fixed the in-app stats overlay so it connects to the configured `stats.serverPort` instead of falling back to the default port.

View File

@@ -1,9 +0,0 @@
type: fixed
area: overlay
- Fixed subtitle frequency tagging for merged lookup-backed tokens like `陰に` by falling back to exact surface-form Yomitan frequencies when the normalized headword lookup misses.
- Fixed MeCab merged-token position mapping across line breaks so merged content-plus-particle tokens like `陰に` keep their matched Yomitan frequency instead of inheriting shifted POS tags.
- Fixed grouped frequency parsing in both Yomitan and fallback frequency-dictionary lookups so display values like `118,121` use the leading rank instead of collapsing the rank and occurrence count into `118121`.
- Fixed frequency-rank ingestion to ignore Yomitan dictionaries explicitly marked `occurrence-based`, so raw occurrence counts are no longer treated as subtitle rank values.
- Fixed inflected headword frequency tagging to prefer ranks from the selected Yomitan `termsFind` popup entry itself, ordered by configured dictionary priority, so forms like `潜み` use primary-dictionary ranks like `4073` before falling back to lower-priority raw lemma metadata such as `CC100`.
- Fixed annotation-stage frequency filtering so exact kanji noun tokens like `者` keep their matched rank even when MeCab labels them `名詞/非自立`, instead of dropping the highlight after scan-time frequency lookup succeeds.

View File

@@ -1,4 +0,0 @@
type: fixed
area: anki
- Fixed repeated character-dictionary startup work by scheduling auto-sync only from mpv media-path changes instead of also re-triggering it from connection and media-title events for the same title.

View File

@@ -1,7 +0,0 @@
type: fixed
area: overlay
- Fixed macOS fullscreen overlay stability by keeping the passive visible overlay from stealing focus, re-raising the overlay window when reasserting its macOS topmost level, and tolerating one transient macOS tracker/helper miss before hiding the overlay.
- Kept subtitle tokenization warmup one-shot for the lifetime of the app so later fullscreen/media churn on macOS does not replay the startup warmup gate after the first file is ready.
- Added a bounded macOS tracker loss-grace window so fullscreen enter/leave transitions do not immediately hide and reload the overlay when the helper briefly loses the mpv window.
- Skipped subtitle/tokenization refresh invalidation on character-dictionary auto-sync completion when the dictionary was already current, preventing startup flash/reload loops on unchanged media.

View File

@@ -1,11 +0,0 @@
type: added
area: immersion
- Added Mine Word, Mine Sentence, and Mine Audio buttons to word detail example lines in the stats dashboard.
- Mine Word creates a full Yomitan card (definition, reading, pitch accent) via the hidden search page bridge, then enriches with sentence audio, screenshot, and metadata extracted from the source video.
- Mine Sentence and Mine Audio create cards directly with appropriate Lapis/Kiku flags, sentence highlighting, and media from the source file.
- Media generation (audio + image/AVIF) runs in parallel and respects all AnkiConnect config options.
- Added word exclusion list to the Vocabulary tab with localStorage persistence and a management modal.
- Fixed truncated readings in the frequency rank table (e.g. お前 now shows おまえ instead of まえ).
- Clicking a bar in the Top Repeated Words chart now opens the word detail panel.
- Secondary subtitle text is now stored alongside primary subtitle lines for use as translation when mining cards from the stats page.

View File

@@ -1,8 +0,0 @@
type: changed
area: immersion
- Kept immersion tracking history by default while preserving daily/monthly rollup maintenance.
- Added exact lifetime summary reads for overview/anime/media stats so dashboard totals no longer depend on rescanning raw telemetry.
- Reduced tracker storage overhead by removing duplicated subtitle text from subtitle-line event payloads.
- Deduplicated episode cover-art blobs through a shared blob store and updated cover-art reads/writes to resolve shared images correctly.
- Added indexes for large-history session, telemetry, vocabulary, kanji, and cover-art queries to keep dashboard reads fast as the SQLite database grows.

View File

@@ -1,6 +0,0 @@
type: added
area: stats
- Added `subminer stats -b` to start or reuse a dedicated background stats server without blocking normal SubMiner instances.
- Added `subminer stats -s` to stop the dedicated background stats server without closing browser tabs.
- Stats server startup now reuses a running background stats daemon instead of trying to bind a second local server in another SubMiner instance.

View File

@@ -1,5 +0,0 @@
type: fixed
area: stats
- Fixed session stats so known-word counts track real known-word occurrences without collapsing subtitle-line gaps.
- Fixed session word totals in session-facing stats views to prefer token counts when available, preventing known words from exceeding total words in the session chart.

View File

@@ -1,4 +0,0 @@
type: changed
area: immersion
- Renamed the stats dashboard's Anime tab to Library so the media browser label matches non-anime sources like YouTube and other yt-dlp-backed content.

View File

@@ -1,4 +0,0 @@
type: fixed
area: stats
- Fixed the stats Vocabulary tab blank-screen regression caused by a hook-order crash after vocabulary data finished loading.

View File

@@ -1,5 +0,0 @@
type: changed
area: anilist
- Standardized episode completion threshold by introducing `DEFAULT_MIN_WATCH_RATIO` and using it for both local watched state transitions and AniList post-watch progress updates.
- Episode auto-marking now uses the same threshold as AniList (`85%`), removing divergent completion behavior.

View File

@@ -1,4 +0,0 @@
type: fixed
area: anki
- Fixed card-mine OSD feedback so the final mine result stops the Anki spinner first, then shows a single-line `✓`/`x` status without being overwritten by a later spinner tick.

View File

@@ -1,4 +0,0 @@
type: fixed
area: stats
- Removed the misleading `New words` series from expanded session charts; session detail now shows only the real total-word and known-word lines.

View File

@@ -1,4 +0,0 @@
type: fixed
area: stats
- Restored the cross-anime word table behavior in stats vocabulary surfaces so shared vocabulary entries no longer disappear or merge incorrectly across related media.

View File

@@ -1,5 +0,0 @@
type: fixed
area: stats
- `subminer stats -b` now runs as a standalone background stats daemon instead of reusing the main SubMiner app process, so the overlay app can still be launched separately for normal video watching.
- Dashboard word mining still works against the background daemon by using a short-lived hidden helper for the Yomitan add-note flow.

View File

@@ -1,4 +0,0 @@
type: fixed
area: stats
- Load full session timelines by default in stats session detail views so long sessions preserve complete telemetry history instead of being truncated by a fixed sample limit.

View File

@@ -1,4 +0,0 @@
type: added
area: launcher
- Added launcher passthrough for `-a/--args` so mpv receives raw extra launch flags (`--fs`, `--ytdl-format`, custom audio/video settings, etc.) from the `subminer` command.

View File

@@ -1,5 +0,0 @@
type: fixed
area: stats
- Replaced heuristic stats word counts with Yomitan token counts, so session, media, anime, and trend subtitle totals now come directly from parsed subtitle tokens.
- Updated stats UI labels and lookup-rate copy to refer to tokens instead of words where those counts are shown.

View File

@@ -1,5 +0,0 @@
type: changed
area: overlay
- Excluded interjections and sound-effect tokens from subtitle annotation styling so they no longer inherit misleading lexical highlight treatment while still remaining visible and hoverable as plain subtitle tokens.
- Expanded subtitle annotation noise filtering to also strip annotation metadata from standalone grammar-only helper tokens such as particles, auxiliaries, adnominals, common explanatory endings like `んです` / `のだ`, and merged trailing quote-particle forms like `...って` while keeping them tokenized for hover lookup.

View File

@@ -1,4 +0,0 @@
type: fixed
area: overlay
- Reduced repeated `Overlay loading...` popups on macOS when fullscreen tracker flaps briefly hide and recover the visible overlay.

View File

@@ -1,4 +0,0 @@
type: fixed
area: stats
- Scaled expanded session-detail known-word charts to the session's actual percentage range so small changes no longer render as a nearly flat line.

View File

@@ -1,4 +0,0 @@
type: fixed
area: jlpt
- Reduced JLPT dictionary startup log noise by summarizing duplicate surface-form collisions instead of logging one line per duplicate entry.

View File

@@ -1,6 +0,0 @@
type: added
area: launcher
- Added `subminer stats` to launch the local stats dashboard, force-start the stats server on demand, and open the dashboard in your browser.
- Added `subminer stats cleanup` to backfill vocabulary metadata and prune stale or excluded immersion rows on demand.
- Added `stats.autoOpenBrowser` so browser launch after `subminer stats` can be enabled or disabled explicitly.

View File

@@ -1,7 +0,0 @@
type: added
area: immersion
- Added a local stats dashboard for immersion tracking with Overview, Anime, Trends, Vocabulary, and Sessions views.
- Added anime progress, episode completion, Anki card links, and occurrence drill-down across the stats dashboard.
- Added richer session timelines with new-word activity, cumulative totals, and pause/seek/card event markers.
- Added completed-episodes and completed-anime totals to the Overview tracking snapshot.