v2.4.2
New features
- Saved-source dictionary archives. Imported Yomitan zips persist at
~/.anki_miner/dicts/<dict_id>/source.zip, atomically staged alongsideindex.sqlite. - Reimport All. New Dictionary Settings button walks the chain and reimports every indexed entry in one chained run, with a reimported / skipped / failed summary at the end. Replaces the old "Reimport JMdict" button. Useful to reimport dictionaries after fixes like #28.
Fixes
- Bold target word landed on the wrong characters on subtitle lines with internal spaces (#20). MeCab strips whitespace from the token stream, so cursor arithmetic drifted left of every space. Token spans now resolve via
str.findagainst the raw line. - Bold-target helper text and tooltip rendered literal
<b>markup as HTML.FormPanelhelpers forced to PlainText; tooltip escapes angle brackets. - Re-mining an already-known episode with bold-target enabled produced zero cards with no explanation.
EpisodeProcessornow warns when every parsed word is already in Anki, andAnkiServicelogs a per-batch bold-usage counter. - Monolingual dictionary glosses missing line breaks (#28).
\nin plain-text Yomitan glosses now renders as<br>.\r\nand\rnormalized first. yt-dlpfloor bumped from2026.3.0to2026.3.3inpyproject.tomland the CI floor-version smoke job to skip an upstream regression.
Upgrade notes
- Re-import affected monolingual dictionaries to refresh cached HTML for #28. Existing cards are not rewritten retroactively.
- Dictionaries imported before this release have no saved
source.zip. Reimport All skips them until you re-pick their zip once via the per-row stale-reimport button, which seeds the cache.
Full Changelog: v2.4.1...v2.4.2