sudacode
962442ccd5
fix(launcher): address review feedback on setup and runtime cleanup
2026-09-10 13:32:12 -07:00
sudacode
8c7ad75033
fix(launcher): preserve arguments through Windows command wrappers
2026-09-10 13:22:04 -07:00
sudacode
1213203228
feat(launcher): use private Bun for all release launchers
2026-09-10 13:14:16 -07:00
sudacode
84b234cc19
feat(launcher): bundle a private Bun runtime
2026-09-10 12:22:29 -07:00
sudacode
614a8ca912
fix(startup): create config directory before singleton lock ( #242 )
2026-09-09 12:04:08 -07:00
sudacode
9eecb7358b
docs: refresh user-facing guides and examples
...
- Clarify current integration, media review, and Anki behavior
- Remove obsolete AI translation and configuration references
- Standardize headings and prose across docs
2026-09-08 00:23:38 -07:00
sudacode
1e5d7747b4
feat(sidebar): add dialogue selection and copying ( #238 )
2026-09-07 14:03:54 -07:00
sudacode
c14c690875
chore(release): prepare v0.19.6
2026-09-04 01:59:39 -07:00
sudacode
84f718043a
feat(anki): add media timing review before card creation ( #203 )
2026-09-04 01:40:56 -07:00
sudacode
99266294b8
fix(tsukihime): filter releases by subtitle language ( #235 )
2026-09-02 20:29:59 -07:00
sudacode
c055359be1
chore(deps): update fast-uri to 3.1.6
2026-09-02 20:16:08 -07:00
sudacode
ec5a147095
fix(subtitles): merge wrapped positioned caption rows ( #234 )
2026-09-01 23:11:38 -07:00
sudacode
a0635f4360
fix(subtitles): drop ASS furigana from recorded cues ( #233 )
2026-09-01 22:49:20 -07:00
sudacode
c0a78ef008
feat(anki): support Senren scene-switching field grouping ( #230 )
2026-09-01 22:18:30 -07:00
sudacode
87b01155df
fix(mining): copy multi-line subtitles backward from current line ( #231 )
2026-09-01 22:17:41 -07:00
sudacode
fc5c49e365
fix(subtitles): keep native secondary subtitles hidden ( #232 )
...
- Reapply hidden visibility after secondary track changes
- Relinquish suppression only after successful restoration
2026-09-01 00:49:37 -07:00
sudacode
a20269e9f5
fix(jellyfin): stop inferring subtitle delays ( #227 )
2026-08-31 23:31:31 -07:00
sudacode
2ad491e95c
chore(release): prepare v0.19.5
2026-08-30 01:02:44 -07:00
sudacode
6fffcc731f
fix(youtube): keep auto captions on screen for their full span ( #219 )
2026-08-29 13:18:55 -07:00
sudacode
5cc21113fd
fix(subtitles): drop ASS furigana from published cues ( #224 )
2026-08-29 13:15:30 -07:00
sudacode
051140f910
fix(anki): respect configured fields for word-card enrichment ( #223 )
2026-08-29 13:09:31 -07:00
sudacode
6e945f0872
fix(subtitles): keep overlapping lines that join an already active cue ( #221 )
2026-08-27 23:13:29 -07:00
sudacode
c2c25c0da6
fix(anki): keep overlay progress visible through card updates ( #218 )
2026-08-25 20:27:58 -07:00
sudacode
556de61756
chore(changelog): split release details into nested bullets
...
- Update changelog generation guidance and tests
- Reformat current release notes and document the new style
2026-08-25 12:39:45 -07:00
sudacode
a98fb0fddf
chore(release): prepare v0.19.4
2026-08-25 02:43:48 -07:00
sudacode
e816b3b371
fix(subtitles): recover positioned ASS word spacing and drop control debris ( #217 )
2026-08-25 02:22:21 -07:00
sudacode and sudacode
ed7d3f4c3d
feat(release): track prerelease deltas and validate committed notes ( #216 )
...
Co-authored-by: sudacode <claude@lmaoxd.lol >
2026-08-23 15:24:18 -07:00
sudacode
509dc5bf7f
fix(subtitles): improve secondary subtitle extraction and display ( #215 )
2026-08-23 01:56:49 -07:00
sudacode
0a0aa3ec98
chore(release): prepare v0.19.4-beta.4
2026-08-23 01:23:16 -07:00
sudacode
b87cc3cfdd
chore(workflow): add release skill
2026-08-23 01:14:03 -07:00
sudacode
8cb3c8c90a
fix(macos): pin window helper deployment target to fix older systems
...
- Build the Swift window-tracking helper with an explicit `-target ...-apple-macos12.0` instead of letting swiftc stamp the build machine's OS, so the overlay attaches to mpv on older macOS (e.g. Ventura) instead of crashing at load
- Fold the standalone build-macos-helper.sh into prepare-build-assets.mjs and update docs/tests to match
2026-08-23 00:58:24 -07:00
sudacode
03ea903927
fix(subtitles): preserve authored spaces in fragmented ASS karaoke
...
- Only trim indentation before slicing ASS event fields so a trailing authored space at a fragment's end is kept, preventing words from being joined together when fragmented karaoke lines are reconstructed
- Add regression test covering event-boundary word spacing
2026-08-22 23:32:35 -07:00
sudacode
3aea42e6f8
chore(release): prepare v0.19.4-beta.3
2026-08-21 23:25:37 -07:00
sudacode
88bb3edfa4
fix(subtitles): preserve lyric selection and deduplicate secondary text
...
- Seek sidebar selections past overlapping karaoke exit spans
- Collapse duplicate long ASS lines and omit reconstructed sign grids
2026-08-21 01:28:00 -07:00
sudacode
9445aef004
fix(subtitles): navigate by sanitized cues across ASS animation
...
- Route subtitle navigation through parsed cue boundaries
- Treat explicit short seeks as subtitle priming events
2026-08-20 00:20:51 -07:00
sudacode
c01bcd9d0f
fix(subtitles): collapse layered ASS lyrics across startup and seeks
...
- Reconstruct fragment-only karaoke while preserving canonical animated signs
- Reprocess live subtitles after initial playback and seek updates
- Add a development launcher for playable media files
2026-08-19 22:55:10 -07:00
sudacode
695613b1e7
chore(release): prepare v0.19.4-beta.2
2026-08-19 02:19:40 -07:00
sudacode
20797772f8
fix(character-dictionary): cache completed MeCab refreshes ( #212 )
2026-08-19 01:49:15 -07:00
sudacode
72c312810a
docs: link README demo to GitHub video playback
...
- Use GitHub-hosted video playback for the README demo
- Document the animated fallback behavior
2026-08-19 01:02:05 -07:00
sudacode
b61f050e78
docs: update mining demo and scale video crops
...
- Refresh mining demo assets and documentation references
- Scale mpv crop coordinates for resized OBS recordings
2026-08-19 00:55:31 -07:00
sudacode
2a77ba9dd4
fix(launcher): restore Matroska thumbnails in Linux rofi picker ( #210 )
2026-08-18 20:30:58 -07:00
sudacode
4ed878270f
fix(stats): accept legacy lexical rollup state schemas
2026-08-18 02:24:49 -07:00
sudacode
1d1b0c7bb6
fix(subtitles): collapse duplicate primary ASS style layers
...
- Use parsed cues when they fully explain mpv live text
- Preserve unmatched overlapping dialogue and signs
2026-08-18 01:51:19 -07:00
sudacode
db61ce358d
fix(stats): preserve session rollups across schema upgrades
...
- Stop deleting imm_daily_rollups/imm_monthly_rollups on unrelated schema version bumps; their source session/telemetry rows may already be pruned, so deleted buckets could not be rebuilt
- Run startup session-rollup maintenance before the lexical rollup backfill takes the write lock, so recovery no longer races playback writes
- Update the vocabulary summary totals changelog fragment to reflect that watch-time, activity, efficiency, and library charts are no longer cleared during rebuilds
2026-08-18 01:12:58 -07:00
sudacode
e9778a945a
fix(overlay): deduplicate secondary subtitle rendering ( #208 )
2026-08-18 00:44:02 -07:00
sudacode
7de73e16a1
fix(stats): report complete vocabulary totals and new-word history ( #202 )
2026-08-18 00:42:46 -07:00
sudacode
273652f781
fix(subtitles): recover canonical lines from ASS animation ( #207 )
2026-08-18 00:30:48 -07:00
sudacode
14c0086520
chore(stats): reword duplicates popup
2026-08-17 18:42:58 -07:00
sudacode
ff0bc0af6d
fix(dictionary): prevent freezes and restore AppImage notifications ( #205 )
2026-08-17 18:41:03 -07:00
sudacode
00b1b79bf4
fix(mpv): recover from stalled IPC connects ( #204 )
2026-08-16 22:58:28 -07:00
sudacode
e11a5fea0d
chore(release): prepare v0.19.4-beta.1
2026-08-16 02:00:32 -07:00
sudacode
f73fe179d0
fix(docs): keep versioned pages out of search indexes
...
- Add self-canonical noindex signals and headers for archived docs
- Restore sitemap lastmod dates from the tracked checkout
2026-08-16 01:45:08 -07:00
sudacode
2938e7a32a
fix(overlay): prevent Windows mouse lag during click-through tracking ( #201 )
2026-08-16 01:34:51 -07:00
sudacode
82f6b4705a
fix(overlay): recycle Windows modal windows after close
...
- Refresh the hidden modal renderer between Windows sessions
- Add regression coverage and stabilize launcher completion testing
2026-08-16 01:10:07 -07:00
sudacode
a02c33dac4
fix(overlay): keep macOS modal windows on fullscreen Spaces ( #200 )
2026-08-15 21:43:26 -07:00
sudacode
2174e689a2
fix(overlay): support native Wayland file drag-and-drop ( #199 )
2026-08-15 00:15:38 -07:00
sudacode
7d729cb60c
fix(notifications): replace Linux progress updates in place ( #198 )
2026-08-14 22:20:33 -07:00
sudacode
d963def1a9
fix(stats): subtract lifetime totals incrementally on delete ( #196 )
2026-08-14 22:13:59 -07:00
sudacode
6fb3d2eb13
feat(stats): add library entry merge and episode move ( #190 )
2026-08-14 21:54:17 -07:00
sudacode
c5a77ac067
fix(anki): snapshot mining media clip timing ( #197 )
2026-08-14 21:50:32 -07:00
sudacode
8ddc151435
docs: hide unfinished feature demos from sidebar
2026-08-14 21:50:08 -07:00
sudacode
b98d4d65c7
fix(stats): stop counting duplicate typeset subtitle lines ( #191 )
2026-08-14 00:12:56 -07:00
sudacode
046e74ea91
chore(workflow): simplify agent tooling and docs
2026-08-13 23:34:04 -07:00
sudacode
8bf847503d
fix(media): tolerate slow MKV audio extraction ( #195 )
2026-08-13 23:19:22 -07:00
sudacode
47b5903392
chore(release): prepare v0.19.3
2026-08-13 23:02:57 -07:00
sudacode
bf85554d1e
fix(stats): batch deletes off the main thread ( #194 )
2026-08-13 22:31:52 -07:00
sudacode
d74c7e1235
chore: add Claude instructions symlink and update js-yaml
2026-08-11 22:31:26 -07:00
sudacode
57ddd19953
fix(overlay): handle X11 display scaling across monitors ( #193 )
2026-08-11 22:24:01 -07:00
sudacode
ee25536d90
fix(dictionary): stop large character dictionaries from timing out ( #189 )
2026-08-11 18:40:18 -07:00
sudacode
7b0fbdf254
fix(subtitles): collapse duplicate ASS events and decode text once ( #186 )
2026-08-10 22:21:44 -07:00
sudacode
2fefc83e3f
fix(playback): stop forcing legacy OpenGL renderer on X11 mpv backend ( #188 )
2026-08-06 23:52:35 -07:00
sudacode
dbdf578c68
perf(tokenizer): single-pass Yomitan scan with cross-line caching and prefetch fixes ( #185 )
2026-08-06 21:44:09 -07:00
sudacode
441ecf3c04
feat(overlay): add in-app changelog modal ( #187 )
2026-08-05 22:19:13 -07:00
sudacode
a0dde4ee3e
chore(release): v0.19.2
2026-08-04 18:51:15 -07:00
sudacode
fe4dacc1e7
fix(overlay): show plain subtitle line immediately on tokenization cache miss ( #184 )
2026-08-04 01:55:52 -07:00
sudacode
b08cd0db35
fix(streaming): keep subtitle tokenization prefetch warm for full episodes ( #183 )
2026-08-03 21:22:18 -07:00
sudacode
bffb1c5982
fix(logging): surface subtitle processing debug/warn logs ( #182 )
2026-08-03 20:44:39 -07:00
sudacode
5b8848518a
feat(subsync): add reference and target subtitle track picker ( #181 )
2026-08-03 01:00:14 -07:00
sudacode
176edd67f1
chore(release): v0.19.1
2026-08-01 23:59:20 -07:00
sudacode
4d65dec340
fix(youtube): prevent playlist URLs from stalling yt-dlp probes ( #180 )
2026-08-01 22:56:28 -07:00
sudacode
6607c333bc
fix(overlay): strip spinner frame from subsync overlay card
...
- Add overlayBody override to ConfiguredStatusNotificationOptions so overlay/OSD/desktop can diverge
- Extract getSubsyncStatusNotificationOptions() to strip the ASCII spinner frame from the overlay card (OSD keeps it since it renders the raw spinner)
- Add tests for spinner stripping and subsync result notifications
2026-07-31 18:03:26 -07:00
sudacode
b2bbf1ae12
chore: regenerate config example artifacts
2026-07-31 17:49:02 -07:00
sudacode
b204d4dd6e
feat(anki): add configurable word card type for Kiku/Lapis ( #175 )
2026-07-31 17:17:29 -07:00
sudacode
89ed675935
fix(overlay): keep Yomitan popup interactive on macOS/Windows ( #177 )
2026-07-30 19:47:08 -07:00
sudacode
1995200e76
chore(release): prepare v0.19.0
2026-07-29 22:26:03 -07:00
sudacode
e876e483d6
chore(release): prepare v0.19.0-beta.5
2026-07-29 02:09:01 -07:00
sudacode
6d2a72e13b
feat(stats): add library entry deletion and app-wide delete progress ( #174 )
2026-07-29 02:00:16 -07:00
sudacode
0d7084c8aa
fix(anilist): resolve later seasons via sequel relations, not title guessing ( #173 )
2026-07-28 22:56:26 -07:00
sudacode
95e0abc7b7
test(immersion): apply runtime SQLite pragmas in query tests
...
The query test suite opened each temp database with SQLite's defaults
(rollback journal, synchronous=FULL) while the runtime opens them via
applyPragmas (WAL, synchronous=NORMAL). Every statement therefore ran as
its own fsync-ing transaction.
That is unnoticeable on a fast local disk but dominates on CI: the file
took 40.6s there versus 0.5s locally, and the 106-insert case
'getVocabularyStats pages past hidden rows' crossed the 5s per-test
timeout and failed the quality gate.
Open test databases through a helper that applies the same pragmas as
production, so the tests exercise the runtime's actual SQLite
configuration instead of a slower one.
2026-07-28 02:23:16 -07:00
sudacode
d9155ceacb
docs: update requirements table and Windows install instructions
...
- Add TsukiHime and AniSkip to feature table; note xz dependency
- Clarify Anki+AnkiConnect is required to mine, not to run
- Rework Windows setup with winget/scoop commands and PATH steps
- Note ffmpeg has no path-override setting, unlike mpv
- Fix screenshot alt text and installation.md anchor link
2026-07-28 02:10:50 -07:00
sudacode
9d0585423c
chore(release): prepare v0.19.0-beta.4
2026-07-28 01:09:48 -07:00
sudacode
455cfff90a
docs: fix inaccuracies and add link/anchor validation tests
...
- Generate config.example.jsonc with a Linux socket path instead of Windows, so the example stays reproducible across platforms
- Document TsukiHime config (`tsukihime.*`), maturity-based known-word highlighting keys, and other config surfaces missing from the reference
- Correct secondary-subtitle auto-load defaults and Anki field-matching (case-insensitive) claims
- Expand Windows installation guide with winget/Scoop package tables and manual PATH setup
- Add docs-site/links.test.ts to catch broken internal links and heading-anchor mismatches
- Fix stale cross-references in jimaku-integration.md and demos.md
2026-07-28 00:56:38 -07:00
sudacode
987b325edb
Anki maturity-based known-word highlighting ( #172 )
2026-07-27 23:58:02 -07:00
sudacode
08c6807cb1
fix(launcher): normalize rofi prompt spacing
...
- Add formatRofiPrompt to trim trailing whitespace and append a single space, keeping the prompt from running into the input field
- Apply it across all rofi -p usages in picker.ts and history-command.ts
- Add tests for formatRofiPrompt edge cases (empty/whitespace-only prompts)
2026-07-26 00:13:54 -07:00
sudacode
18c6410f24
feat(launcher): add previous episode option to history entry menu
...
- Extract buildHistoryEntryActions to build the series action menu, now including a previous-episode option alongside replay/next/browse/quit
- Update docs and changelog entry to describe the new option
- Add tests covering previous/replay/next ordering and omission when last watched file is missing
2026-07-25 23:35:44 -07:00
sudacode
e223cf9b71
fix(release): restore compatible js-yaml override
2026-07-22 23:51:21 -07:00
sudacode
c718bb8b34
chore(release): prepare 0.19.0-beta.2
2026-07-22 23:34:08 -07:00
sudacode
177f7e5fd6
docs(readme): remove TsukiHime credit
...
- Drop the TsukiHime row from the open-source credits table
2026-07-22 23:07:07 -07:00
sudacode
20b50ec4e1
feat(launcher): add post-playback history menu with previous episode ( #170 )
2026-07-22 23:05:53 -07:00
sudacode
deae61b211
refactor: split anki-connect and stats-server resolvers into modules ( #169 )
2026-07-17 23:05:59 -07:00