Files
SubMiner/backlog/tasks/task-238.8 - Refactor-src-main.ts-composition-root-into-domain-runtimes.md

1.5 KiB

id, title, status, assignee, created_date, labels, dependencies, references, parent_task_id, priority
id title status assignee created_date labels dependencies references parent_task_id priority
TASK-238.8 Refactor src/main.ts composition root into domain runtimes To Do
2026-03-31 06:28
tech-debt
runtime
maintainability
composition-root
src/main.ts
src/main/boot/services
src/main/runtime/composers
docs/architecture/README.md
TASK-238 high

Description

Refactor src/main.ts so it becomes a thin composition root and the domain-specific runtime wiring moves into short wrapper modules under src/main/. Preserve all current behavior, IPC contracts, and config/schema semantics while reducing the entrypoint to boot services, grouped runtime instantiation, startup execution, and process-level quit handling.

Acceptance Criteria

  • #1 src/main.ts is bootstrap/composition only: platform preflight, boot services, runtime creation, startup execution, and top-level quit/signal handling.
  • #2 src/main.ts no longer imports src/main/runtime/*-main-deps.ts directly.
  • #3 src/main.ts has no local names like build*MainDepsHandler, *MainDeps, or trivial *Handler pass-through wrappers.
  • #4 New wrapper files stay under ~500 LOC each; if one exceeds that, split before merge.
  • #5 Cross-domain coordination stays in main.ts; wrapper modules stay acyclic and communicate via injected callbacks.
  • #6 No user-facing behavior, config fields, or IPC channel names change.