mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
2.4 KiB
2.4 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-71 | Split main.ts into domain runtime modules round 2 | In Progress | 2026-02-18 11:35 | 2026-02-21 03:40 |
|
high |
Description
src/main.ts remains >3k LOC and still mixes composition, runtime state mutation, domain workflows (Jellyfin, AniList), tray/UI setup, and IPC wiring. This creates high cognitive load and broad change blast radius.
Progress Notes
- Added runtime domain barrels under
src/main/runtime/domains/*and composed registry entrypoint atsrc/main/runtime/registry.ts. - Migrated
src/main.tsruntime imports from per-file runtime modules to domain barrel import paths. - Added
scripts/check-main-runtime-fanin.tsguardrail and package scripts (check:main-fanin,check:main-fanin:strict). - 2026-02-21: extracted jellyfin/anilist deps-builder clusters into composer modules (
src/main/runtime/composers/jellyfin-remote-composer.ts,src/main/runtime/composers/anilist-setup-composer.ts) and replaced inlinemain.tsorchestration with composer invocations. - 2026-02-21: tightened fan-in guard defaults to
import lines <= 110andunique runtime paths <= 11; strict mode passing. - Remaining TASK-71 scope: finish startup/overlay/ipc/shortcuts composer extraction to fully thin
src/main.ts.
Action Steps
- Extract cohesive runtime modules:
- AniList runtime orchestration
- Jellyfin runtime orchestration
- tray runtime
- MPV event binding/runtime hooks
- Keep
main.tsas composition root only (state wiring + module registration). - Define narrow service/deps interfaces per module to reduce closure capture.
- Add/adjust unit tests for extracted modules.
- Preserve existing CLI/IPC behavior exactly.
- Update architecture docs with new ownership boundaries.
Acceptance Criteria
- #1
src/main.tsresponsibilities reduced to composition/wiring concerns - #2 Extracted runtime modules have focused interfaces and isolated tests
- #3 No CLI/IPC regressions in existing test suite
- #4 Docs reflect new module boundaries
Definition of Done
- #1
bun run test:fastpasses - #2 Architecture docs updated