Files
SubMiner/backlog/tasks/task-78 - Modularize-config-definitions-and-validation-by-domain.md

1.8 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
id title status assignee created_date updated_date labels dependencies priority
TASK-78 Modularize config definitions and validation by domain To Do
2026-02-18 11:43 2026-02-18 11:43
config
refactor
maintainability
TASK-69
TASK-72
high

Description

Config defaults and resolution are still concentrated in large files (src/config/definitions.ts, src/config/service.ts). This task splits config schema/defaults/validation into domain modules while preserving a single composed public config API.

Suggestions

  • Organize by domain (anki, subtitle, jellyfin, anilist, launcher, runtime).
  • Keep one composition root that merges domain validators and defaults.
  • Prefer small reusable validator helpers over per-field inline logic.

Action Steps

  1. Define domain module boundaries for defaults + validation rules.
  2. Extract domain validators with shared primitives and warning builder.
  3. Compose resolved config in a central aggregator module.
  4. Keep ConfigService external API stable.
  5. Expand tests for domain-level validation and composed config output.
  6. Update config docs to reflect module ownership and extension workflow.

Acceptance Criteria

  • #1 Config definitions/validation are split by domain with clear ownership
  • #2 ConfigService API remains backward-compatible
  • #3 Validation behavior remains stable under existing tests
  • #4 New domain-level tests prevent regression in future config additions

Definition of Done

  • #1 Config and core tests pass
  • #2 Documentation updated for config extension workflow