sudacode
625f1ad238
feat(stats): add live-action library support and harden stats runtime
...
- Add TMDB metadata, linking, filtering, and live-action library merging
- Harden stats request validation, lifecycle handling, and compiled runtime coverage
- Fix Anki media synchronization and configuration validation
2026-09-21 00:18:32 -07:00
sudacode
1508863dbb
feat(stats): add TMDB metadata for live-action dramas in the Library ( #252 )
2026-09-21 00:10:00 -07:00
sudacode
4dd30f44d1
chore(yomitan): update fork to upstream 26.9.8
2026-09-21 00:09:48 -07:00
sudacode
ab48a5678e
fix(stats): restrict local requests and serve the dashboard over HTTP ( #263 )
2026-09-20 23:36:55 -07:00
sudacode
2f21582666
fix(overlay): cancel pending window transitions and timing reviews ( #262 )
2026-09-20 23:35:48 -07:00
sudacode
383aed8bad
fix(stats): harden server lifecycle and verify compiled runtime ( #261 )
2026-09-20 23:19:03 -07:00
sudacode
f9c4e892dc
fix(stats): reject malformed resource IDs before mutations ( #259 )
2026-09-20 22:49:27 -07:00
sudacode
7959e1a4e5
fix(anki): honor unlimited duration in stats mining ( #258 )
2026-09-20 22:49:12 -07:00
sudacode
917d52dd94
fix(config): validate AnkiConnect and field grouping settings ( #257 )
2026-09-20 22:48:54 -07:00
sudacode
05425cc5db
fix(anki): separate word audio mapping for animation sync ( #256 )
2026-09-20 22:07:30 -07:00
sudacode
d1aa279830
feat: expand subtitle and media tracking workflows
...
- Add reference-guided subtitle timing, frame picking, live-action Jimaku search, and YouTube library kinds
- Harden Jellyfin media identity handling and live settings feedback
- Refresh user-facing documentation and changelog fragments
2026-09-20 20:10:03 -07:00
sudacode
8097ed27e5
feat(stats): separate YouTube channels in the Library ( #253 )
2026-09-20 19:57:32 -07:00
sudacode
76e43d7e6d
fix(config): align live save feedback with hot reload policy ( #255 )
2026-09-20 19:51:45 -07:00
sudacode
026d495fac
feat(jimaku): add live-action subtitle search ( #251 )
2026-09-18 22:50:13 -07:00
sudacode
dd76782d30
fix(subtitles): widen subtitle generation modal
...
- Reduce text wrapping and scrolling while retaining small-window support
- Document the responsive layout change
2026-09-18 21:05:52 -07:00
sudacode
a8c16147ad
feat(subtitles): use loaded subtitles to guide generation timing ( #249 )
2026-09-18 00:24:42 -07:00
sudacode
186d4a0640
fix(jellyfin): fix jellyfin media metadata ( #250 )
2026-09-18 00:24:25 -07:00
sudacode
ca40cd6267
fix(anime): clarify bridge failures and update guidance
...
- Show actionable bridge errors and preserve episodes when details fail
- Check external bridges for updates without offering unsafe in-app installs
- Complete cleanup and ignore callbacks from closed Tsukihime sessions
2026-09-16 23:25:21 -07:00
sudacode
93fb4eff3a
feat: add subtitle generation and bundle Bun launcher runtime
...
- Add local subtitle generation and card timing review workflows
- Package cross-platform Bun runtimes, launchers, licenses, and source
- Consolidate release packaging and refresh v0.19.6 documentation
2026-09-15 21:59:10 -07:00
sudacode
2831e05124
feat(subtitles): add local Japanese subtitle generation ( #240 )
2026-09-15 21:43:11 -07:00
sudacode
6841a37a22
fix(sidebar): preserve Space playback after cue seeking ( #247 )
2026-09-15 21:35:10 -07:00
sudacode
7c1eac03dc
feat(overlay): discover unclaimed mpv key bindings ( #246 )
2026-09-15 18:26:45 -07:00
sudacode
e6dc9dfec5
test: clone VM results across Electron boundaries
...
- Clone tokenizer VM results into the host realm
- Expect null-prototype profile maps in IPC validation tests
2026-09-11 01:55:32 -07:00
sudacode
6d69a56574
fix(overlay): keep Hyprland recovery dialogs above overlays ( #245 )
2026-09-11 01:52:01 -07:00
sudacode
0c37c665a2
build(release): reduce package size and report release sizes ( #244 )
2026-09-11 01:15:36 -07:00
sudacode
8ae5bde6a4
test(stats): increase occurrence merge test timeout
2026-09-11 01:09:59 -07:00
sudacode
016a43b804
feat(launcher): bundle Bun and use it across all launchers ( #243 )
2026-09-11 00:21:10 -07:00
sudacode
fb2d1a512b
perf(stats): use compressed incremental snapshot transfers ( #241 )
2026-09-10 23:57:20 -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
01fcacb6cf
test(anime): synchronize stale Jimaku open test
2026-09-03 01:40:28 -07:00
sudacode
cd7a65ec80
fix(anime): wait for mpv window before opening Jimaku
...
- Hide the standalone browser during the Jimaku handoff
- Skip stale or windowless playback flows safely
2026-09-03 01:03:16 -07:00
sudacode
89479f7045
feat(anime): set default source from Extensions tab
...
- Add default controls for installed sources and All sources
- Expose source metadata for extension rows
2026-09-02 23:50:11 -07:00
sudacode
7bc9a07a52
fix(anime): rescan runtime after preference cleanup failures
...
- Keep extension removal reflected in the runtime when preference cleanup fails
- Clarify auto-open playback resume behavior in configuration docs
2026-09-02 23:28:32 -07:00
sudacode
68dd789fbf
feat(anime): remember the default Anime Browser source
...
- Add `anime.defaultSource` with installed-source fallback
- Let the source picker save a source or All sources as default
2026-09-02 23:17:20 -07:00
sudacode
516fadd530
feat(anime): auto-open Jimaku for Anime Browser playback
...
- Add hot-reloadable `anime.autoOpenJimaku` setting
- Pause and resume playback around subtitle selection
- Brand Anime Browser surfaces with the SubMiner logo
2026-09-02 23:04:39 -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
18beac13f4
feat(anime): add version-aware extension updates
...
- Compare installed APK version codes before offering updates
- Add update status labels and an Update all action
2026-09-02 19:10:03 -07:00
sudacode
484a9e047d
fix(immersion): drain writes after finalizing tracker shutdown
...
- Ensure queued telemetry and events persist during destroy
- Restore mocked flush methods in queue-drain tests
2026-09-02 12:59:25 -07:00
sudacode
0d66747f2e
fix(immersion): await lexical rollup shutdown during app quit
...
- Rebuild lifetime completion after stream watch-state changes
- Update release packaging metadata and fast-uri
2026-09-02 10:51:20 -07:00
sudacode
b01f0bcb4f
feat(release): prepare v0.19.5 with subtitle pipeline improvements
...
- Rework ASS, YouTube, overlapping, and secondary subtitle handling
- Keep overlay, mining, sidebar, and stats aligned with visible cues
- Harden release-note validation and package Linux thumbnail support
2026-09-02 09:27:06 -07:00
sudacode
9a1b6e650f
fix(anime): restore bridge install after validation failure
...
- Preserve the previous install when post-swap validation fails
- Cover rollback behavior with an installer regression test
2026-09-02 01:06:08 -07:00
sudacode
835a09fa67
fix(anime): harden bridge updates and startup lifecycle
...
- Wait for in-flight starts and stop sidecars before replacement
- Restore the previous bundle when activation fails
- Clarify unchecked managed bridge status and bump the AUR package release
2026-09-02 00:40:58 -07:00
sudacode
2bcb6c7e98
feat(anime): support shared bridge installs and updates
...
- Prefer configured or package-managed bridge bundles before downloading
- Select compatible upstream releases and offer managed-bundle updates
- Document bridge configuration and package dependencies
2026-09-01 23:14:16 -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
1d1575f414
fix(anime): preserve HLS playlist rewriting and fetch timeouts
...
- Force identity encoding for upstream playlist responses
- Keep inactivity timeouts active while streaming response bodies
2026-08-16 14:20:08 -07:00
sudacode
e11a5fea0d
chore(release): prepare v0.19.4-beta.1
2026-08-16 02:00:32 -07:00
sudacode
f6993ae507
fix(anime): harden stream proxy and session lifecycle
...
- Reject non-origin-form proxy targets
- Release stale anime browser sessions when senders move
2026-08-16 01:46:16 -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
4300517da7
fix(anime): harden browser playback and modal lifecycle
...
- Abort upstream fetches when clients disconnect
- Validate embedded modal readiness before opening
- Centralize browser IPC and window lifecycle
2026-08-16 01:21:07 -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
877f350353
fix(anime): keep browser state in sync and alias HLS segments
...
- Toggle the player Anime Browser without losing its state
- Share active playback state and support rotating fake segment extensions
2026-08-15 23:35:37 -07:00
sudacode
7a1450ddb7
feat(anime): open Anime Browser in player modal
...
- Add the Ctrl+Alt+A shortcut and dedicated overlay modal
- Share queue, sources, and watch history while isolating browser state
2026-08-15 21:44:52 -07:00
sudacode
cc43d3007a
fix(anime): alias disguised HLS segments for ffmpeg
...
- Expose local `.ts` aliases for `.image` MPEG-TS segments
- Cover proxy rewriting and upstream alias removal with tests
2026-08-15 21:44:51 -07:00
sudacode
333ee5eea4
fix(anime): clean up discarded queued subtitles in background
...
- Let queued episode discard return before subtitle preparation finishes
- Remove the redundant queued subtitle loading command
2026-08-15 21:44:51 -07:00
sudacode
935e4c145f
feat(anime): append queued episodes to mpv playlist
...
- Resolve queued streams immediately and cache subtitles in the background
- Attach prepared tracks as mpv advances through the playlist
2026-08-15 21:44:51 -07:00
sudacode
183560d2c3
fix(macos): bring app forward when opening settings/sync/anime windows
...
- add activateMacOSApp to steal app focus before window.focus(), since show()/focus() only reorder windows within an already-active app
- wire activateApp through config-settings-window/runtime into the settings, sync, and anime browser window handlers
- restore the anime browser's Dock icon before showing the window instead of after, since an accessory process cannot become frontmost
2026-08-15 21:44:51 -07:00