mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-10-20 17:01:24 -07:00
* fix(subtitles): widen halfwidth katakana where subtitle text enters the app Broadcast-derived Japanese subs write katakana halfwidth (アンタ, ダキニ), so overlay lines mixed squashed and normal-width text. Normalize live mpv sub-text and parsed cue text to fullwidth so display, lookups, mining, and stats all see one form. The tokenizer reuses the shared helper. * fix(subtitles): fold stray voiced marks and widen before cue dedup - A lone halfwidth ゙ after fullwidth kana (ガ) now composes to ガ instead of leaving a combining mark that broke name matching. - Parsed cue text is widened before duplicate merging so ガク and ガク on the same span collapse into one sidebar row. - The YouTube track-load refresh widens the sub-text it reads directly. * fix(stats): widen halfwidth katakana in stored lines and mined cards (#296) Lines recorded before ingest widening still hold halfwidth katakana. Occurrence and sentence-search queries widen line text on read, and the mine-card route widens the sentence and word it receives, so the dashboard and cards mined from history match newer rows. Word identity columns are left as stored since the dashboard queries by them. * fix(stats): match katakana in either width in sentence search - Add narrowFullwidthKana, derived from widenHalfwidthKana so the two stay in sync - Match subtitle text against the original, widened, and narrowed forms of each term so a search finds older lines stored as halfwidth
Changelog Fragments
Add one .md file per user-visible PR in this directory.
Use this format:
type: added
area: overlay
- Added keyboard navigation for Yomitan popups.
- Added auto-pause toggle when opening the popup.
For breaking changes, add breaking: true:
type: changed
area: config
breaking: true
- Renamed `foo.bar` to `foo.baz`.
Rules:
typerequired:added,changed,fixed,docs, orinternalarearequired: short product area likeoverlay,launcher,releasebreakingoptional: set totrueto flag as a breaking change- each non-empty body line becomes a bullet
README.mdis ignored by the generator- if a PR should not produce release notes, apply the
skip-changeloglabel instead of adding a fragment
PR branch workflow:
- Before adding a fragment or bullet, inspect the
changes/*.mdfiles already changed in the PR - If the new work fixes, modifies, renames, or supersedes behavior introduced or referenced by that fragment, edit or remove the stale bullet instead of adding follow-up churn
- Add a new bullet only when it describes a truly separate user-visible outcome
- Multiple fragment files are allowed when one PR has genuinely separate release-note outcomes, but keep them minimized and current
How fragments turn into a release:
- At release time,
bun run changelog:build(andbun run changelog:prerelease-notes) pipes every pending fragment throughclaude -pto merge related items, drop noise, and rewrite into a clean user-facing release body. Write fragments as raw, informative notes — don't worry about polished prose, deduping across PRs, or line-by-line phrasing. The polish step handles all of that. - The polish step treats pending fragments as the final release outcome, not prerelease history. If a feature is added and then renamed or fixed before the stable cut, ship the final feature bullet instead of separate prerelease-only breaking/fix entries.
CHANGELOG.md, GitHub release notes, and prerelease notes all use one item per feature or area, inline by default:- **Name**: one or two short sentences.Items with several separate changes may use a few short nested bullets instead of a run-on sentence. Items say what changed and how to reach it; implementation details, edge cases, and step-by-step usage belong in the docs, not the release body.internalfragments stay inCHANGELOG.md(inside a collapsed<details>block) but are dropped from the GitHub release notes entirely.- The polished
CHANGELOG.mdandrelease/release-notes.mdare committed and reviewed before tagging — edit the Markdown by hand if Claude misses something.
Prerelease notes:
- prerelease tags like
v0.11.3-beta.1andv0.11.3-rc.1reuse the current pending fragments to generaterelease/prerelease-notes.md - from the second prerelease of a base version onward, the notes also open with a
## Changes since <previous tag>section generated from the fragment diff against the previous beta/RC tag; keep fragment edits meaningful. Editorial-only rewording is filtered out of that section, while genuinely changed behavior and deleted fragments (reverted changes) are reported - existing prerelease notes are a reviewed baseline; later prerelease runs should replace stale beta/RC wording with the current outcome instead of appending fix churn
- prerelease note generation does not consume fragments and does not update
CHANGELOG.mdordocs-site/changelog.md - the final stable release is the point where
bun run changelog:buildconsumes fragments into the stable changelog and release notes