mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-27 06:12:05 -07:00
- Track follow-up cleanup work in Backlog.md - Replace Date.now usage with shared nowMs helper - Add launcher args/parser and core regression tests
61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
---
|
|
id: TASK-238.6
|
|
title: Extract remaining inline runtime logic and composer gaps from src/main.ts
|
|
status: To Do
|
|
assignee: []
|
|
created_date: '2026-03-27 00:00'
|
|
labels:
|
|
- tech-debt
|
|
- runtime
|
|
- maintainability
|
|
- composers
|
|
milestone: m-0
|
|
dependencies:
|
|
- TASK-238.1
|
|
- TASK-238.2
|
|
references:
|
|
- src/main.ts
|
|
- src/main/runtime/youtube-flow.ts
|
|
- src/main/runtime/autoplay-ready-gate.ts
|
|
- src/main/runtime/subtitle-prefetch-init.ts
|
|
- src/main/runtime/discord-presence-runtime.ts
|
|
- src/main/overlay-modal-state.ts
|
|
- src/main/runtime/composers
|
|
parent_task_id: TASK-238
|
|
priority: high
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
`src/main.ts` still mixes two concerns: pure dependency wiring and inline runtime logic. The earlier composer extractions reduce the wiring burden, but the file still owns several substantial behavior blocks and a few large inline dependency groupings. This task tracks the next maintainability pass: move the remaining runtime logic into the appropriate domain modules, add missing composer wrappers for the biggest grouped handler blocks, and reassess whether a boot-phase split is still necessary after the entrypoint becomes mostly wiring.
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
|
|
<!-- AC:BEGIN -->
|
|
- [ ] #1 `runYoutubePlaybackFlow`, `maybeSignalPluginAutoplayReady`, `refreshSubtitlePrefetchFromActiveTrack`, `publishDiscordPresence`, and `handleModalInputStateChange` no longer live as substantial inline logic in `src/main.ts`.
|
|
- [ ] #2 The large subtitle/prefetch, stats startup, and overlay visibility dependency groupings are wrapped behind named composer helpers instead of remaining inline in `src/main.ts`.
|
|
- [ ] #3 `src/main.ts` reads primarily as a boot and lifecycle coordinator, with domain behavior concentrated in named runtime modules.
|
|
- [ ] #4 Focused tests cover the extracted behavior or the new composer surfaces.
|
|
- [ ] #5 The task records whether the remaining size still justifies a boot-phase split or whether that follow-up can wait.
|
|
<!-- AC:END -->
|
|
|
|
## Implementation Plan
|
|
|
|
<!-- SECTION:PLAN:BEGIN -->
|
|
Recommended sequence:
|
|
|
|
1. Let the current composer and `setup-window-factory` work land first so this slice starts from a stable wiring baseline.
|
|
2. Extract the five inline runtime functions into their natural domain modules or direct equivalents.
|
|
3. Add or extend composer helpers for subtitle/prefetch, stats startup, and overlay visibility handler grouping.
|
|
4. Re-scan `src/main.ts` after the extraction and decide whether a boot-phase split is still the right next task.
|
|
5. Verify the extracted behavior with focused tests first, then run the relevant broader runtime gate if the slice crosses startup boundaries.
|
|
|
|
Guardrails:
|
|
|
|
- Keep the work behavior-preserving.
|
|
- Prefer moving logic to existing runtime surfaces over creating new giant helper files.
|
|
- Do not expand into unrelated `src/main.ts` cleanup that is already tracked by other TASK-238 slices.
|
|
<!-- SECTION:PLAN:END -->
|