Share config discovery logic between main and launcher so XDG/home and SubMiner/subminer precedence stay consistent. Add regression tests for resolution order and keep config path/show behavior stable.
- map segmented Yomitan lines into single logical tokens and improve candidate selection heuristics
- limit frequency lookup to selected token text with POS-based exclusions and add debug logging hook
- add standalone Yomitan parser test script, deterministic utility-script shutdown, and docs/backlog updates
- 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.
- 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.