Files
SubMiner/backlog/tasks/task-238.6 - Extract-remaining-inline-runtime-logic-and-composer-gaps-from-src-main.ts.md
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

2.9 KiB

id, title, status, assignee, created_date, labels, milestone, dependencies, references, parent_task_id, priority
id title status assignee created_date labels milestone dependencies references parent_task_id priority
TASK-238.6 Extract remaining inline runtime logic and composer gaps from src/main.ts To Do
2026-03-27 00:00
tech-debt
runtime
maintainability
composers
m-0
TASK-238.1
TASK-238.2
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
TASK-238 high

Description

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.

Acceptance Criteria

  • #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.

Implementation Plan

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.