sudacode
8711cf1a48
remove redundant isVerbNonIndependent and consolidate test lanes
...
- drop always-true isVerbNonIndependent export; collapse shouldMerge branch
- remove node-compat exclusion list from bun-src-full lane
- simplify test:fast (drop test:runtime:compat), test:env, test:smoke:dist scripts
- rename test:launcher:env:src -> test:env in docs
2026-07-14 19:57:50 -07:00
sudacode
8b2cee2c58
ci: reuse quality gate across CI and release workflows ( #167 )
2026-07-13 23:14:19 -07:00
sudacode
2e2ee3f028
refactor(tsukihime): swap Animetosho backend for TsukiHime API ( #165 )
2026-07-13 22:03:35 -07:00
sudacode
49b926e08c
Sync Stats & History window, headless --sync-cli, and Windows remote support ( #160 )
2026-07-13 18:56:51 -07:00
sudacode
66f8ca4f80
refactor(renderer): extract modal registry for open/dismiss/active queries ( #166 )
2026-07-13 18:16:39 -07:00
sudacode
6fe1e0fee4
refactor(stats): drop dead IPC handlers, unify stats types over HTTP ( #164 )
2026-07-13 12:09:56 -07:00
sudacode
0ab840b362
refactor(tokenizer): extract subtitle annotation filter into rule table ( #162 )
2026-07-12 23:54:13 -07:00
sudacode
21a06c12fb
refactor(tokenizer): consolidate kana/POS helpers into token-classification ( #161 )
2026-07-12 23:27:25 -07:00
sudacode
14070acceb
fix(overlay): defer autoplay release for untokenized startup priming
...
- Autoplay-ready gate now ignores untokenized subtitle payloads while tokenization warmup is pending, so playback doesn't resume before the first tokenized cue
- Wire isTokenizationReady dep through main.ts and update gate/wiring tests accordingly
- Drop stale release/release-notes.md, add changelog entry under changes/
2026-07-12 02:11:10 -07:00
sudacode
7d81342f0f
fix(app): keep AppImage mount alive until Chromium children finish shutdown
...
Background AppImage launches executed directly from a FUSE mount owned by a
short-lived helper's AppImage runtime. On quit, the runtime unmounted the
squashfs while utility children (network service) were still mid-shutdown,
SIGBUSing them and triggering KDE Service Crash notifications on every video
close. Detach a POSIX-sh supervisor instead: mount via --appimage-mount, run
AppRun from the mount, and release the holder only once no process still
executes from the mount. Falls back to the old direct launch on any failure
or with SUBMINER_NO_APPIMAGE_MOUNT_KEEPALIVE=1.
2026-07-12 02:09:42 -07:00
sudacode
4b7f750919
feat(animetosho): add English/Japanese subtitle download integration ( #159 )
2026-07-12 00:48:12 -07:00
sudacode
6ab3d823a4
feat(shortcuts): make clipboard-video-append shortcut configurable ( #158 )
2026-07-11 23:36:44 -07:00
sudacode
8acc78cc1c
test(tokenizer): add golden-file regression corpus with 11 fixtures ( #157 )
2026-07-11 00:50:03 -07:00
sudacode
8712780d08
fix(tokenizer): keep frequency rank for lexicalized kana expressions ( #156 )
2026-07-10 00:54:17 -07:00
sudacode
7b1a005a65
feat(anki): mirror mpv software volume into generated sentence audio ( #155 )
2026-07-10 00:44:23 -07:00
sudacode
db4139ba0b
fix(tokenizer): block kanji reading collisions and name/generic length t
...
- Add allowReadingOnlyMatch:false to kanji token known-word lookups so 渓谷/けいこく no longer matches a mined 警告/けいこく card via reading-only index
- Greedy name pre-pass yields when a strictly longer generic word starts at the same position (空 no longer splits 空気; ties still go to the name)
2026-07-09 01:03:58 -07:00
sudacode
6c251502b3
fix(tokenizer): exclude unparsed-run tokens from annotations and N+1 ( #153 )
2026-07-09 00:28:38 -07:00
sudacode
ae40934d3a
fix(tokenizer): greedy name pre-pass to prevent generic matches swallowing character names ( #151 )
2026-07-08 23:53:45 -07:00
sudacode
a2e49b369b
fix(tokenizer): merge scanner metadata per token instead of all-or-nothi
...
- Replace hasSameTokenSpans + full-discard with mergeScannerTokensIntoParseTokens
- Grafts isNameMatch/frequencyRank/etc onto matching parse spans; filler chunks degrade only themselves
- Fixes name annotations dropping for entire subtitle lines containing unmatched interjections
2026-07-08 22:26:34 -07:00
sudacode
7f13aed50a
fix(overlay): keep frequency/JLPT highlight for kanji non-independent nouns ( #150 )
2026-07-08 22:25:32 -07:00
sudacode
8b21a2bca8
fix(overlay): remove content adverbs from annotation stop-word list
...
- 確かに and やはり no longer excluded from frequency/JLPT highlighting and vocab stats
- Stop-word list now covers only interjections, pronouns, and grammar fragments
2026-07-08 20:15:45 -07:00
sudacode
d0644ab2eb
fix(stats): parse v3 reading-aware known-word cache in stats server ( #149 )
2026-07-08 02:15:58 -07:00
sudacode
d253710c2e
fix(stats): fetch cover art eagerly at session start instead of on series page visit ( #148 )
2026-07-08 00:59:35 -07:00
sudacode
187f68e5b6
fix(tokenizer): prevent grammar tokens from borrowing known-word highlight via unrelated readings ( #147 )
2026-07-07 23:57:47 -07:00
sudacode
61f39d1e09
fix(overlay): resolve unspaced Japanese name splits and scan recovery ( #146 )
2026-07-07 02:33:46 -07:00
sudacode
e7739de51c
fix(tokenizer): keep unparsed Yomitan tokens hoverable ( #145 )
2026-07-07 02:01:04 -07:00
sudacode
ad1d240f20
refactor(tests): centralize lane definitions and add per-file isolation ( #143 )
2026-07-07 01:51:05 -07:00
sudacode
0a58c20ad7
fix(stats): start stats server on background app launch ( #144 )
2026-07-07 00:16:57 -07:00
sudacode
38ddb29aa0
feat(anki): reading-aware known-word matching (cache v3) ( #142 )
2026-07-07 00:13:10 -07:00
sudacode
8b9a70c5a6
feat(stats): Trends dashboard overhaul — title visibility, ranking modes, calendar-accurate windows, tooltips ( #140 )
2026-07-06 23:52:43 -07:00
sudacode
a042b04357
fix(overlay): prevent field grouping modal from freezing overlay on Hyprland ( #138 )
2026-07-06 22:13:14 -07:00
sudacode
35ca2afc6f
fix(overlay): collapse karaoke syllable spam in secondary subtitles ( #139 )
2026-07-06 01:09:06 -07:00
sudacode
b14f977e33
fix(tokenizer): stop partial furigana readings from marking words known ( #137 )
2026-07-05 17:02:44 -07:00
sudacode
73af1451b7
fix(anki): lower audio normalization target to -23 LUFS (EBU R128)
2026-07-05 01:13:54 -07:00
sudacode
36a3704815
fix(youtube): parse mpv EDL stream URLs with byte-length guards ( #134 )
2026-07-02 01:37:37 -07:00
sudacode
359cb0a301
Normalize generated Anki audio by default ( #135 )
2026-07-02 00:34:16 -07:00
sudacode
4b10e85053
chore(release): prepare v0.17.2
2026-06-28 23:03:18 -07:00
sudacode
c942a2cf2d
fFix(youtube): recover source URL for background media cache on direct mpv open ( #132 )
2026-06-28 22:46:11 -07:00
sudacode
f65afa6046
feat(youtube): notify on manual picker open and show success after track load ( #133 )
2026-06-28 22:43:16 -07:00
sudacode
36f94151b8
fix(logs): use local date for log filenames and expand export redaction ( #131 )
2026-06-27 21:08:11 -07:00
sudacode
5326ad32f5
feat(youtube): add mediaCache mode and safer stream media extraction ( #130 )
2026-06-27 19:20:18 -07:00
sudacode
70da3ee8bd
Fix Windows Anki startup and overlay regressions ( #128 )
2026-06-14 20:51:56 -07:00
sudacode
a117c5759c
fix(linux): auto-install managed plugin copy; include in asset updates ( #127 )
2026-06-14 17:25:28 -07:00
sudacode
ae7e6f82a8
fix(overlay): restore macOS Yomitan popup focus without breaking click-away ( #125 )
2026-06-14 16:46:13 -07:00
sudacode
33e767458f
refactor(main): split main.ts into focused runtime modules ( #123 )
2026-06-12 17:35:46 -07:00
sudacode
0a384a22c9
Replace subtitle delay actions with native mpv keybindings ( #120 )
2026-06-12 00:03:06 -07:00
sudacode
b3b45521b6
fix(release): preserve attribution placement; default update notifs to o
...
- Move What's Changed/New Contributors before Installation in release notes
- Preserve committed attribution when regenerating via writeReleaseNotesForVersion
- Change notificationType default from 'both' to 'overlay' for new installs
2026-06-10 23:53:31 -07:00
sudacode
131b23efa9
chore(release): prepare v0.16.0
2026-06-10 23:05:37 -07:00
sudacode
e2afceb492
fix(anki): write sentence card audio only to sentence audio field ( #118 )
2026-06-10 22:51:19 -07:00
sudacode
7be1843c41
feat(notifications): add overlay notifications with position config ( #110 )
2026-06-10 22:46:52 -07:00