sudacode
c39dbb5a8d
fix(overlay): keep Hachidori attention from pausing playback
...
Hachidori's hachidori-popup-shown/hidden pair means "the reader needs
mouse events", which includes a left press anywhere on the overlay that
may start a selection. SubMiner treated it as popup visibility, so a
click paused and resumed mpv, and holding the button kept it paused.
The host element only exists after the first lookup, so the first
attempt (gate on an open popup pane when a host exists) still paused
on clicks before any lookup.
Once a Hachidori event has been seen, popup auto-pause now requires an
unhidden popup pane in the host's shadow root, and rechecks after each
successful lookup so drag-select popups still pause.
2026-09-22 21:06:19 -07:00
sudacode
2958591ec9
fix(dictionary): open Hachidori hover popups only over subtitle glyphs
...
Pin the Hachidori fork fix that stops the caret snapping into the line box
from looking up a subtitle's first word when the pointer is beside the line,
which kept the popup open and playback paused.
2026-09-22 20:39:35 -07:00
sudacode
c9880efee3
test(anilist): apply sqlite pragmas in cover art fetcher tests
...
- Call applyPragmas before ensureSchema so test databases match the production setup
2026-09-22 19:30:31 -07:00
sudacode
f225ac3c89
fix(dictionary): block --yomitan when an external profile is configured
...
- Keep read-only external-profile mode while Hachidori is active by checking the configured externalProfilePath
- Hachidori settings remain available
- Smoke check asserts the external-profile block, with a --bundled-yomitan path for the bundled case
- Update usage docs and changelog fragment
2026-09-22 19:03:39 -07:00
sudacode
cacaa2b371
feat(overlay): add subtitle selection modal and Jellyfin 12 fixes
...
- Add an optional subtitle selection modal for primary/secondary mpv tracks (subtitleSelection.enabled, g-s sequence shortcut) with key-sequence conflict handling
- Authenticate Jellyfin URLs with the ApiKey query, answer remote keep-alives, clear now-playing on stop, and restore episode titles in Anki misc info
- Honor the configured mpv executable when Jellyfin starts playback via a shared mpv-process launcher
- Bump electron-builder to 26.16.1
- Condense and reconcile changelog fragments; update config example and docs
2026-09-22 18:51:59 -07:00
sudacode
b0fb39a8f5
feat(overlay): add optional subtitle selection modal ( #265 )
2026-09-22 18:30:26 -07:00
sudacode
9fe4c7eb33
fix(anki): preserve managed proxy state when settings sync fails
2026-09-22 15:49:24 -07:00
sudacode
ab5e50adac
fix(dictionary): complete Hachidori imports and mining integration
2026-09-22 15:01:23 -07:00
sudacode
15c74ef502
fix(dictionary): update Hachidori overlay sharing and test fixes
2026-09-22 14:26:32 -07:00
sudacode
f0d3c95b4c
fix(dictionary): pin Hachidori stats mining fix
2026-09-22 14:04:09 -07:00
sudacode
d7e1d7edc6
refactor: configure Hachidori in the SubMiner build
2026-09-22 12:26:37 -07:00
sudacode
6a1d1211ae
fix(release): resolve style.css asar lookup with native separators
...
The shared-font check still handed asar a forward-slash path, which
fails on Windows the same way the inventory listing did.
2026-09-22 02:29:28 -07:00
sudacode
7585d430ae
fix(release): unbreak packaging workflow on all three platforms
...
- Bump electron-builder to 26.16.1 so macOS signing passes the temp keychain
password to set-key-partition-list (upstream #10066 ), which the macOS 26
runner image now enforces
- Stat asar entries with their native path in the package audit; splitting on
path.sep made every nested file look missing on Windows
- Run the package smoke with --no-sandbox on Linux runners without a setuid
chrome-sandbox
- Load the packaged stats dashboard over loopback HTTP in the smoke, matching
how the app serves it since #263 , and ignore Chromium's cache-only font probe
2026-09-22 02:15:49 -07:00
sudacode
122ff9a3c5
chore(release): prepare v0.20.0-beta.1
...
Trim pending change fragments, drop the breaking flag from the stats
request-safety change, and generate prerelease notes.
2026-09-22 01:29:58 -07:00
sudacode
5354fdf7b9
refactor(dictionary): use Hachidori fork submodule and upstream API
2026-09-22 01:22:14 -07:00
sudacode
d9fdc7ef6d
feat(dictionary): add Hachidori backend support
...
- Add backend selection, setup gating, Anki integration, and external host support
- Add launcher flags, documentation, packaging, and focused tests
- Open on-demand overlay modals on the first attempt
2026-09-22 00:21:19 -07:00
sudacode
786bd5af81
chore(yomitan): update vendored fork to upstream 26.9.8
2026-09-21 20:53:26 -07:00
sudacode
42d1384c68
fix(jellyfin): support modern authentication ( #264 )
2026-09-21 20:40:57 -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
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
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
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