047b349d05
perf: batch annotation passes into single loop
...
Collapse applyKnownWordMarking, applyFrequencyMarking, and
applyJlptMarking into a single .map() call. markNPlusOneTargets
remains a separate pass (needs full array with isKnown set).
Eliminates 3 intermediate array allocations and 3 redundant
iterations over the token array.
2026-03-15 12:49:08 -07:00
35946624c2
feat: add preCacheTokenization and isCacheFull to SubtitleProcessingController
2026-03-15 12:46:43 -07:00
7d76c44f7f
feat(stats): add episodes completed and anime completed to tracking snapshot
...
- Query watched videos count and anime with all episodes watched
- Display in overview tracking snapshot
- Remove efficiency section from trends
2026-03-14 23:11:27 -07:00
06745ff63a
feat: add AniList rate limiter and remaining backlog tasks
2026-03-14 23:11:27 -07:00
6d8650994f
feat(stats): wire stats server, overlay, and CLI into main process
...
- Stats server auto-start on immersion tracker init
- Stats overlay toggle via keybinding and IPC
- Stats CLI command (subminer stats) with cleanup mode
- mpv plugin menu integration for stats toggle
- CLI args for --stats, --stats-cleanup, --stats-response-path
2026-03-14 23:11:27 -07:00
a7c294a90c
feat(stats): add stats server, API endpoints, config, and Anki integration
...
- Hono HTTP server with 20+ REST endpoints for stats data
- Stats overlay BrowserWindow with toggle keybinding
- IPC channel definitions and preload bridge
- Stats config section (toggleKey, serverPort, autoStartServer, autoOpenBrowser)
- Config resolver for stats section
- AnkiConnect proxy endpoints (guiBrowse, notesInfo)
- Note ID passthrough in card mining callback chain
- Stats CLI command with autoOpenBrowser respect
2026-03-14 23:11:27 -07:00
f005f542a3
feat(immersion): add anime metadata, occurrence tracking, and schema upgrades
...
- Add imm_anime table with AniList integration
- Add imm_subtitle_lines, imm_word_line_occurrences, imm_kanji_line_occurrences
- Add POS fields (part_of_speech, pos1, pos2, pos3) to imm_words
- Add anime metadata parsing with guessit fallback
- Add video duration tracking and watched status
- Add episode, streak, trend, and word/kanji detail queries
- Deduplicate subtitle line recording within sessions
- Pass Anki note IDs through card mining callback chain
2026-03-14 23:11:27 -07:00
9eed37420e
Automate AUR publish in tagged release workflow ( #22 )
2026-03-14 19:49:46 -07:00
1b56360a24
feat(yomitan): add read-only external profile support for shared dictionaries ( #18 )
2026-03-12 01:17:34 -07:00
4d7c80f2e4
Add overlay gamepad support for keyboard-only mode ( #17 )
2026-03-11 20:34:46 -07:00
2f17859b7b
Document AUR install flow and add backlog planning artifacts
...
- Add Arch Linux `subminer-bin` install instructions to README and docs-site installation guide
- Add Hyprland troubleshooting guidance for transparency and global shortcut passthrough
- Add TASK-159..164 backlog records and skill design plans; include changelog fragment
- Apply formatting-only update to `src/release-workflow.test.ts`
2026-03-11 02:08:59 -07:00
9c7e02cbf0
Enforce config example drift checks in CI and release
...
- add `verify:config-example` script with tests to fail on missing/stale generated config artifacts
- run the verification in CI and release workflows, and document it in release/docs guidance
- fix docs-site Cloudflare Pages watch path to `docs-site/*` with regression coverage
2026-03-10 20:06:41 -07:00
5f320edab5
move docs back repo
2026-03-10 19:47:16 -07:00
a13b7352d7
chore: make pretty
2026-03-10 02:32:53 -07:00
b32c3cf58c
fix: avoid merged dictionary rebuilds on revisits
2026-03-10 02:26:07 -07:00
b791262860
fix: keep jlpt underline stable during Yomitan lookup
2026-03-10 01:37:32 -07:00
618727d8e8
fix: set canonical userData path during startup
2026-03-09 23:52:50 -07:00
fed60c265d
style: restore repo formatting
2026-03-09 18:10:32 -07:00
e59192bbe1
Improve startup dictionary progress and fix overlay/plugin input handlin
...
- show a dedicated startup OSD "building" phase for character dictionary sync
- forward bare `Tab` from visible overlay to mpv so AniSkip works while focused
- fix Windows plugin env override resolution for `SUBMINER_BINARY_PATH`
2026-03-09 02:35:03 -07:00
e0f82d28f0
Improve startup dictionary sync UX and default playback keybindings
...
- Add default `f` fullscreen overlay binding and switch default AniSkip skip key to `Tab`
- Make character-dictionary auto-sync non-blocking at startup with tokenization gating for Yomitan mutations
- Add ordered startup OSD progress (checking/generating/updating/importing), refresh current subtitle on sync completion, and extend regression tests
2026-03-09 00:50:32 -07:00
a0521aeeaf
fix(tracker): follow active hyprland and visible x11 windows
2026-03-08 23:03:55 -07:00
2127f759ca
fix: correct guessit title parsing for character dictionary sync
2026-03-08 23:03:48 -07:00
2e59c21078
chore: prep v0.5.3 release
2026-03-08 22:08:46 -07:00
2bbf38f987
fix: pin signpath artifact configuration
2026-03-08 20:44:00 -07:00
58ec9b76e0
fix: harden windows release signing workflow
2026-03-08 20:24:47 -07:00
c799a8de3c
Prepare Windows release and signing process ( #16 )
2026-03-08 19:51:30 -07:00
021010a338
test(ai): cover shared client helpers
2026-03-08 16:11:13 -07:00
9e46176519
feat(ai): split shared provider config from Anki runtime
2026-03-08 16:10:51 -07:00
f10e905dbd
build: enforce changelog workflow in CI
2026-03-08 16:10:37 -07:00
a6ece5388a
fix(launcher): remove youtube subtitle mode
2026-03-08 16:03:24 -07:00
6a44b54b51
fix: reuse background overlay across mpv reconnects
2026-03-08 16:02:57 -07:00
93cd688625
fix: harden AI subtitle fix response parsing
2026-03-08 16:01:40 -07:00
38034db1e4
fix: reuse background tokenization warmups
2026-03-08 16:01:11 -07:00
f775f90360
fix: improve secondary subtitle readability
2026-03-07 23:51:23 -08:00
d0c11d347b
refactor: remove root node and npm workflow deps
2026-03-07 21:19:14 -08:00
f0418c6e56
fix: repair GitHub release publish workflow
2026-03-07 19:43:35 -08:00
e18985fb14
Enhance AniList character dictionary sync and subtitle features ( #15 )
2026-03-07 18:30:59 -08:00
2f07c3407a
chore: bump version to 0.3.0
2026-03-05 20:21:03 -08:00
8ca05859a9
fix: support repeated popup scroll keys
2026-03-05 19:20:55 -08:00
0cac446725
fix: preserve keyboard subtitle navigation state
2026-03-05 18:39:40 -08:00
b623c5e160
fix: improve yomitan keyboard navigation and payload handling
2026-03-05 01:28:54 -08:00
beeeee5ebd
fix(core): recopy Yomitan extension when patched scripts drift
2026-03-04 23:04:11 -08:00
fdbf769760
feat(renderer): add keyboard-driven yomitan navigation and popup controls
2026-03-04 23:04:11 -08:00
0a36d1aa99
fix(anki): force Yomitan proxy server sync for card auto-enhancement
2026-03-04 23:04:11 -08:00
69ab87c25f
feat(renderer): add optional yomitan popup auto-pause
2026-03-04 23:04:11 -08:00
9a30419a23
fix(tokenizer): tighten frequency highlighting exclusions
2026-03-04 23:04:11 -08:00
10ef535f9a
feat(subsync): add replace option and deterministic retimed naming
2026-03-03 00:26:31 -08:00
be4db24861
make pretty
2026-03-02 02:45:51 -08:00
83d21c4b6d
fix: narrow fallback frequency filter type predicate
2026-03-02 02:44:07 -08:00
e744fab067
fix: unblock autoplay on tokenization-ready and defer annotation loading
2026-03-02 02:43:09 -08:00