572bceecb0
fix: stabilize coverage and immersion tracker tests
2026-03-28 15:24:35 -07:00
baf2553f57
fix: stabilize immersion tracker trend test
2026-03-28 15:20:57 -07:00
6cbfc35b45
fix(test): correct trends dashboard lookups expectation
...
- Update expected lookups array to include both day buckets
2026-03-28 15:14:40 -07:00
5059c881ea
fix: stabilize immersion tracker ci
2026-03-28 15:10:10 -07:00
67a87c4cc2
fix(ci): correct comma syntax in daily session count cast
2026-03-28 13:27:31 -07:00
13a88a8382
fix(ci): normalize daily session count extraction
2026-03-28 13:26:36 -07:00
b1638afe21
fix(ci): simplify first-session day count cast
2026-03-28 13:25:38 -07:00
e4c8c60b3e
fix(ci): normalize session-day count comparison
2026-03-28 13:24:44 -07:00
a96df287d1
fix(ci): align rollup timestamp types with DB millis strings
2026-03-28 13:23:01 -07:00
f4d1cc9fb9
fix(ci): resolve immersion tracker type mismatches
2026-03-28 13:22:03 -07:00
2582c2a7ad
fix(ci): restore stats-server fallback and unblock coverage tests
2026-03-28 13:19:44 -07:00
c5fcd50cc0
Fix monthly rollup test expectations
...
- Preserve multi-arg Date construction in mock helper
- Align rollup assertions with the correct videoId
2026-03-28 12:12:58 -07:00
0e0c676a9a
refactor: remove Node.js fallback from stats-server, use Bun only
2026-03-28 12:09:18 -07:00
5348ae8528
refactor: consolidate toDbMs into query-shared.ts
2026-03-28 12:06:58 -07:00
c43941fc7e
refactor: normalize import extensions in query modules
2026-03-28 12:06:12 -07:00
86b50dcb70
refactor: deduplicate ensureDir into shared/fs-utils
...
5 copies of mkdir-p-if-not-exists consolidated into one shared module
with ensureDir (directory path) and ensureDirForFile (file path) variants.
2026-03-28 10:42:21 -07:00
c6d349886e
refactor: parameterize duplicated getAffected*Ids query helpers
...
Four structurally identical functions collapsed into two parameterized
helpers while preserving the existing public API.
2026-03-28 10:31:06 -07:00
b92f253458
fix: use variadic array type for MockDate constructor args
...
TS2367: fixed-length tuple made args.length === 0 unreachable.
2026-03-28 10:21:47 -07:00
efcacded66
Factor out mock date helper in tracker tests
...
- reuse a shared `withMockDate` helper for date-sensitive query tests
- make monthly rollup assertions key off `videoId` instead of row order
2026-03-28 00:26:19 -07:00
615625d215
fix: use explicit super args for MockDate constructors
2026-03-28 00:09:25 -07:00
90a9147363
fix: remove strict spread usage in Date mocks
2026-03-28 00:08:13 -07:00
8f6877db12
fix: resolve CI type failures in boot and immersion query tests
2026-03-28 00:07:11 -07:00
8e5cb5f885
Fix verification and immersion-tracker grouping
...
- isolate verifier artifacts and lease handling
- switch weekly/monthly tracker cutoffs to calendar boundaries
- tighten boot lifecycle and zip writer tests
2026-03-28 00:01:17 -07:00
9caf25bedb
test: stabilize bun coverage reporting
2026-03-27 23:37:29 -07:00
4d95de51a0
fix: address CodeRabbit review feedback
2026-03-27 03:05:32 -07:00
854179b9c1
Add backlog tasks and launcher time helper tests
...
- Track follow-up cleanup work in Backlog.md
- Replace Date.now usage with shared nowMs helper
- Add launcher args/parser and core regression tests
2026-03-27 02:01:36 -07:00
49a582b4fc
refactor: migrate shared type imports
2026-03-27 00:33:52 -07:00
ac857e932e
refactor: split immersion tracker query modules
2026-03-27 00:33:43 -07:00
8c633f7e48
fix: add stats server node fallback
2026-03-27 00:28:05 -07:00
3fe63a6afa
refactor: use bun serve for stats server
2026-03-26 23:18:43 -07:00
5dd8bb7fbf
refactor: split shared type entrypoints
2026-03-26 23:17:04 -07:00
4c95b57885
chore: prepare v0.9.3 release
2026-03-25 23:58:31 -07:00
9dca83acd9
fix: delay youtube overlay bootstrap until yomitan loads
2026-03-25 22:18:26 -07:00
58304757aa
Fix YouTube playback PR review issues
2026-03-25 22:18:26 -07:00
c95518e94a
Fix Windows YouTube playback flow and overlay pointer tracking
2026-03-25 22:18:26 -07:00
5ee4617607
Fix Windows overlay scaling bounds ( #34 )
2026-03-25 16:30:11 -07:00
5feed360ca
feat: add app-owned YouTube subtitle flow with absPlayer-style parsing ( #31 )
...
* fix: harden preload argv parsing for popup windows
* fix: align youtube playback with shared overlay startup
* fix: unwrap mpv youtube streams for anki media mining
* docs: update docs for youtube subtitle and mining flow
* refactor: unify cli and runtime wiring for startup and youtube flow
* feat: update subtitle sidebar overlay behavior
* chore: add shared log-file source for diagnostics
* fix(ci): add changelog fragment for immersion changes
* fix: address CodeRabbit review feedback
* fix: persist canonical title from youtube metadata
* style: format stats library tab
* fix: address latest review feedback
* style: format stats library files
* test: stub launcher youtube deps in CI
* test: isolate launcher youtube flow deps
* test: stub launcher youtube deps in failing case
* test: force x11 backend in launcher ci harness
* test: address latest review feedback
* fix(launcher): preserve user YouTube ytdl raw options
* docs(backlog): update task tracking notes
* fix(immersion): special-case youtube media paths in runtime and tracking
* feat(stats): improve YouTube media metadata and picker key handling
* fix(ci): format stats media library hook
* fix: address latest CodeRabbit review items
* docs: update youtube release notes and docs
* feat: auto-load youtube subtitles before manual picker
* fix: restore app-owned youtube subtitle flow
* docs: update youtube playback docs and config copy
* refactor: remove legacy youtube launcher mode plumbing
* fix: refine youtube subtitle startup binding
* docs: clarify youtube subtitle startup behavior
* fix: address PR #31 latest review follow-ups
* fix: address PR #31 follow-up review comments
* test: harden youtube picker test harness
* udpate backlog
* fix: add timeout to youtube metadata probe
* docs: refresh youtube and stats docs
* update backlog
* update backlog
* chore: release v0.9.0
2026-03-24 00:01:24 -07:00
c17f0a4080
Fix tokenizer annotations for explanatory contrast ending ( #33 )
2026-03-23 09:25:17 -07:00
3a01cffc6b
feat(subtitle-sidebar): add sidebar config surface ( #28 )
2026-03-21 23:37:42 -07:00
6749ff843c
feat(stats): add v1 immersion stats dashboard ( #19 )
2026-03-20 02:43:28 -07:00
50b45cac0b
Summarize JLPT duplicate term conflicts into a single startup log ( #26 )
2026-03-16 01:08:40 -07:00
478869ff28
feat(controller): add inline remap modal with descriptor-based bindings ( #21 )
2026-03-15 15:55:45 -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
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
2127f759ca
fix: correct guessit title parsing for character dictionary sync
2026-03-08 23:03:48 -07:00
c799a8de3c
Prepare Windows release and signing process ( #16 )
2026-03-08 19:51:30 -07:00