sudacode
cb37c68248
fix: address PR 36 CodeRabbit follow-ups
2026-03-29 00:05:18 -07:00
sudacode
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
sudacode
0e0c676a9a
refactor: remove Node.js fallback from stats-server, use Bun only
2026-03-28 12:09:18 -07:00
sudacode
5348ae8528
refactor: consolidate toDbMs into query-shared.ts
2026-03-28 12:06:58 -07:00
sudacode
c43941fc7e
refactor: normalize import extensions in query modules
2026-03-28 12:06:12 -07:00
sudacode
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
sudacode
4779ac85dc
test: extract mpv composer test fixture factory to reduce duplication
2026-03-28 11:17:14 -07:00
sudacode
5359e47610
chore: consolidate duplicate import paths in main.ts
2026-03-28 11:12:59 -07:00
sudacode
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
sudacode
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
sudacode
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
sudacode
ab315c737f
fix: replace any types in boot services with proper signatures
2026-03-28 10:34:36 -07:00
sudacode
8784a1072a
chore: remove unused token/queue file path constants from main.ts
2026-03-28 10:33:13 -07:00
sudacode
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
sudacode
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
sudacode
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
sudacode
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
sudacode
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
sudacode
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
sudacode
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
sudacode
615625d215
fix: use explicit super args for MockDate constructors
2026-03-28 00:09:25 -07:00
sudacode
90a9147363
fix: remove strict spread usage in Date mocks
2026-03-28 00:08:13 -07:00
sudacode
8f6877db12
fix: resolve CI type failures in boot and immersion query tests
2026-03-28 00:07:11 -07:00
sudacode
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
sudacode
1408ad652a
fix(ci): normalize Windows shortcut paths for cross-platform tests
2026-03-28 00:00:49 -07:00
sudacode
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
sudacode
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
sudacode
9caf25bedb
test: stabilize bun coverage reporting
2026-03-27 23:37:29 -07:00
sudacode
23b2360ac4
refactor: split main boot phases
2026-03-27 23:37:29 -07:00
sudacode
742a0dabe5
chore(backlog): update task notes and changelog fragment
2026-03-27 23:37:29 -07:00
sudacode
4c03e34caf
refactor(main): extract remaining inline runtime logic from main
2026-03-27 23:37:29 -07:00
sudacode
4d95de51a0
fix: address CodeRabbit review feedback
2026-03-27 03:05:32 -07:00
sudacode
ed32f985c6
test: increase launcher test timeout for CI stability
2026-03-27 02:24:56 -07:00
sudacode
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
sudacode
a3ddfa0641
refactor: compose startup and setup window wiring
2026-03-27 01:14:58 -07:00
sudacode
49a582b4fc
refactor: migrate shared type imports
2026-03-27 00:33:52 -07:00
sudacode
a92631bf52
chore: update backlog task records
2026-03-27 00:33:48 -07:00
sudacode
ac857e932e
refactor: split immersion tracker query modules
2026-03-27 00:33:43 -07:00
sudacode
8c633f7e48
fix: add stats server node fallback
2026-03-27 00:28:05 -07:00
sudacode
d2cfa1b871
feat: add repo-local subminer workflow plugin
2026-03-27 00:27:13 -07:00
sudacode
3fe63a6afa
refactor: use bun serve for stats server
2026-03-26 23:18:43 -07:00
sudacode
5dd8bb7fbf
refactor: split shared type entrypoints
2026-03-26 23:17:04 -07:00
sudacode
5b06579e65
refactor: split character dictionary runtime modules
2026-03-26 23:16:47 -07:00
sudacode
416942ff2d
chore(backlog): add mining workflow milestone and tasks
2026-03-26 22:32:11 -07:00
sudacode
2d4f2d1139
refactor: remove legacy YouTube entrypoint
2026-03-26 19:23:13 -07:00
sudacode
77e632276b
refactor: remove legacy YouTube launcher modules
2026-03-26 19:23:09 -07:00
sudacode
4c95b57885
chore: prepare v0.9.3 release
2026-03-25 23:58:31 -07:00
sudacode
242402b253
refactor: move youtube primary subtitle config to youtube
2026-03-25 23:53:56 -07:00
sudacode
61d15f9431
docs: apply M PLUS 1 and Manrope font defaults for docs content
2026-03-25 23:52:29 -07:00
sudacode
508864bcbb
chore(backlog): complete backlog cleanup
2026-03-25 22:42:21 -07:00
sudacode
23c54bb01e
chore: prepare v0.9.2 release
2026-03-25 22:37:59 -07:00
sudacode
ec667c64e8
fix: cancel stale autoplay fallback retries
2026-03-25 22:18:26 -07:00
sudacode
39b2ccad8e
fix: address latest coderabbit review
2026-03-25 22:18:26 -07:00
sudacode
23815945bf
chore: remove stale release notes artifact
2026-03-25 22:18:26 -07:00
sudacode
9dca83acd9
fix: delay youtube overlay bootstrap until yomitan loads
2026-03-25 22:18:26 -07:00
sudacode
55300e2d8c
Refine YouTube playback launch preparation
2026-03-25 22:18:26 -07:00
sudacode
28afd15134
Tighten YouTube playback launch readiness
2026-03-25 22:18:26 -07:00
sudacode
58304757aa
Fix YouTube playback PR review issues
2026-03-25 22:18:26 -07:00
sudacode
c95518e94a
Fix Windows YouTube playback flow and overlay pointer tracking
2026-03-25 22:18:26 -07:00
sudacode
5ee4617607
Fix Windows overlay scaling bounds ( #34 )
2026-03-25 16:30:11 -07:00
sudacode
842008b089
chore: prepare v0.9.1 release
2026-03-24 00:55:03 -07:00
sudacode
6f56a0bcf6
fix(renderer): keep controller input active with sidebar open
2026-03-24 00:23:00 -07:00
sudacode
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
sudacode
c17f0a4080
Fix tokenizer annotations for explanatory contrast ending ( #33 )
2026-03-23 09:25:17 -07:00
sudacode
0317c7f011
docs: add WebSocket & Texthooker API integration guide ( #30 )
2026-03-22 02:48:54 -07:00
sudacode
13797b5005
docs: align v0.8.0 release notes with subtitle sidebar changes
2026-03-22 00:07:05 -07:00
sudacode
b24d9d7487
fix(release): make changelog build idempotent for re-run tagged releases
2026-03-21 23:50:27 -07:00
sudacode
3a01cffc6b
feat(subtitle-sidebar): add sidebar config surface ( #28 )
2026-03-21 23:37:42 -07:00
sudacode
eddf6f0456
docs: document release changelog recovery path
2026-03-20 03:15:05 -07:00
sudacode
f6c024d61e
fix: build changelog artifacts in release job
2026-03-20 03:00:40 -07:00
sudacode
6749ff843c
feat(stats): add v1 immersion stats dashboard ( #19 )
2026-03-20 02:43:28 -07:00
sudacode
42abdd1268
fix(release): version AUR asset cache aliases
2026-03-17 18:15:23 -07:00
sudacode
5d914b1547
update vendored packages
2026-03-17 18:15:13 -07:00
sudacode
50b45cac0b
Summarize JLPT duplicate term conflicts into a single startup log ( #26 )
2026-03-16 01:08:40 -07:00
sudacode
e35aac6ee0
chore: prepare v0.6.5 release
2026-03-15 21:05:58 -07:00
sudacode
fe2da22d29
chore: prepare v0.6.4 release
2026-03-15 20:43:50 -07:00
sudacode
2045ffbff8
chore: prepare v0.6.3 release
2026-03-15 20:16:36 -07:00
sudacode
478869ff28
feat(controller): add inline remap modal with descriptor-based bindings ( #21 )
2026-03-15 15:55:45 -07:00
sudacode
9eed37420e
Automate AUR publish in tagged release workflow ( #22 )
2026-03-14 19:49:46 -07:00
sudacode
99f4d2baaf
Harden subminer-scrum-master pre-handoff policy checks ( #20 )
2026-03-13 01:40:48 -07:00
sudacode
f4e8c3feec
chore: make verifier script executable
2026-03-13 00:44:00 -07:00
sudacode
d0b308f340
test: harden agent verification workflow
2026-03-13 00:44:00 -07:00
sudacode
1b56360a24
feat(yomitan): add read-only external profile support for shared dictionaries ( #18 )
2026-03-12 01:17:34 -07:00
sudacode
68833c76c4
Release v0.6.1 and scope workflow write permissions
...
- Bump package version and changelog to v0.6.1
- Move `contents: write` permission to release job only
- Remove consumed changelog fragment files
2026-03-11 20:53:52 -07:00
sudacode
4d7c80f2e4
Add overlay gamepad support for keyboard-only mode ( #17 )
2026-03-11 20:34:46 -07:00
sudacode
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
sudacode
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
sudacode
5f320edab5
move docs back repo
2026-03-10 19:47:16 -07:00
sudacode
f7ce3371a1
chore: finalize v0.5.6 changelog fragments
2026-03-10 18:49:21 -07:00
sudacode
71805dccd7
chore: bump package version
2026-03-10 02:33:13 -07:00
sudacode
a13b7352d7
chore: make pretty
2026-03-10 02:32:53 -07:00
sudacode
ff5ecdaded
clean up and add new showcase videos
2026-03-10 02:32:27 -07:00
sudacode
b32c3cf58c
fix: avoid merged dictionary rebuilds on revisits
2026-03-10 02:26:07 -07:00
sudacode
b791262860
fix: keep jlpt underline stable during Yomitan lookup
2026-03-10 01:37:32 -07:00
sudacode
29b8c6e02a
update agents file and readme
2026-03-10 01:27:05 -07:00
sudacode
618727d8e8
fix: set canonical userData path during startup
2026-03-09 23:52:50 -07:00
sudacode
fed60c265d
style: restore repo formatting
2026-03-09 18:10:32 -07:00
sudacode
a34a7489db
chore: prep v0.5.5 release
2026-03-09 18:07:01 -07:00
sudacode
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
sudacode
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