- Extract remaining runtime helper clusters from main.ts into dedicated modules for readability:\n - src/main/jlpt-runtime.ts\n - src/main/media-runtime.ts\n - src/main/overlay-visibility-runtime.ts\n- Wire main.ts to use the new runtime services and remove duplicated in-file helpers.\n- Preserve existing behavior via full typecheck + test:fast verification.\n- Finalize and archive TASK-56 backlog entry; update TASK-54 with completion metadata and summary.
- Remove structural quality gates task and references from task-27 roadmap.
- Remove structural-gates-adjacent work from scripts/positioning cleanup context, including check-main-lines adjustments.
- Archive completed backlog tasks 11 and 27.7 by moving them to completed directory.
- Finish task-27.5 module split by moving/anonymizing anki-integration and renderer positioning files into their dedicated directories and updating paths.
- Merge feature branch changes for n+1 target-only highlight flow
- Extend merged token model and token-merger to mark exactly-one unknown targets
- Thread n+1 candidate metadata through tokenizer and config systems
- Update subtitle renderer/state to route configured colors and new token class
- Resolve merge conflicts in core service tests, including subtitle and subsync behavior
- Add CLI command flag with non-GUI dispatch flow and OSD error handling.
- Add runtime integration call and IPC hook so manual refresh works from command runner without app startup.
- Add public AnkiIntegration manual refresh API with force refresh semantics and guard reuse.
- Preserve default n+1 behavior by fixing config validation for malformed values and adding tests.