Commit Graph

199 Commits

Author SHA1 Message Date
d68c359124 fix: finalize v0.10.0 release prep 2026-03-29 15:31:59 -07:00
33319a102d feat(discord): add configurable presence style presets
Replace the hardcoded "Mining and crafting (Anki cards)" meme message
with a preset system. New `discordPresence.presenceStyle` option
supports four presets: "default" (clean bilingual), "meme" (the OG
Minecraft joke), "japanese" (fully JP), and "minimal". The default
preset shows "Sentence Mining" with 日本語学習中 as the small image
tooltip. Existing users can set presenceStyle to "meme" to keep the
old behavior.
2026-03-29 15:28:01 -07:00
6648ed1332 fix(renderer): restore subtitle sidebar mpv passthrough 2026-03-29 15:22:03 -07:00
a55819e90d fix: strip inline subtitle markup from sidebar cues 2026-03-29 15:16:56 -07:00
a0b0b9f972 fix: pin installed mpv plugin to current binary 2026-03-29 15:16:48 -07:00
c939c5804f fix: stabilize macOS visible overlay toggle 2026-03-29 15:14:10 -07:00
b682f0d37a fix(ci): add changelog fragment for PR 36 2026-03-29 01:39:13 -07:00
2a37050f0c fix: migrate discord rpc wrapper 2026-03-29 01:22:47 -07:00
cff50aef86 fix: guard disabled immersion retention windows 2026-03-29 01:10:11 -07:00
43d008ebfe fix: address latest CodeRabbit review round 2026-03-29 01:02:09 -07:00
35aa29d51c chore(backlog): close TASK-242 2026-03-29 00:37:25 -07:00
2fc4fabde7 fix(ci): restore coverage lane compatibility 2026-03-29 00:33:59 -07:00
4ff8529744 fix(stats): fallback to node server when Bun.serve unavailable 2026-03-29 00:27:53 -07:00
9dae4af773 fix: harden coverage lane cleanup 2026-03-29 00:08:12 -07:00
cb37c68248 fix: address PR 36 CodeRabbit follow-ups 2026-03-29 00:05:18 -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
99b30c4cf0 test: add behavioral assertions to composer tests
Upgrade 8 composer test files from shape-only typeof checks to behavioral
assertions that invoke returned handlers and verify injected dependencies are
actually called, following the mpv-runtime-composer pattern.
2026-03-28 11:22:58 -07:00
4779ac85dc test: extract mpv composer test fixture factory to reduce duplication 2026-03-28 11:17:14 -07:00
5359e47610 chore: consolidate duplicate import paths in main.ts 2026-03-28 11:12:59 -07:00
916dd5d37d refactor: inline subtitle-prefetch-runtime-composer
The composer was a pure pass-through that destructured an object and
reassembled it with the same fields. Inlined at the call site.
2026-03-28 11:11:49 -07:00
1a448cf7d9 fix: tighten type safety in boot services
- Add AppLifecycleShape and OverlayModalInputStateShape constraints
  so TAppLifecycleApp and TOverlayModalInputState generics are bounded
- Remove unsafe `as { handleModalInputStateChange? }` cast — now
  directly callable via the constraint
- Use `satisfies AppLifecycleShape` for structural validation on the
  appLifecycleApp object literal
- Document Electron App.on incompatibility with simple signatures
2026-03-28 11:10:51 -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
ab315c737f fix: replace any types in boot services with proper signatures 2026-03-28 10:34:36 -07:00
8784a1072a chore: remove unused token/queue file path constants from main.ts 2026-03-28 10:33:13 -07:00
312cba6955 refactor: inline identity composers (stats-startup, overlay-window)
composeStatsStartupRuntime was a no-op that returned its input.
composeOverlayWindowHandlers was a 1-line delegation.
Both removed in favor of direct usage.
2026-03-28 10:33:09 -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
17e715b2bf refactor: consolidate 3 near-identical setup window factories
Extract shared createSetupWindowHandler with a config parameter.
Public API unchanged.
2026-03-28 10:30:35 -07:00
549ff66d09 refactor: remove boot re-export alias layer
main.ts now imports directly from the runtime/composers and runtime/domains
modules, eliminating the intermediate boot/ indirection.
2026-03-28 10:26:56 -07:00
5141a936d8 refactor: remove unused createMainBootRuntimes/Handlers aggregate functions
These functions were never called by production code — main.ts imports
the individual composeBoot* re-exports directly.
2026-03-28 10:23:28 -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
1408ad652a fix(ci): normalize Windows shortcut paths for cross-platform tests 2026-03-28 00:00:49 -07:00
d5b746bd1d Restrict docs analytics and build coverage input
- limit Plausible init to docs.subminer.moe
- build Yomitan before src coverage lane
2026-03-27 23:52:07 -07:00
6139d14cd1 Switch plausible endpoint and harden coverage lane parsing
- update docs-site tracking to use the Plausible capture endpoint
- tighten coverage lane argument and LCOV parsing checks
- make script entrypoint use CommonJS main guard
2026-03-27 23:41:23 -07:00
9caf25bedb test: stabilize bun coverage reporting 2026-03-27 23:37:29 -07:00
23b2360ac4 refactor: split main boot phases 2026-03-27 23:37:29 -07:00
742a0dabe5 chore(backlog): update task notes and changelog fragment 2026-03-27 23:37:29 -07:00
4c03e34caf refactor(main): extract remaining inline runtime logic from main 2026-03-27 23:37:29 -07:00
4d95de51a0 fix: address CodeRabbit review feedback 2026-03-27 03:05:32 -07:00
ed32f985c6 test: increase launcher test timeout for CI stability 2026-03-27 02:24:56 -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
a3ddfa0641 refactor: compose startup and setup window wiring 2026-03-27 01:14:58 -07:00
49a582b4fc refactor: migrate shared type imports 2026-03-27 00:33:52 -07:00