Files
SubMiner/docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md

109 KiB

Agent: codex-task85-20260219T233711Z-46hc

  • alias: codex-task85
  • mission: Resume TASK-85 maintainability refactor from latest handoff point
  • status: in_progress
  • branch: main
  • started_at: 2026-02-19T23:37:11Z
  • heartbeat_minutes: 5

Current Work (newest first)

  • [2026-02-20T11:32:45Z] progress: extracted MPV OSD composition from src/main.ts into src/main/runtime/mpv-osd-runtime-handlers.ts; main.ts now receives appendToMpvLog and showMpvOsd from one runtime factory.
  • [2026-02-20T11:32:45Z] progress: extracted secondary subtitle mode composition from src/main.ts into src/main/runtime/secondary-sub-mode-runtime-handler.ts; main.ts now builds cycleSecondarySubMode via one runtime handler factory.
  • [2026-02-20T11:32:45Z] progress: added parity tests src/main/runtime/mpv-osd-runtime-handlers.test.ts and src/main/runtime/secondary-sub-mode-runtime-handler.test.ts.
  • [2026-02-20T11:32:45Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for mpv-osd-runtime-handlers*, secondary-sub-mode-runtime-handler*, mpv-osd-log*, secondary-sub-mode-main-deps*, and global-shortcuts-runtime-handlers* (7/7).
  • [2026-02-20T11:32:45Z] scope: staging src/main.ts, new mpv-osd/secondary-sub runtime handler modules/tests, and subagent bookkeeping only.
  • [2026-02-20T11:18:02Z] progress: extracted global shortcuts composition from src/main.ts into src/main/runtime/global-shortcuts-runtime-handlers.ts; main.ts now obtains getConfiguredShortcuts/registerGlobalShortcuts/refreshGlobalAndOverlayShortcuts from one runtime factory.
  • [2026-02-20T11:18:02Z] progress: added parity coverage in src/main/runtime/global-shortcuts-runtime-handlers.test.ts for get/register/refresh wiring.
  • [2026-02-20T11:18:02Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for global-shortcuts-runtime-handlers*, global-shortcuts*, global-shortcuts-main-deps*, cli-command-runtime-handler*, and startup-runtime-handlers* (9/9).
  • [2026-02-20T11:18:02Z] scope: staging src/main.ts, new global-shortcuts runtime handlers module/test, and subagent bookkeeping only.
  • [2026-02-20T11:15:54Z] progress: extracted CLI command composition from src/main.ts into src/main/runtime/cli-command-runtime-handler.ts; main.ts now creates handleCliCommand via one runtime factory (precheck + context + runtime dispatch wiring).
  • [2026-02-20T11:15:54Z] progress: added src/main/runtime/cli-command-runtime-handler.test.ts to lock composed behavior around texthooker precheck, context creation, and 'initial' source forwarding.
  • [2026-02-20T11:15:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for cli-command-runtime-handler*, cli-command-prechecks*, cli-command-context-factory*, initial-args-runtime-handler*, and startup-runtime-handlers* (7/7).
  • [2026-02-20T11:15:54Z] scope: staging src/main.ts, new cli-command runtime handler module/test, and subagent bookkeeping only.
  • [2026-02-20T11:14:14Z] progress: extracted startup/app-lifecycle composition from src/main.ts into src/main/runtime/startup-runtime-handlers.ts; rewired main.ts to inject createAppLifecycleRuntimeRunner + createStartupBootstrapRuntimeDeps into createStartupRuntimeHandlers(...).
  • [2026-02-20T11:14:14Z] progress: extracted initial-args composition from src/main.ts into src/main/runtime/initial-args-runtime-handler.ts; main.ts now constructs handleInitialArgsRuntimeHandler with one runtime factory call.
  • [2026-02-20T11:14:14Z] progress: added parity tests src/main/runtime/startup-runtime-handlers.test.ts and src/main/runtime/initial-args-runtime-handler.test.ts (fixing previous node:sqlite test-import leak by removing direct runtime imports from startup handler module).
  • [2026-02-20T11:14:14Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for startup-runtime-handlers*, startup-lifecycle-main-deps*, startup-bootstrap-main-deps*, startup-bootstrap-deps-builder*, startup-warmups*, initial-args-runtime-handler*, initial-args-handler*, cli-command-context-factory*, and cli-command-prechecks* (23/23).
  • [2026-02-20T11:14:14Z] scope: staging src/main.ts, new startup/initial-args runtime handler modules + tests, and subagent bookkeeping only.
  • [2026-02-20T11:06:51Z] progress: extracted overlay bootstrap composition from src/main.ts into src/main/runtime/overlay-runtime-bootstrap-handlers.ts; main.ts now creates initializeOverlayRuntime through createOverlayRuntimeBootstrapHandlers(...).
  • [2026-02-20T11:06:51Z] progress: added src/main/runtime/overlay-runtime-bootstrap-handlers.test.ts for composed bootstrap behavior.
  • [2026-02-20T11:06:51Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for overlay-runtime-bootstrap-handlers*, overlay-runtime-bootstrap*, overlay-runtime-options*, overlay-window-runtime-handlers*, tray-runtime-handlers*, and cli-command-context-factory* (8/8).
  • [2026-02-20T11:06:51Z] scope: staging src/main.ts, new overlay bootstrap handlers module/tests, and subagent bookkeeping only.
  • [2026-02-20T10:17:29Z] progress: extracted Yomitan settings opener composition from src/main.ts into src/main/runtime/yomitan-settings-runtime.ts; main.ts now uses createYomitanSettingsRuntime(...) and consumes openYomitanSettings from that runtime.
  • [2026-02-20T10:17:29Z] progress: added src/main/runtime/yomitan-settings-runtime.test.ts for composed runtime behavior.
  • [2026-02-20T10:17:29Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for yomitan-settings-runtime*, yomitan-settings-opener*, yomitan-extension-runtime*, cli-command-context-factory*, and tray-runtime-handlers* (7/7).
  • [2026-02-20T10:17:29Z] scope: staging src/main.ts, new yomitan settings runtime module/tests, and subagent bookkeeping only.
  • [2026-02-20T10:15:51Z] progress: extracted overlay window factory composition from src/main.ts into src/main/runtime/overlay-window-runtime-handlers.ts; main.ts now composes overlay/main/invisible window handlers via one runtime factory.
  • [2026-02-20T10:15:51Z] progress: added src/main/runtime/overlay-window-runtime-handlers.test.ts for composed window handler wiring.
  • [2026-02-20T10:15:51Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for overlay-window-runtime-handlers*, overlay-window-factory*, overlay-runtime-bootstrap*, tray-runtime-handlers*, and cli-command-context-factory* (9/9).
  • [2026-02-20T10:15:51Z] scope: staging src/main.ts, new overlay-window runtime module/tests, and subagent bookkeeping only.
  • [2026-02-20T10:14:17Z] progress: extracted tray composition wiring from src/main.ts into src/main/runtime/tray-runtime-handlers.ts; main.ts now composes resolveTrayIconPath/buildTrayMenu/ensureTray/destroyTray through one factory.
  • [2026-02-20T10:14:17Z] progress: added src/main/runtime/tray-runtime-handlers.test.ts covering composed tray handler behavior.
  • [2026-02-20T10:14:17Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for tray-runtime-handlers*, tray-main-actions*, tray-main-deps*, tray-runtime*, tray-lifecycle*, cli-command-context-factory*, and overlay-visibility-runtime* (12/12).
  • [2026-02-20T10:14:17Z] scope: staging src/main.ts, new tray runtime handlers module/tests, and subagent bookkeeping only.
  • [2026-02-20T10:06:15Z] progress: extracted CLI command-context composition from src/main.ts into src/main/runtime/cli-command-context-factory.ts; main.ts now creates context via createCliCommandContextFactory(...).
  • [2026-02-20T10:06:15Z] progress: added src/main/runtime/cli-command-context-factory.test.ts to validate composed factory behavior.
  • [2026-02-20T10:06:15Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for cli-command-context-factory*, cli-command-context*, ipc-runtime-handlers*, ipc-bridge-actions*, overlay-visibility-runtime*, and yomitan-extension-runtime* (12/12).
  • [2026-02-20T10:06:15Z] scope: staging src/main.ts, new CLI context factory module/tests, and subagent bookkeeping only.
  • [2026-02-20T10:04:27Z] progress: extracted IPC bridge composition from src/main.ts into src/main/runtime/ipc-runtime-handlers.ts; main.ts now builds handleMpvCommandFromIpc and runSubsyncManualFromIpc via one createIpcRuntimeHandlers(...) factory.
  • [2026-02-20T10:04:27Z] progress: added src/main/runtime/ipc-runtime-handlers.test.ts for composed IPC handler wiring behavior.
  • [2026-02-20T10:04:27Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for ipc-runtime-handlers*, ipc-bridge-actions*, cli-command-context*, yomitan-extension-runtime*, and overlay-visibility-runtime* (11/11).
  • [2026-02-20T10:04:27Z] scope: staging only src/main.ts, new IPC runtime module/tests, and subagent bookkeeping.
  • [2026-02-20T10:02:30Z] progress: extracted overlay visibility action composition from src/main.ts into new runtime module src/main/runtime/overlay-visibility-runtime.ts; main.ts now consumes a single createOverlayVisibilityRuntime(...) factory for set/toggle overlay handlers.
  • [2026-02-20T10:02:30Z] progress: added src/main/runtime/overlay-visibility-runtime.test.ts to lock behavior of composed set/toggle/setOverlay/toggleOverlay wiring.
  • [2026-02-20T10:02:30Z] test: bun run build pass (expected macOS helper Swift cache fallback) + focused suites pass for overlay-visibility-runtime*, overlay-visibility-actions*, overlay-runtime-bootstrap*, overlay-window-layout*, and cli-command-context* (16/16).
  • [2026-02-20T10:02:30Z] scope: committing src/main.ts, new overlay visibility runtime module/tests, and subagent bookkeeping only.
  • [2026-02-20T09:59:54Z] progress: pivot batch completed: extracted Yomitan extension runtime wiring from src/main.ts into new module src/main/runtime/yomitan-extension-runtime.ts and replaced main.ts setup with createYomitanExtensionRuntime(...).
  • [2026-02-20T09:59:54Z] progress: added regression coverage for extracted composition in src/main/runtime/yomitan-extension-runtime.test.ts; finalized remaining inline build*MainDepsHandler(), constructor sites in src/main.ts (count now 0).
  • [2026-02-20T09:59:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for yomitan-extension-runtime*, yomitan-extension-loader*, mpv-subtitle-render-metrics*, overlay-window-layout*, mining-actions*, ipc-bridge-actions*, cli-command-context*, startup-warmups* (30/30).
  • [2026-02-20T09:59:54Z] scope: staging src/main.ts, new Yomitan runtime module/tests, and subagent bookkeeping only; unrelated workspace deltas remain excluded.
  • [2026-02-20T09:51:57Z] progress: completed another 2-slice safe batch (10 normalized sites) by prebuilding finalized deps for stop/run Jellyfin command handlers, app lifecycle runner, initial-args handler, MPV event binding, and numeric/overlay-shortcut related setup.
  • [2026-02-20T09:51:57Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for jellyfin-command-dispatch*, jellyfin-remote-session-lifecycle, app-lifecycle-*, initial-args*, mpv-main-event-*, numeric-shortcut-*, overlay-shortcuts-lifecycle*, and anki-actions (39/39).
  • [2026-02-20T09:51:57Z] scope: committing only src/main.ts + subagent bookkeeping files; unrelated workspace noise still excluded.
  • [2026-02-20T09:51:02Z] progress: completed 2 more safe slices (10 normalized sites) in src/main.ts by prebuilding finalized deps for numeric shortcut pending-session handlers and overlay-shortcuts/Anki action handler setup.
  • [2026-02-20T09:51:02Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for numeric-shortcut-*, overlay-shortcuts-lifecycle*, and anki-actions (17/17).
  • [2026-02-20T09:51:02Z] scope: commit includes only src/main.ts + subagent bookkeeping files; unrelated workspace deltas still excluded.
  • [2026-02-20T09:48:39Z] progress: completed another 2-slice safe batch in src/main.ts (10 normalized sites) by prebuilding finalized deps for Jellyfin CLI/session handlers and startup warmup/overlay-bounds handlers.
  • [2026-02-20T09:48:39Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for jellyfin-cli-*, jellyfin-remote-session-lifecycle, startup-warmups*, and overlay-window-layout* (29/29).
  • [2026-02-20T09:48:39Z] scope: commit will include src/main.ts and subagent bookkeeping only; unrelated tracked/untracked files remain untouched.
  • [2026-02-20T09:47:23Z] progress: completed another 2-slice safe batch in src/main.ts (10 normalized sites) by prebuilding finalized deps for overlay/jellyfin-config handlers and Jellyfin MPV launch/preload/playback handlers.
  • [2026-02-20T09:47:23Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for overlay-runtime-options*, jellyfin-client-info*, jellyfin-remote-connection*, jellyfin-subtitle-preload*, and jellyfin-playback-launch* (20/20).
  • [2026-02-20T09:47:23Z] scope: commit will include only src/main.ts plus subagent bookkeeping updates; unrelated working tree noise remains excluded.
  • [2026-02-20T09:46:08Z] progress: completed 2 more safe slices (10 normalized handler sites) in src/main.ts by prebuilding finalized deps for Jellyfin remote command/progress handlers plus field-grouping/runtime-options handlers.
  • [2026-02-20T09:46:08Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for jellyfin-remote-*, field-grouping-resolver*, overlay-runtime-options*, and secondary-sub-mode-main-deps (26/26).
  • [2026-02-20T09:46:08Z] scope: staging only src/main.ts + subagent index/agent files; leaving unrelated tracked/untracked artifacts untouched.
  • [2026-02-20T09:44:47Z] progress: added another safe 5-block normalization in src/main.ts for early startup/runtime wiring by prebuilding finalized deps for applyJellyfinMpvDefaults, getDefaultSocketPath, overlayContentMeasurementStore, subtitleProcessingController, and config hot-reload message handler.
  • [2026-02-20T09:44:47Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for mpv-jellyfin-defaults*, config-hot-reload-*, and subtitle-processing-controller (18/18).
  • [2026-02-20T09:44:47Z] scope: this commit batch now includes 4 refactor slices (20 normalized main.ts handler construction sites) + subagent bookkeeping updates.
  • [2026-02-20T09:43:47Z] progress: completed larger safe batch in src/main.ts across 3 contiguous slices (15 normalized sites) by prebuilding finalized deps objects for AniList media-state handlers, AniList post-watch/retry handlers, and protocol/lifecycle/subtitle-position handlers.
  • [2026-02-20T09:43:47Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for anilist-media-state*, anilist-media-guess*, anilist-post-watch*, subtitle-position*, protocol-url-handlers*, app-lifecycle-main-activate*, startup-config* (39/39).
  • [2026-02-20T09:43:47Z] scope: staging only src/main.ts + subagent bookkeeping files for one large checkpoint commit; excluding unrelated vendor/texthooker-ui, backlog task draft, and other agent files.
  • [2026-02-20T09:41:54Z] progress: completed another 5-block safe normalization in src/main.ts by prebuilding finalized deps objects for notifyAnilistSetup, consumeAnilistSetupTokenFromUrl, handleAnilistSetupProtocolUrl, registerSubminerProtocolClient, and refreshAnilistClientSecretState.
  • [2026-02-20T09:41:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted AniList suites pass: anilist-setup-protocol-main-deps, anilist-setup-protocol, anilist-token-refresh-main-deps, anilist-token-refresh (13/13).
  • [2026-02-20T09:41:54Z] scope: staged-only checkpoint planned for src/main.ts + subagent bookkeeping files; excluding unrelated vendor/texthooker-ui and other agent/backlog artifacts.
  • [2026-02-20T08:34:16Z] progress: extracted field-grouping resolver deps assembly into src/main/runtime/field-grouping-resolver-main-deps.ts and rewired getFieldGroupingResolver/setFieldGroupingResolver handler construction in src/main.ts.
  • [2026-02-20T08:34:16Z] progress: extracted Yomitan extension loader deps assembly into src/main/runtime/yomitan-extension-loader-main-deps.ts and rewired loadYomitanExtension/ensureYomitanExtensionLoaded handler construction in src/main.ts.
  • [2026-02-20T08:34:16Z] progress: added parity tests in src/main/runtime/field-grouping-resolver-main-deps.test.ts and src/main/runtime/yomitan-extension-loader-main-deps.test.ts; src/main.ts now 2993 LOC.
  • [2026-02-20T08:34:16Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/yomitan-extension-loader-main-deps.test.js dist/main/runtime/yomitan-extension-loader.test.js dist/main/runtime/field-grouping-resolver-main-deps.test.js dist/main/runtime/anilist-token-refresh-main-deps.test.js pass (7/7).
  • [2026-02-20T08:31:52Z] progress: extracted AniList media-state deps assembly into src/main/runtime/anilist-media-state-main-deps.ts and rewired media-key/media-guess state handlers in src/main.ts.
  • [2026-02-20T08:31:52Z] progress: extracted subtitle-position deps assembly into src/main/runtime/subtitle-position-main-deps.ts and rewired load/save subtitle position handlers in src/main.ts.
  • [2026-02-20T08:31:52Z] progress: extracted AniList token-refresh deps assembly into src/main/runtime/anilist-token-refresh-main-deps.ts and rewired refreshAnilistClientSecretState handler construction in src/main.ts.
  • [2026-02-20T08:31:52Z] progress: added parity tests in src/main/runtime/anilist-media-state-main-deps.test.ts, src/main/runtime/subtitle-position-main-deps.test.ts, and src/main/runtime/anilist-token-refresh-main-deps.test.ts; src/main.ts now 2968 LOC.
  • [2026-02-20T08:31:52Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-token-refresh-main-deps.test.js dist/main/runtime/anilist-token-refresh.test.js dist/main/runtime/anilist-media-state-main-deps.test.js dist/main/runtime/subtitle-position-main-deps.test.js dist/main/runtime/jellyfin-subtitle-preload-main-deps.test.js pass (12/12).
  • [2026-02-20T08:12:54Z] progress: extracted Jellyfin subtitle-preload deps assembly into src/main/runtime/jellyfin-subtitle-preload-main-deps.ts and rewired preloadJellyfinExternalSubtitles construction in src/main.ts.
  • [2026-02-20T08:12:54Z] progress: added parity tests in src/main/runtime/jellyfin-subtitle-preload-main-deps.test.ts; src/main.ts now 2926 LOC.
  • [2026-02-20T08:12:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-subtitle-preload-main-deps.test.js dist/main/runtime/jellyfin-subtitle-preload.test.js dist/main/runtime/jellyfin-remote-session-main-deps.test.js pass (6/6).
  • [2026-02-20T08:11:29Z] progress: committed checkpoint a85b6c2 (refactor: extract additional main runtime dependency builders) and continued with Jellyfin remote-session deps extraction.
  • [2026-02-20T08:11:29Z] progress: extracted start/stop Jellyfin remote-session deps assembly into src/main/runtime/jellyfin-remote-session-main-deps.ts and rewired those constructor sites in src/main.ts.
  • [2026-02-20T08:11:29Z] progress: added parity tests in src/main/runtime/jellyfin-remote-session-main-deps.test.ts; src/main.ts now 2921 LOC.
  • [2026-02-20T08:11:29Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-session-main-deps.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-command-dispatch-main-deps.test.js pass (5/5).
  • [2026-02-20T08:00:02Z] progress: extracted Jellyfin command-dispatch deps assembly into src/main/runtime/jellyfin-command-dispatch-main-deps.ts (createBuildRunJellyfinCommandMainDepsHandler) and rewired runJellyfinCommand construction in src/main.ts.
  • [2026-02-20T08:00:02Z] progress: added parity tests in src/main/runtime/jellyfin-command-dispatch-main-deps.test.ts; src/main.ts now 2909 LOC.
  • [2026-02-20T08:00:02Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-command-dispatch-main-deps.test.js dist/main/runtime/jellyfin-command-dispatch.test.js dist/main/runtime/jellyfin-cli-main-deps.test.js pass (8/8).
  • [2026-02-20T07:58:40Z] progress: extracted Jellyfin CLI handler deps assembly into src/main/runtime/jellyfin-cli-main-deps.ts (auth/list/play/remote-announce builders) and rewired those handler construction sites in src/main.ts.
  • [2026-02-20T07:58:40Z] progress: added parity tests in src/main/runtime/jellyfin-cli-main-deps.test.ts; src/main.ts now 2905 LOC.
  • [2026-02-20T07:58:40Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-cli-main-deps.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (16/16).
  • [2026-02-20T07:57:16Z] progress: extracted AniList setup protocol deps assembly into src/main/runtime/anilist-setup-protocol-main-deps.ts (notify, consume-token, protocol-url, protocol-client builders) and rewired those handler construction sites in src/main.ts.
  • [2026-02-20T07:57:16Z] progress: added parity tests in src/main/runtime/anilist-setup-protocol-main-deps.test.ts; src/main.ts now 2882 LOC.
  • [2026-02-20T07:57:16Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-protocol-main-deps.test.js dist/main/runtime/anilist-setup-protocol.test.js dist/main/runtime/jellyfin-client-info-main-deps.test.js pass (6/6).
  • [2026-02-20T07:52:56Z] progress: extracted Jellyfin client-info deps assembly into src/main/runtime/jellyfin-client-info-main-deps.ts (resolved-config + client-info builders) and rewired those handler construction sites in src/main.ts.
  • [2026-02-20T07:52:56Z] progress: added parity tests in src/main/runtime/jellyfin-client-info-main-deps.test.ts; src/main.ts now 2859 LOC.
  • [2026-02-20T07:52:56Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-client-info-main-deps.test.js dist/main/runtime/jellyfin-client-info.test.js dist/main/runtime/mpv-jellyfin-defaults-main-deps.test.js pass (5/5).
  • [2026-02-20T07:51:58Z] progress: extracted MPV/Jellyfin defaults deps assembly into src/main/runtime/mpv-jellyfin-defaults-main-deps.ts (apply-defaults + default-socket-path builders) and rewired those constructor sites in src/main.ts.
  • [2026-02-20T07:51:58Z] progress: added parity tests in src/main/runtime/mpv-jellyfin-defaults-main-deps.test.ts; src/main.ts now 2848 LOC.
  • [2026-02-20T07:51:58Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-jellyfin-defaults-main-deps.test.js dist/main/runtime/mpv-jellyfin-defaults.test.js dist/main/runtime/jellyfin-remote-connection-main-deps.test.js pass (5/5).
  • [2026-02-20T07:46:45Z] progress: extracted Jellyfin remote-connection deps assembly into src/main/runtime/jellyfin-remote-connection-main-deps.ts (wait, launch, ensure builders) and rewired those constructor sites in src/main.ts.
  • [2026-02-20T07:46:45Z] progress: added parity tests in src/main/runtime/jellyfin-remote-connection-main-deps.test.ts; src/main.ts now 2837 LOC.
  • [2026-02-20T07:46:45Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-connection-main-deps.test.js dist/main/runtime/jellyfin-remote-connection.test.js dist/main/runtime/jellyfin-remote-main-deps.test.js pass (8/8).
  • [2026-02-20T07:44:09Z] progress: extracted runtime-options/overlay-action deps assembly into src/main/runtime/overlay-runtime-main-actions-main-deps.ts (get-state, restore-secondary-sub, broadcast, send-active-overlay, debug-visualization, open-palette builders) and rewired handler construction in src/main.ts.
  • [2026-02-20T07:44:09Z] progress: added parity tests in src/main/runtime/overlay-runtime-main-actions-main-deps.test.ts; src/main.ts now 2821 LOC.
  • [2026-02-20T07:44:09Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-runtime-main-actions-main-deps.test.js dist/main/runtime/overlay-runtime-main-actions.test.js dist/main/runtime/overlay-bootstrap-main-deps.test.js pass (10/10).
  • [2026-02-20T07:42:00Z] progress: extracted overlay bootstrap deps assembly into src/main/runtime/overlay-bootstrap-main-deps.ts (createBuildOverlayContentMeasurementStoreMainDepsHandler, createBuildOverlayModalRuntimeMainDepsHandler) and rewired overlay measurement/modal constructor wiring in src/main.ts.
  • [2026-02-20T07:42:00Z] progress: added parity tests in src/main/runtime/overlay-bootstrap-main-deps.test.ts; src/main.ts now 2794 LOC.
  • [2026-02-20T07:42:00Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-bootstrap-main-deps.test.js dist/core/services/overlay-content-measurement.test.js dist/main/runtime/runtime-bootstrap-main-deps.test.js pass (8/8).
  • [2026-02-20T07:40:24Z] progress: after push of commit 561f7b3, extracted bootstrap runtime deps assembly into src/main/runtime/runtime-bootstrap-main-deps.ts (immersion media, AniList state, config-derived, subsync builders) and rewired those constructor sites in src/main.ts.
  • [2026-02-20T07:40:24Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/runtime-bootstrap-main-deps.test.js dist/main/runtime/immersion-media.test.js dist/main/runtime/anilist-state.test.js pass (10/10).
  • [2026-02-20T07:35:01Z] progress: extracted subtitle processing controller deps assembly into src/main/runtime/subtitle-processing-main-deps.ts (createBuildSubtitleProcessingControllerMainDepsHandler) and rewired subtitleProcessingController construction in src/main.ts.
  • [2026-02-20T07:35:01Z] progress: added parity tests in src/main/runtime/subtitle-processing-main-deps.test.ts; src/main.ts now 2775 LOC.
  • [2026-02-20T07:35:01Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/subtitle-processing-main-deps.test.js dist/core/services/subtitle-processing-controller.test.js dist/main/runtime/jellyfin-remote-main-deps.test.js pass (9/9).
  • [2026-02-20T07:33:56Z] progress: extracted Jellyfin remote deps assembly into src/main/runtime/jellyfin-remote-main-deps.ts (play/playstate/general-command/progress/stopped builders) and rewired corresponding constructor wiring in src/main.ts to builder-based deps.
  • [2026-02-20T07:33:56Z] progress: added parity tests in src/main/runtime/jellyfin-remote-main-deps.test.ts; src/main.ts now 2770 LOC.
  • [2026-02-20T07:33:56Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-main-deps.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js pass (18/18).
  • [2026-02-20T07:31:59Z] progress: extracted config hot-reload dependency assembly into src/main/runtime/config-hot-reload-main-deps.ts (createWatchConfigPathHandler, createBuildConfigHotReloadAppliedMainDepsHandler, createBuildConfigHotReloadRuntimeMainDepsHandler) and rewired configHotReloadRuntime construction in src/main.ts to builder-based deps.
  • [2026-02-20T07:31:59Z] progress: preserved runtime parity by keeping debounce/watch-path behavior and createConfigHotReloadAppliedHandler side-effects unchanged while moving inline glue code out of src/main.ts.
  • [2026-02-20T07:31:59Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/config-hot-reload-main-deps.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/config-hot-reload.test.js pass (12/12).
  • [2026-02-20T07:31:59Z] next: continue TASK-85 by extracting next high-churn deps assembly from src/main.ts (candidate: startup/bootstrap or app-ready clusters) into focused *-main-deps.ts + parity tests.
  • [2026-02-20T03:27:35Z] progress: extracted CLI context deps builder into src/main/runtime/cli-command-context-deps.ts (createBuildCliCommandContextDepsHandler) and rewired handleCliCommand to build deps through the helper.
  • [2026-02-20T03:27:35Z] progress: extracted overlay runtime options builder into src/main/runtime/overlay-runtime-options.ts (createBuildInitializeOverlayRuntimeOptionsHandler) and rewired initializeOverlayRuntime buildOptions; extracted Yomitan extension load wrappers into src/main/runtime/yomitan-extension-loader.ts (createLoadYomitanExtensionHandler, createEnsureYomitanExtensionLoadedHandler) and rewired loadYomitanExtension + ensureYomitanExtensionLoaded.
  • [2026-02-20T03:27:35Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/cli-command-context-deps.test.js dist/main/runtime/overlay-runtime-options.test.js dist/main/runtime/yomitan-extension-loader.test.js dist/main/runtime/tray-main-actions.test.js dist/main/runtime/overlay-window-factory.test.js dist/main/runtime/ipc-bridge-actions.test.js dist/main/runtime/overlay-main-actions.test.js dist/main/runtime/overlay-visibility-actions.test.js dist/main/runtime/mining-actions.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (116/116).
  • [2026-02-20T03:19:44Z] progress: extracted tray wrappers into src/main/runtime/tray-main-actions.ts (createResolveTrayIconPathHandler, createBuildTrayMenuTemplateHandler) and rewired resolveTrayIconPath + buildTrayMenu.
  • [2026-02-20T03:19:44Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/tray-main-actions.test.js dist/main/runtime/overlay-window-factory.test.js dist/main/runtime/ipc-bridge-actions.test.js dist/main/runtime/overlay-main-actions.test.js dist/main/runtime/overlay-visibility-actions.test.js dist/main/runtime/mining-actions.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (110/110).
  • [2026-02-20T03:17:35Z] progress: extracted overlay window creation wrappers into src/main/runtime/overlay-window-factory.ts (createCreateOverlayWindowHandler, createCreateMainWindowHandler, createCreateInvisibleWindowHandler) and rewired createOverlayWindow, createMainWindow, createInvisibleWindow.
  • [2026-02-20T03:17:35Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-window-factory.test.js dist/main/runtime/ipc-bridge-actions.test.js dist/main/runtime/overlay-main-actions.test.js dist/main/runtime/overlay-visibility-actions.test.js dist/main/runtime/mining-actions.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (108/108).
  • [2026-02-20T03:14:23Z] progress: extracted thin wrapper cluster into src/main/runtime/overlay-main-actions.ts (createSetOverlayVisibleHandler, createToggleOverlayHandler, createHandleOverlayModalClosedHandler, createAppendClipboardVideoToQueueHandler) and rewired setOverlayVisible, toggleOverlay, handleOverlayModalClosed, appendClipboardVideoToQueue.
  • [2026-02-20T03:14:23Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-main-actions.test.js dist/main/runtime/overlay-visibility-actions.test.js dist/main/runtime/mining-actions.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (103/103).
  • [2026-02-20T03:11:11Z] progress: extracted overlay visibility set/toggle wrappers into src/main/runtime/overlay-visibility-actions.ts (createSetVisibleOverlayVisibleHandler, createSetInvisibleOverlayVisibleHandler, createToggleVisibleOverlayHandler, createToggleInvisibleOverlayHandler) and rewired corresponding main.ts functions.
  • [2026-02-20T03:11:11Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-visibility-actions.test.js dist/main/runtime/mining-actions.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (99/99).
  • [2026-02-20T02:56:34Z] progress: extracted subtitle copy/mine wrapper cluster into src/main/runtime/mining-actions.ts (createHandleMultiCopyDigitHandler, createCopyCurrentSubtitleHandler, createHandleMineSentenceDigitHandler) and rewired handleMultiCopyDigit, copyCurrentSubtitle, handleMineSentenceDigit.
  • [2026-02-20T02:56:34Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mining-actions.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (95/95).
  • [2026-02-20T02:55:17Z] progress: extracted Anki action wrappers into src/main/runtime/anki-actions.ts (createUpdateLastCardFromClipboardHandler, createRefreshKnownWordCacheHandler, createTriggerFieldGroupingHandler, createMarkLastCardAsAudioCardHandler, createMineSentenceCardHandler) and rewired main.ts handlers.
  • [2026-02-20T02:55:17Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anki-actions.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (92/92).
  • [2026-02-20T02:52:42Z] progress: extracted overlay shortcut lifecycle wrappers into src/main/runtime/overlay-shortcuts-lifecycle.ts (createRegisterOverlayShortcutsHandler, createUnregisterOverlayShortcutsHandler, createSyncOverlayShortcutsHandler, createRefreshOverlayShortcutsHandler) and rewired registerOverlayShortcuts/unregisterOverlayShortcuts/syncOverlayShortcuts/refreshOverlayShortcuts.
  • [2026-02-20T02:52:42Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (88/88).
  • [2026-02-20T02:51:23Z] progress: extracted numeric shortcut session wrappers into src/main/runtime/numeric-shortcut-session-handlers.ts (createCancelNumericShortcutSessionHandler, createStartNumericShortcutSessionHandler) and rewired pending multi-copy/mine-sentence helper functions in main.ts.
  • [2026-02-20T02:51:23Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (84/84).
  • [2026-02-20T02:50:30Z] progress: extracted MPV OSD + log helpers into src/main/runtime/mpv-osd-log.ts (createAppendToMpvLogHandler, createShowMpvOsdHandler) and rewired showMpvOsd + appendToMpvLog.
  • [2026-02-20T02:50:30Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (82/82).
  • [2026-02-20T02:49:09Z] progress: extracted global shortcut helpers into src/main/runtime/global-shortcuts.ts (createGetConfiguredShortcutsHandler, createRegisterGlobalShortcutsHandler, createRefreshGlobalAndOverlayShortcutsHandler); rewired getConfiguredShortcuts, registerGlobalShortcuts, and refreshGlobalAndOverlayShortcuts in main.ts.
  • [2026-02-20T02:49:09Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/global-shortcuts.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (79/79).
  • [2026-02-20T02:45:53Z] progress: extracted Yomitan settings window opener wrapper into src/main/runtime/yomitan-settings-opener.ts (createOpenYomitanSettingsHandler); rewired openYomitanSettings in main.ts.
  • [2026-02-20T02:45:53Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (76/76).
  • [2026-02-20T02:44:31Z] progress: extracted overlay runtime bootstrap wrapper into src/main/runtime/overlay-runtime-bootstrap.ts (createInitializeOverlayRuntimeHandler) and rewired initializeOverlayRuntime orchestration; plus tray lifecycle extraction into src/main/runtime/tray-lifecycle.ts (createEnsureTrayHandler, createDestroyTrayHandler).
  • [2026-02-20T02:44:31Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (74/74).
  • [2026-02-20T02:41:26Z] progress: extracted tray lifecycle orchestration into src/main/runtime/tray-lifecycle.ts (createEnsureTrayHandler, createDestroyTrayHandler); rewired ensureTray/destroyTray in main.ts with existing behavior preserved.
  • [2026-02-20T02:41:26Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (72/72).
  • [2026-02-20T02:33:47Z] progress: extracted tray icon resolution + tray menu template construction into src/main/runtime/tray-runtime.ts (resolveTrayIconPathRuntime, buildTrayMenuTemplateRuntime); rewired resolveTrayIconPath and buildTrayMenu in main.ts.
  • [2026-02-20T02:33:47Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/tray-runtime.test.js dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (69/69).
  • [2026-02-20T02:08:55Z] progress: extracted overlay bounds/window-level helpers into src/main/runtime/overlay-window-layout.ts (createUpdateVisibleOverlayBoundsHandler, createUpdateInvisibleOverlayBoundsHandler, createEnsureOverlayWindowLevelHandler, createEnforceOverlayLayerOrderHandler); rewired corresponding main.ts helpers.
  • [2026-02-20T02:08:55Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-window-layout.test.js dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (66/66).
  • [2026-02-20T01:16:52Z] progress: extracted startup warmup orchestration into src/main/runtime/startup-warmups.ts (createLaunchBackgroundWarmupTaskHandler, createStartBackgroundWarmupsHandler); rewired launchBackgroundWarmupTask + startBackgroundWarmups in main.ts.
  • [2026-02-20T01:16:52Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/startup-warmups.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (62/62).
  • [2026-02-20T01:15:36Z] progress: extracted subtitle render metrics state-update+broadcast slice into src/main/runtime/mpv-subtitle-render-metrics.ts (createUpdateMpvSubtitleRenderMetricsHandler); rewired updateMpvSubtitleRenderMetrics through a stable runtime handler.
  • [2026-02-20T01:15:36Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (59/59).
  • [2026-02-20T01:07:32Z] progress: extracted MPV runtime service construction/wiring from createMpvClientRuntimeService into src/main/runtime/mpv-client-runtime-service.ts (createMpvClientRuntimeServiceFactory); rewired main.ts to use factory with explicit options bundle.
  • [2026-02-20T01:07:32Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (57/57).
  • [2026-02-20T01:05:38Z] progress: extracted MPV client event binding orchestration from bindMpvClientEventHandlers into src/main/runtime/mpv-client-event-bindings.ts (createBindMpvClientEventHandlers, createHandleMpvConnectionChangeHandler, createHandleMpvSubtitleTimingHandler); rewired main.ts binding setup.
  • [2026-02-20T01:05:38Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (56/56).
  • [2026-02-20T00:59:30Z] progress: extracted CLI command context composition from handleCliCommand into src/main/runtime/cli-command-context.ts; rewired main.ts to build cliContext via factory before handleCliCommandRuntimeServiceWithContext.
  • [2026-02-20T00:59:30Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/cli-command-context.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (53/53).
  • [2026-02-20T00:47:26Z] progress: extracted CLI runtime prechecks + initial arg orchestration into src/main/runtime/cli-command-prechecks.ts and src/main/runtime/initial-args-handler.ts; rewired handleCliCommand texthooker-only transition and handleInitialArgs.
  • [2026-02-20T00:47:26Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (50/50).
  • [2026-02-20T00:45:18Z] progress: extracted setup-window lifecycle/focus bookkeeping helpers into runtime modules (createMaybeFocusExistingAnilistSetupWindowHandler, createHandleAnilistSetupWindowClosedHandler, createHandleAnilistSetupWindowOpenedHandler, createMaybeFocusExistingJellyfinSetupWindowHandler, createHandleJellyfinSetupWindowClosedHandler, createHandleJellyfinSetupWindowOpenedHandler); rewired openAnilistSetupWindow + openJellyfinSetupWindow.
  • [2026-02-20T00:45:18Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (43/43).
  • [2026-02-20T00:41:54Z] progress: extracted AniList setup fallback load-event callbacks into src/main/runtime/anilist-setup-window.ts (createAnilistSetupDidFailLoadHandler, createAnilistSetupDidFinishLoadHandler); rewired did-fail-load and did-finish-load hooks in openAnilistSetupWindow.
  • [2026-02-20T00:41:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (37/37).
  • [2026-02-20T00:40:53Z] progress: extracted AniList setup URL event handlers from openAnilistSetupWindow into src/main/runtime/anilist-setup-window.ts (createAnilistSetupWindowOpenHandler, createAnilistSetupWillNavigateHandler, createAnilistSetupWillRedirectHandler, createAnilistSetupDidNavigateHandler); rewired main.ts callbacks.
  • [2026-02-20T00:40:53Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (34/34).
  • [2026-02-20T00:35:26Z] progress: extracted Jellyfin setup window navigation interception into createHandleJellyfinSetupNavigationHandler in src/main/runtime/jellyfin-setup-window.ts; rewired openJellyfinSetupWindow will-navigate branch in src/main.ts.
  • [2026-02-20T00:35:26Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (26/26).
  • [2026-02-20T00:34:12Z] progress: extracted Jellyfin remote lifecycle orchestration from src/main.ts into src/main/runtime/jellyfin-remote-session-lifecycle.ts (createStartJellyfinRemoteSessionHandler, createStopJellyfinRemoteSessionHandler); rewired start/stop call sites and callbacks; src/main.ts now 2731 LOC.
  • [2026-02-20T00:34:12Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-session-lifecycle.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (20/20).
  • [2026-02-20T00:32:07Z] progress: extracted remaining runJellyfinCommand action branches into src/main/runtime/jellyfin-cli-play.ts and src/main/runtime/jellyfin-cli-remote-announce.ts; rewired main command router; src/main.ts now 2773 LOC.
  • [2026-02-20T00:32:07Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (16/16).
  • [2026-02-20T00:29:07Z] progress: extracted Jellyfin CLI listing branches (--jellyfin-libraries, --jellyfin-items, --jellyfin-subtitles) from runJellyfinCommand into src/main/runtime/jellyfin-cli-list.ts; rewired through createHandleJellyfinListCommands; src/main.ts now 2820 LOC.
  • [2026-02-20T00:29:07Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-auth.test.js pass (9/9).
  • [2026-02-20T00:19:13Z] progress: extracted AniList post-watch + queue orchestration into src/main/runtime/anilist-post-watch.ts, subtitle position state wrappers into src/main/runtime/subtitle-position.ts, and app protocol URL event wiring into src/main/runtime/protocol-url-handlers.ts; rewired main.ts; src/main.ts now 2853 LOC.
  • [2026-02-20T00:19:13Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/protocol-url-handlers.test.js dist/main/runtime/subtitle-position.test.js dist/main/runtime/anilist-post-watch.test.js dist/main/runtime/anilist-media-guess.test.js dist/main/runtime/anilist-token-refresh.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/anilist-setup-protocol.test.js dist/main/runtime/jellyfin-remote-connection.test.js dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (52/52).
  • [2026-02-20T00:12:40Z] progress: extracted AniList token/media resolution helpers from src/main.ts into src/main/runtime/anilist-token-refresh.ts and src/main/runtime/anilist-media-guess.ts; rewired refreshAnilistClientSecretState, maybeProbeAnilistDuration, and ensureAnilistMediaGuess; src/main.ts now 2892 LOC.
  • [2026-02-20T00:12:40Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-media-guess.test.js dist/main/runtime/anilist-token-refresh.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/anilist-setup-protocol.test.js dist/main/runtime/jellyfin-remote-connection.test.js dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (45/45).
  • [2026-02-20T00:08:57Z] progress: extracted Jellyfin setup window form/submission logic from src/main.ts into src/main/runtime/jellyfin-setup-window.ts (buildJellyfinSetupFormHtml, parseJellyfinSetupSubmissionUrl, createHandleJellyfinSetupSubmissionHandler); kept window lifecycle in main.
  • [2026-02-20T00:08:57Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/anilist-setup-protocol.test.js dist/main/runtime/jellyfin-remote-connection.test.js dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (39/39).
  • [2026-02-20T00:00:55Z] progress: extracted AniList setup/protocol handlers (notifyAnilistSetup, consumeAnilistSetupTokenFromUrl, handleAnilistSetupProtocolUrl, registerSubminerProtocolClient) from src/main.ts into src/main/runtime/anilist-setup-protocol.ts; rewired protocol registration and callback wiring; src/main.ts now 2988 LOC.
  • [2026-02-20T00:00:55Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-protocol.test.js dist/main/runtime/jellyfin-remote-connection.test.js dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (35/35).
  • [2026-02-19T23:58:32Z] progress: extracted Jellyfin MPV connection/bootstrap handlers (waitForMpvConnected, launchMpvIdleForJellyfinPlayback, ensureMpvConnectedForJellyfinPlayback) from src/main.ts into src/main/runtime/jellyfin-remote-connection.ts; rewired call sites; src/main.ts now 2996 LOC.
  • [2026-02-19T23:58:32Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-connection.test.js dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (31/31).
  • [2026-02-19T23:50:09Z] progress: extracted Jellyfin remote playback reporting logic (secondsToJellyfinTicks, reportJellyfinRemoteProgress, reportJellyfinRemoteStopped) from src/main.ts into src/main/runtime/jellyfin-remote-playback.ts; rewired main runtime handlers.
  • [2026-02-19T23:50:09Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-playback.test.js dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (28/28).
  • [2026-02-19T23:48:01Z] progress: extracted Jellyfin remote command/session parsing handlers from src/main.ts into src/main/runtime/jellyfin-remote-commands.ts (getConfiguredJellyfinSession, handleJellyfinRemotePlay, handleJellyfinRemotePlaystate, handleJellyfinRemoteGeneralCommand factories); rewired src/main.ts to use handler factories.
  • [2026-02-19T23:48:01Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-remote-commands.test.js dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (24/24).
  • [2026-02-19T23:40:59Z] progress: extracted config hot-reload apply/message callbacks from src/main.ts into src/main/runtime/config-hot-reload-handlers.ts; src/main.ts now 3096 LOC (down from 3116 at session start).
  • [2026-02-19T23:40:59Z] test: bun run build pass (expected macOS helper Swift cache fallback in sandbox) + node --test dist/main/runtime/config-hot-reload-handlers.test.js dist/core/services/app-ready.test.js dist/core/services/startup-bootstrap.test.js pass (19/19).
  • [2026-02-19T23:37:11Z] intent: review TASK-85 state + subagent handoff, then continue next refactor slice from prior checkpoint.
  • [2026-02-19T23:37:11Z] planned files: src/main.ts, src/main/runtime/*, src/main/runtime/*.test.ts, docs/subagents/INDEX.md, docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md.
  • [2026-02-19T23:37:11Z] assumptions: backlog MCP not initialized in this workspace; continue using existing backlog/tasks/task-85 - Refactor-large-files-for-maintainability-and-readability.md as source of truth.

Files Touched

  • docs/subagents/INDEX.md
  • docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md
  • src/main.ts
  • src/main/runtime/config-hot-reload-handlers.ts
  • src/main/runtime/config-hot-reload-handlers.test.ts
  • src/main/runtime/jellyfin-remote-commands.ts
  • src/main/runtime/jellyfin-remote-commands.test.ts
  • src/main/runtime/jellyfin-remote-playback.ts
  • src/main/runtime/jellyfin-remote-playback.test.ts
  • src/main/runtime/jellyfin-remote-connection.ts
  • src/main/runtime/jellyfin-remote-connection.test.ts
  • src/main/runtime/anilist-setup-protocol.ts
  • src/main/runtime/anilist-setup-protocol.test.ts
  • src/main/runtime/jellyfin-setup-window.ts
  • src/main/runtime/jellyfin-setup-window.test.ts
  • src/main/runtime/initial-args-handler.ts
  • src/main/runtime/initial-args-handler.test.ts
  • src/main/runtime/cli-command-prechecks.ts
  • src/main/runtime/cli-command-prechecks.test.ts
  • src/main/runtime/cli-command-context.ts
  • src/main/runtime/cli-command-context.test.ts
  • src/main/runtime/mpv-client-event-bindings.ts
  • src/main/runtime/mpv-client-event-bindings.test.ts
  • src/main/runtime/mpv-client-runtime-service.ts
  • src/main/runtime/mpv-client-runtime-service.test.ts
  • src/main/runtime/mpv-subtitle-render-metrics.ts
  • src/main/runtime/mpv-subtitle-render-metrics.test.ts
  • src/main/runtime/startup-warmups.ts
  • src/main/runtime/startup-warmups.test.ts
  • src/main/runtime/overlay-window-layout.ts
  • src/main/runtime/overlay-window-layout.test.ts
  • src/main/runtime/tray-runtime.ts
  • src/main/runtime/tray-runtime.test.ts
  • src/main/runtime/tray-lifecycle.ts
  • src/main/runtime/tray-lifecycle.test.ts
  • src/main/runtime/overlay-runtime-bootstrap.ts
  • src/main/runtime/overlay-runtime-bootstrap.test.ts
  • src/main/runtime/yomitan-settings-opener.ts
  • src/main/runtime/yomitan-settings-opener.test.ts
  • src/main/runtime/global-shortcuts.ts
  • src/main/runtime/global-shortcuts.test.ts
  • src/main/runtime/mpv-osd-log.ts
  • src/main/runtime/mpv-osd-log.test.ts
  • src/main/runtime/numeric-shortcut-session-handlers.ts
  • src/main/runtime/numeric-shortcut-session-handlers.test.ts
  • src/main/runtime/overlay-shortcuts-lifecycle.ts
  • src/main/runtime/overlay-shortcuts-lifecycle.test.ts
  • src/main/runtime/anki-actions.ts
  • src/main/runtime/anki-actions.test.ts
  • src/main/runtime/mining-actions.ts
  • src/main/runtime/mining-actions.test.ts
  • src/main/runtime/overlay-visibility-actions.ts
  • src/main/runtime/overlay-visibility-actions.test.ts
  • src/main/runtime/overlay-main-actions.ts
  • src/main/runtime/overlay-main-actions.test.ts
  • src/main/runtime/ipc-bridge-actions.ts
  • src/main/runtime/ipc-bridge-actions.test.ts
  • src/main/runtime/overlay-window-factory.ts
  • src/main/runtime/overlay-window-factory.test.ts
  • src/main/runtime/tray-main-actions.ts
  • src/main/runtime/tray-main-actions.test.ts
  • src/main/runtime/yomitan-extension-loader.ts
  • src/main/runtime/yomitan-extension-loader.test.ts
  • src/main/runtime/overlay-runtime-options.ts
  • src/main/runtime/overlay-runtime-options.test.ts
  • src/main/runtime/cli-command-context-deps.ts
  • src/main/runtime/cli-command-context-deps.test.ts
  • src/main/runtime/anilist-token-refresh.ts
  • src/main/runtime/anilist-token-refresh.test.ts
  • src/main/runtime/anilist-media-guess.ts
  • src/main/runtime/anilist-media-guess.test.ts
  • src/main/runtime/anilist-post-watch.ts
  • src/main/runtime/anilist-post-watch.test.ts
  • src/main/runtime/subtitle-position.ts
  • src/main/runtime/subtitle-position.test.ts
  • src/main/runtime/protocol-url-handlers.ts
  • src/main/runtime/protocol-url-handlers.test.ts
  • src/main/runtime/jellyfin-cli-auth.ts
  • src/main/runtime/jellyfin-cli-auth.test.ts
  • src/main/runtime/jellyfin-cli-list.ts
  • src/main/runtime/jellyfin-cli-list.test.ts
  • src/main/runtime/jellyfin-cli-play.ts
  • src/main/runtime/jellyfin-cli-play.test.ts
  • src/main/runtime/jellyfin-cli-remote-announce.ts
  • src/main/runtime/jellyfin-cli-remote-announce.test.ts
  • src/main/runtime/jellyfin-remote-session-lifecycle.ts
  • src/main/runtime/jellyfin-remote-session-lifecycle.test.ts
  • src/main/runtime/anilist-setup-window.ts
  • src/main/runtime/anilist-setup-window.test.ts
  • src/main/runtime/jellyfin-setup-window.ts
  • src/main/runtime/jellyfin-setup-window.test.ts
  • src/main/runtime/app-runtime-main-deps.ts
  • src/main/runtime/app-runtime-main-deps.test.ts
  • src/main/runtime/global-shortcuts-main-deps.ts
  • src/main/runtime/global-shortcuts-main-deps.test.ts
  • src/main/runtime/mpv-osd-log-main-deps.ts
  • src/main/runtime/mpv-osd-log-main-deps.test.ts
  • src/main/runtime/app-lifecycle-main-activate.ts
  • src/main/runtime/app-lifecycle-main-activate.test.ts
  • src/main/runtime/initial-args-main-deps.ts
  • src/main/runtime/initial-args-main-deps.test.ts
  • src/main/runtime/mpv-main-event-main-deps.ts
  • src/main/runtime/mpv-main-event-main-deps.test.ts
  • src/main/runtime/subtitle-tokenization-main-deps.ts
  • src/main/runtime/subtitle-tokenization-main-deps.test.ts
  • src/main/runtime/secondary-sub-mode-main-deps.ts
  • src/main/runtime/secondary-sub-mode-main-deps.test.ts
  • src/main/runtime/overlay-runtime-main-actions.ts
  • src/main/runtime/overlay-runtime-main-actions.test.ts
  • src/main/runtime/jellyfin-client-info.ts
  • src/main/runtime/jellyfin-client-info.test.ts
  • src/main/runtime/startup-config-main-deps.ts
  • src/main/runtime/startup-config-main-deps.test.ts
  • src/main/runtime/app-ready-main-deps.ts
  • src/main/runtime/app-ready-main-deps.test.ts
  • src/main/runtime/startup-lifecycle-main-deps.ts
  • src/main/runtime/startup-lifecycle-main-deps.test.ts
  • src/main/runtime/startup-bootstrap-main-deps.ts
  • src/main/runtime/startup-bootstrap-main-deps.test.ts
  • src/main/runtime/cli-command-prechecks-main-deps.ts
  • src/main/runtime/cli-command-prechecks-main-deps.test.ts
  • src/main/runtime/field-grouping-resolver.ts
  • src/main/runtime/field-grouping-resolver.test.ts
  • src/main/runtime/mpv-jellyfin-defaults.ts
  • src/main/runtime/mpv-jellyfin-defaults.test.ts
  • src/main/runtime/field-grouping-overlay-main-deps.ts
  • src/main/runtime/field-grouping-overlay-main-deps.test.ts
  • src/main/runtime/media-runtime-main-deps.ts
  • src/main/runtime/media-runtime-main-deps.test.ts
  • src/main/runtime/overlay-visibility-runtime-main-deps.ts
  • src/main/runtime/overlay-visibility-runtime-main-deps.test.ts
  • src/main/runtime/dictionary-runtime-main-deps.ts
  • src/main/runtime/dictionary-runtime-main-deps.test.ts
  • src/main/runtime/overlay-shortcuts-runtime-main-deps.ts
  • src/main/runtime/overlay-shortcuts-runtime-main-deps.test.ts

Open Questions / Blockers

  • none

Next Step

  • extract next src/main.ts runtime-deps assembly cluster (global shortcuts and/or MPV OSD bindings) into focused *-main-deps helper(s) with parity tests.
  • [2026-02-20T04:04:21Z] progress: extracted MPV main event action callbacks into src/main/runtime/mpv-main-event-actions.ts and rewired bindMpvClientEventHandlers to delegate through focused handlers.
  • [2026-02-20T04:04:21Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-main-event-actions.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js pass (14/14).
  • [2026-02-20T04:06:41Z] progress: extracted Jellyfin setup-window orchestration into createOpenJellyfinSetupWindowHandler in src/main/runtime/jellyfin-setup-window.ts; rewired openJellyfinSetupWindow in src/main.ts to thin wrapper.
  • [2026-02-20T04:06:41Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/mpv-main-event-actions.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/mpv-client-runtime-service.test.js pass (23/23).
  • [2026-02-20T04:09:21Z] progress: extracted AniList setup-window orchestration into createOpenAnilistSetupWindowHandler in src/main/runtime/anilist-setup-window.ts; rewired openAnilistSetupWindow in src/main.ts to thin wrapper.
  • [2026-02-20T04:09:21Z] progress: src/main.ts reduced to 2883 LOC after this slice.
  • [2026-02-20T04:09:21Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/mpv-main-event-actions.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/mpv-client-runtime-service.test.js pass (39/39).
  • [2026-02-20T04:11:27Z] progress: extracted Jellyfin external subtitle preload/track-picking from playJellyfinItemInMpv into new src/main/runtime/jellyfin-subtitle-preload.ts (createPreloadJellyfinExternalSubtitlesHandler) and rewired main.ts.
  • [2026-02-20T04:11:27Z] progress: src/main.ts reduced to 2785 LOC after subtitle-preload extraction.
  • [2026-02-20T04:11:27Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-subtitle-preload.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js dist/main/runtime/mpv-main-event-actions.test.js pass (41/41).
  • [2026-02-20T04:17:41Z] progress: extracted playJellyfinItemInMpv orchestration into src/main/runtime/jellyfin-playback-launch.ts (createPlayJellyfinItemInMpvHandler) + tests; rewired main.ts playback handler wiring.
  • [2026-02-20T04:17:41Z] progress: extracted runJellyfinCommand command routing into src/main/runtime/jellyfin-command-dispatch.ts (createRunJellyfinCommandHandler) + tests; rewired main.ts dispatcher wiring.
  • [2026-02-20T04:17:41Z] progress: src/main.ts reduced to 2696 LOC after Jellyfin playback/dispatch extraction.
  • [2026-02-20T04:17:41Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-command-dispatch.test.js dist/main/runtime/jellyfin-playback-launch.test.js dist/main/runtime/jellyfin-subtitle-preload.test.js dist/main/runtime/jellyfin-cli-auth.test.js dist/main/runtime/jellyfin-cli-list.test.js dist/main/runtime/jellyfin-cli-play.test.js dist/main/runtime/jellyfin-cli-remote-announce.test.js pass (24/24).
  • [2026-02-20T04:32:30Z] progress: extracted AniList media-state helpers to src/main/runtime/anilist-media-state.ts (createGetCurrentAnilistMediaKeyHandler, createResetAnilistMediaTrackingHandler, createGetAnilistMediaGuessRuntimeStateHandler, createSetAnilistMediaGuessRuntimeStateHandler, createResetAnilistMediaGuessStateHandler) + tests; rewired main AniList guess-state callbacks.
  • [2026-02-20T04:32:30Z] progress: extracted MPV main event binder orchestration from bindMpvClientEventHandlers into src/main/runtime/mpv-main-event-bindings.ts (createBindMpvMainEventHandlersHandler) + tests; rewired main.ts to dependency-only binder setup.
  • [2026-02-20T04:32:30Z] progress: src/main.ts reduced to 2665 LOC.
  • [2026-02-20T04:32:30Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-main-event-bindings.test.js dist/main/runtime/mpv-main-event-actions.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/anilist-media-state.test.js dist/main/runtime/anilist-media-guess.test.js dist/main/runtime/jellyfin-command-dispatch.test.js dist/main/runtime/jellyfin-playback-launch.test.js pass (23/23).
  • [2026-02-20T04:33:17Z] progress: extracted main MPV event binding orchestration from src/main.ts into src/main/runtime/mpv-main-event-bindings.ts (createBindMpvMainEventHandlersHandler) with unit tests in src/main/runtime/mpv-main-event-bindings.test.ts; rewired main.ts bind setup to dependency map.
  • [2026-02-20T04:33:17Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-main-event-bindings.test.js dist/main/runtime/mpv-main-event-actions.test.js dist/main/runtime/mpv-client-event-bindings.test.js dist/main/runtime/anilist-media-state.test.js dist/main/runtime/anilist-media-guess.test.js dist/main/runtime/jellyfin-command-dispatch.test.js dist/main/runtime/jellyfin-playback-launch.test.js pass (23/23).
  • [2026-02-20T05:00:15Z] progress: extracted on-will-quit cleanup dependency assembly to src/main/runtime/app-lifecycle-main-cleanup.ts (createBuildOnWillQuitCleanupDepsHandler) + tests; rewired onWillQuitCleanupHandler wiring in src/main.ts.
  • [2026-02-20T05:00:15Z] progress: extracted overlay runtime options dependency assembly to src/main/runtime/overlay-runtime-options-main-deps.ts + tests; rewired buildInitializeOverlayRuntimeOptionsHandler wiring in src/main.ts.
  • [2026-02-20T05:00:15Z] progress: extracted CLI command context dependency assembly to src/main/runtime/cli-command-context-main-deps.ts + tests; rewired buildCliCommandContextDepsHandler wiring in src/main.ts.
  • [2026-02-20T05:00:15Z] progress: src/main.ts reduced to 2617 LOC.
  • [2026-02-20T05:00:15Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/cli-command-context-main-deps.test.js dist/main/runtime/cli-command-context-deps.test.js dist/main/runtime/overlay-runtime-options-main-deps.test.js dist/main/runtime/overlay-runtime-options.test.js dist/main/runtime/app-lifecycle-main-cleanup.test.js dist/main/runtime/mpv-main-event-bindings.test.js pass (6/6).
  • [2026-02-20T05:01:42Z] progress: extracted MPV runtime-service dependency assembly into src/main/runtime/mpv-client-runtime-service-main-deps.ts + tests; rewired createMpvClientRuntimeService in src/main.ts to use builder before createMpvClientRuntimeServiceFactory.
  • [2026-02-20T05:01:42Z] progress: src/main.ts currently 2618 LOC.
  • [2026-02-20T05:01:42Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/mpv-client-runtime-service-main-deps.test.js dist/main/runtime/mpv-client-runtime-service.test.js dist/main/runtime/mpv-main-event-bindings.test.js dist/main/runtime/cli-command-context-main-deps.test.js dist/main/runtime/overlay-runtime-options-main-deps.test.js dist/main/runtime/app-lifecycle-main-cleanup.test.js pass (7/7).
  • [2026-02-20T05:06:04Z] progress: extracted overlay-window factory dependency assembly into src/main/runtime/overlay-window-factory-main-deps.ts + tests; rewired createOverlayWindowHandler, createMainWindowHandler, and createInvisibleWindowHandler wiring in src/main.ts.
  • [2026-02-20T05:06:04Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-window-factory-main-deps.test.js dist/main/runtime/overlay-window-factory.test.js dist/main/runtime/mpv-client-runtime-service-main-deps.test.js dist/main/runtime/cli-command-context-main-deps.test.js dist/main/runtime/overlay-runtime-options-main-deps.test.js dist/main/runtime/app-lifecycle-main-cleanup.test.js pass (8/8).
  • [2026-02-20T05:10:14Z] progress: extracted tray/overlay-bootstrap/Yomitan opener dependency assembly into src/main/runtime/app-runtime-main-deps.ts (createBuildEnsureTrayMainDepsHandler, createBuildDestroyTrayMainDepsHandler, createBuildInitializeOverlayRuntimeBootstrapMainDepsHandler, createBuildOpenYomitanSettingsMainDepsHandler); rewired ensureTray, destroyTray, initializeOverlayRuntime, and openYomitanSettings to thin handlers in src/main.ts.
  • [2026-02-20T05:10:14Z] progress: src/main.ts currently 2652 LOC after this slice (line-count bump from import/deps constant growth while inline wrapper bodies were removed).
  • [2026-02-20T05:10:14Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/app-runtime-main-deps.test.js dist/main/runtime/tray-lifecycle.test.js dist/main/runtime/overlay-runtime-bootstrap.test.js dist/main/runtime/yomitan-settings-opener.test.js dist/main/runtime/tray-main-deps.test.js dist/main/runtime/overlay-runtime-options-main-deps.test.js pass (13/13).
  • [2026-02-20T05:12:29Z] progress: extracted global-shortcuts dependency assembly into src/main/runtime/global-shortcuts-main-deps.ts (createBuildGetConfiguredShortcutsMainDepsHandler, createBuildRegisterGlobalShortcutsMainDepsHandler, createBuildRefreshGlobalAndOverlayShortcutsMainDepsHandler) and rewired corresponding handler setup in src/main.ts.
  • [2026-02-20T05:12:29Z] progress: extracted MPV OSD/log dependency assembly into src/main/runtime/mpv-osd-log-main-deps.ts (createBuildAppendToMpvLogMainDepsHandler, createBuildShowMpvOsdMainDepsHandler) and rewired appendToMpvLogHandler + showMpvOsdHandler setup in src/main.ts.
  • [2026-02-20T05:12:29Z] progress: src/main.ts currently 2672 LOC after this slice (net increase from imports and explicit deps builders).
  • [2026-02-20T05:12:29Z] test: initial bun run build failed with type mismatch in global-shortcuts-main-deps (unknown options type); fixed by tightening to RegisterGlobalShortcutsServiceOptions.
  • [2026-02-20T05:12:29Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/global-shortcuts-main-deps.test.js dist/main/runtime/global-shortcuts.test.js dist/main/runtime/mpv-osd-log-main-deps.test.js dist/main/runtime/mpv-osd-log.test.js dist/main/runtime/app-runtime-main-deps.test.js pass (15/15).
  • [2026-02-20T05:15:40Z] progress: extracted activate-lifecycle deps assembly into src/main/runtime/app-lifecycle-main-activate.ts (createBuildShouldRestoreWindowsOnActivateMainDepsHandler, createBuildRestoreWindowsOnActivateMainDepsHandler) and rewired shouldRestoreWindowsOnActivateHandler + restoreWindowsOnActivateHandler setup in src/main.ts.
  • [2026-02-20T05:15:40Z] progress: extracted initial-args deps assembly into src/main/runtime/initial-args-main-deps.ts (createBuildHandleInitialArgsMainDepsHandler) and rewired handleInitialArgs setup in src/main.ts.
  • [2026-02-20T05:15:40Z] progress: extracted MPV main-event deps assembly into src/main/runtime/mpv-main-event-main-deps.ts (createBuildBindMpvMainEventHandlersMainDepsHandler) and rewired bindMpvClientEventHandlers setup in src/main.ts.
  • [2026-02-20T05:15:40Z] progress: src/main.ts currently 2653 LOC after this slice.
  • [2026-02-20T05:15:40Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/app-lifecycle-main-activate.test.js dist/main/runtime/initial-args-main-deps.test.js dist/main/runtime/app-lifecycle-actions.test.js dist/main/runtime/initial-args-handler.test.js dist/main/runtime/app-runtime-main-deps.test.js dist/main/runtime/mpv-main-event-main-deps.test.js dist/main/runtime/mpv-main-event-bindings.test.js dist/main/runtime/mpv-main-event-actions.test.js dist/main/runtime/mpv-client-event-bindings.test.js pass (27/27).
  • [2026-02-20T05:31:05Z] progress: extracted subtitle tokenization/mecab-warmup deps assembly into src/main/runtime/subtitle-tokenization-main-deps.ts (createBuildTokenizerDepsMainHandler, createCreateMecabTokenizerAndCheckMainHandler, createPrewarmSubtitleDictionariesMainHandler) and rewired tokenizeSubtitle, createMecabTokenizerAndCheck, and prewarmSubtitleDictionaries in src/main.ts.
  • [2026-02-20T05:31:05Z] progress: extracted cycleSecondarySubMode deps assembly into src/main/runtime/secondary-sub-mode-main-deps.ts (createBuildCycleSecondarySubModeMainDepsHandler) and rewired cycleSecondarySubMode in src/main.ts.
  • [2026-02-20T05:31:05Z] progress: while implementing subtitle-tokenization deps, fixed strict typing to align parser promise shapes (Promise<void> ready + Promise<boolean> init) and Mecab availability return type.
  • [2026-02-20T05:31:05Z] progress: src/main.ts currently 2664 LOC after this slice.
  • [2026-02-20T05:31:05Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/subtitle-tokenization-main-deps.test.js dist/main/runtime/secondary-sub-mode-main-deps.test.js dist/main/runtime/startup-warmups.test.js pass (7/7).
  • [2026-02-20T05:49:13Z] progress: extracted overlay runtime state/action wrappers into src/main/runtime/overlay-runtime-main-actions.ts (createGetRuntimeOptionsStateHandler, createRestorePreviousSecondarySubVisibilityHandler, createBroadcastRuntimeOptionsChangedHandler, createSendToActiveOverlayWindowHandler, createSetOverlayDebugVisualizationEnabledHandler, createOpenRuntimeOptionsPaletteHandler), and rewired corresponding main.ts functions to thin delegations.
  • [2026-02-20T05:49:13Z] progress: while adding tests, corrected strict typing to import OverlayHostedModal from src/main/overlay-runtime.ts and aligned RuntimeOptionState fixture shape.
  • [2026-02-20T05:49:13Z] progress: src/main.ts currently 2696 LOC after this slice.
  • [2026-02-20T05:49:13Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-runtime-main-actions.test.js dist/main/runtime/subtitle-tokenization-main-deps.test.js dist/main/runtime/secondary-sub-mode-main-deps.test.js pass (12/12).
  • [2026-02-20T05:50:43Z] progress: extracted Jellyfin config/client info wrappers into src/main/runtime/jellyfin-client-info.ts (createGetResolvedJellyfinConfigHandler, createGetJellyfinClientInfoHandler) and rewired getResolvedJellyfinConfig + getJellyfinClientInfo in src/main.ts.
  • [2026-02-20T05:50:43Z] progress: fixed strict typing regressions by loosening helper input types to preserve call-site inference while keeping client-info output normalized to strings.
  • [2026-02-20T05:50:43Z] progress: src/main.ts currently 2702 LOC after this slice.
  • [2026-02-20T05:50:43Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-client-info.test.js dist/main/runtime/overlay-runtime-main-actions.test.js dist/main/runtime/subtitle-tokenization-main-deps.test.js pass (14/14).
  • [2026-02-20T06:52:54Z] progress: extracted startup config handler deps assembly into src/main/runtime/startup-config-main-deps.ts and rewired reloadConfigHandler + criticalConfigErrorHandler setup in src/main.ts.
  • [2026-02-20T06:52:54Z] progress: extracted app-ready runner deps assembly into src/main/runtime/app-ready-main-deps.ts and lifted nested createAppReadyRuntimeRunner(...) input block to appReadyRuntimeRunner constant in src/main.ts.
  • [2026-02-20T06:52:54Z] progress: extracted app-lifecycle runner deps assembly into src/main/runtime/startup-lifecycle-main-deps.ts and lifted lifecycle runner wiring to appLifecycleRuntimeRunner constant in src/main.ts.
  • [2026-02-20T06:52:54Z] progress: extracted startup bootstrap deps assembly into src/main/runtime/startup-bootstrap-main-deps.ts and rewired buildStartupBootstrapRuntimeFactoryDepsHandler to compose through the new builder.
  • [2026-02-20T06:52:54Z] progress: src/main.ts currently 2723 LOC after this slice.
  • [2026-02-20T06:52:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/startup-bootstrap-main-deps.test.js dist/main/runtime/startup-bootstrap-deps-builder.test.js dist/main/runtime/startup-lifecycle-main-deps.test.js dist/main/runtime/app-ready-main-deps.test.js dist/main/runtime/startup-config-main-deps.test.js dist/core/services/startup-bootstrap.test.js dist/core/services/app-ready.test.js pass (21/21).
  • [2026-02-20T06:56:20Z] progress: extracted CLI precheck deps assembly into src/main/runtime/cli-command-prechecks-main-deps.ts and rewired handleCliCommand to use a prebuilt handleTexthookerOnlyModeTransitionHandler.
  • [2026-02-20T06:56:20Z] progress: extracted field-grouping resolver state wrappers into src/main/runtime/field-grouping-resolver.ts and rewired getFieldGroupingResolver + setFieldGroupingResolver in src/main.ts.
  • [2026-02-20T06:56:20Z] progress: extracted applyJellyfinMpvDefaults and getDefaultSocketPath wrappers into src/main/runtime/mpv-jellyfin-defaults.ts; rewired both main.ts helper functions to thin handler delegates.
  • [2026-02-20T06:56:20Z] progress: src/main.ts currently 2742 LOC after this slice.
  • [2026-02-20T06:56:20Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/cli-command-prechecks-main-deps.test.js dist/main/runtime/cli-command-prechecks.test.js dist/main/runtime/field-grouping-resolver.test.js dist/main/runtime/mpv-jellyfin-defaults.test.js dist/main/runtime/startup-bootstrap-main-deps.test.js pass (11/11).
  • [2026-02-20T07:12:59Z] progress: extracted field-grouping overlay deps assembly into src/main/runtime/field-grouping-overlay-main-deps.ts and rewired createFieldGroupingOverlayRuntime setup in src/main.ts to use builder output.
  • [2026-02-20T07:12:59Z] progress: resolved strict typing mismatch by parameterizing builder choice type and binding it to KikuFieldGroupingChoice in main.ts.
  • [2026-02-20T07:12:59Z] progress: src/main.ts currently 2747 LOC after this slice.
  • [2026-02-20T07:12:59Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/field-grouping-overlay-main-deps.test.js dist/core/services/field-grouping-overlay.test.js dist/main/runtime/field-grouping-resolver.test.js pass (6/6).
  • [2026-02-20T07:14:28Z] progress: extracted media runtime deps assembly into src/main/runtime/media-runtime-main-deps.ts and rewired createMediaRuntimeService setup in src/main.ts through the builder.
  • [2026-02-20T07:14:28Z] progress: src/main.ts currently 2750 LOC after this slice.
  • [2026-02-20T07:14:28Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/media-runtime-main-deps.test.js dist/main/media-runtime.test.js dist/main/runtime/field-grouping-overlay-main-deps.test.js pass (2/2 from selected bundle output).
  • [2026-02-20T07:16:22Z] progress: extracted overlay visibility runtime deps assembly into src/main/runtime/overlay-visibility-runtime-main-deps.ts and rewired createOverlayVisibilityRuntimeService setup in src/main.ts through the builder.
  • [2026-02-20T07:16:22Z] progress: src/main.ts currently 2753 LOC after this slice.
  • [2026-02-20T07:16:22Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-visibility-runtime-main-deps.test.js dist/main/overlay-visibility-runtime.test.js dist/main/runtime/media-runtime-main-deps.test.js pass (2/2 from selected bundle output).
  • [2026-02-20T07:25:54Z] progress: extracted JLPT/frequency dictionary runtime deps assembly and root-list construction into src/main/runtime/dictionary-runtime-main-deps.ts; rewired createJlptDictionaryRuntimeService + createFrequencyDictionaryRuntimeService setup in src/main.ts.
  • [2026-02-20T07:25:54Z] progress: adjusted frequency roots wiring to preserve previous behavior exactly (separate frequency roots builder, no JLPT-root leakage).
  • [2026-02-20T07:25:54Z] progress: src/main.ts currently 2747 LOC after this slice.
  • [2026-02-20T07:25:54Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/dictionary-runtime-main-deps.test.js dist/main/frequency-dictionary-runtime.test.js dist/main/jlpt-runtime.test.js pass (4/4 from selected bundle output).
  • [2026-02-20T07:27:15Z] progress: extracted overlay-shortcuts runtime deps assembly into src/main/runtime/overlay-shortcuts-runtime-main-deps.ts and rewired createOverlayShortcutsRuntimeService setup in src/main.ts through the builder.
  • [2026-02-20T07:27:15Z] progress: src/main.ts currently 2750 LOC after this slice.
  • [2026-02-20T07:27:15Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/overlay-shortcuts-runtime-main-deps.test.js dist/main/overlay-shortcuts-runtime.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js pass (5/5).
  • [2026-02-20T08:39:19Z] progress: extracted setup-window dependency assembly from src/main.ts into src/main/runtime/anilist-setup-window-main-deps.ts and src/main/runtime/jellyfin-setup-window-main-deps.ts; rewired openAnilistSetupWindow + openJellyfinSetupWindow to builder-backed handlers.
  • [2026-02-20T08:39:19Z] progress: added builder mapping tests in src/main/runtime/anilist-setup-window-main-deps.test.ts and src/main/runtime/jellyfin-setup-window-main-deps.test.ts.
  • [2026-02-20T08:39:19Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-setup-window-main-deps.test.js dist/main/runtime/jellyfin-setup-window-main-deps.test.js dist/main/runtime/anilist-setup-window.test.js dist/main/runtime/jellyfin-setup-window.test.js pass.
  • [2026-02-20T08:44:42Z] progress: extracted AniList media-guess/post-watch dependency assemblies into src/main/runtime/anilist-media-guess-main-deps.ts + src/main/runtime/anilist-post-watch-main-deps.ts; rewired main.ts (maybeProbeAnilistDuration, ensureAnilistMediaGuess, processNextAnilistRetryUpdate, maybeRunAnilistPostWatchUpdate) to builder-backed setup.
  • [2026-02-20T08:44:42Z] progress: extracted Anki/mining action dependency assemblies into src/main/runtime/anki-actions-main-deps.ts + src/main/runtime/mining-actions-main-deps.ts; rewired corresponding handler creation block in main.ts.
  • [2026-02-20T08:44:42Z] progress: added mapping tests for all new builders (anilist-media-guess-main-deps, anilist-post-watch-main-deps, anki-actions-main-deps, mining-actions-main-deps).
  • [2026-02-20T08:44:42Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/anilist-media-guess-main-deps.test.js dist/main/runtime/anilist-post-watch-main-deps.test.js dist/main/runtime/anilist-media-guess.test.js dist/main/runtime/anilist-post-watch.test.js dist/main/runtime/anki-actions-main-deps.test.js dist/main/runtime/mining-actions-main-deps.test.js dist/main/runtime/anki-actions.test.js dist/main/runtime/mining-actions.test.js pass.
  • [2026-02-20T08:52:08Z] progress: extracted overlay visibility/main action and IPC-bridge dependency assembly from main.ts into new builders: overlay-visibility-actions-main-deps.ts, overlay-main-actions-main-deps.ts, ipc-bridge-actions-main-deps.ts.
  • [2026-02-20T08:52:08Z] progress: rewired main.ts handler setup for set/toggle overlay, appendClipboardVideoToQueue, handleMpvCommandFromIpc, and runSubsyncManualFromIpc to builder-backed assembly.
  • [2026-02-20T08:52:08Z] progress: added builder mapping tests: overlay-visibility-actions-main-deps.test.ts, overlay-main-actions-main-deps.test.ts, ipc-bridge-actions-main-deps.test.ts.
  • [2026-02-20T08:52:08Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/ipc-bridge-actions-main-deps.test.js dist/main/runtime/overlay-visibility-actions-main-deps.test.js dist/main/runtime/overlay-main-actions-main-deps.test.js dist/main/runtime/ipc-bridge-actions.test.js dist/main/runtime/overlay-visibility-actions.test.js dist/main/runtime/overlay-main-actions.test.js pass.
  • [2026-02-20T08:54:17Z] progress: extracted numeric shortcut and overlay-shortcuts lifecycle dependency assembly into numeric-shortcut-session-main-deps.ts and overlay-shortcuts-lifecycle-main-deps.ts; rewired corresponding main.ts setup blocks.
  • [2026-02-20T08:54:17Z] progress: extracted overlay-window-layout dependency assembly into overlay-window-layout-main-deps.ts; rewired visible/invisible bounds + window level/order setup in main.ts.
  • [2026-02-20T08:54:17Z] progress: added mapping tests for all new builders (numeric-shortcut-session-main-deps, overlay-shortcuts-lifecycle-main-deps, overlay-window-layout-main-deps).
  • [2026-02-20T08:54:17Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/numeric-shortcut-session-main-deps.test.js dist/main/runtime/overlay-shortcuts-lifecycle-main-deps.test.js dist/main/runtime/overlay-window-layout-main-deps.test.js dist/main/runtime/numeric-shortcut-session-handlers.test.js dist/main/runtime/overlay-shortcuts-lifecycle.test.js dist/main/runtime/overlay-window-layout.test.js pass.
  • [2026-02-20T08:55:21Z] progress: extracted startup warmup dependency assembly into src/main/runtime/startup-warmups-main-deps.ts (launchBackgroundWarmupTask, startBackgroundWarmups) and rewired main setup to builder-backed constants.
  • [2026-02-20T08:55:21Z] progress: added src/main/runtime/startup-warmups-main-deps.test.ts mapping coverage.
  • [2026-02-20T08:55:21Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/startup-warmups-main-deps.test.js dist/main/runtime/startup-warmups.test.js pass.
  • [2026-02-20T08:56:46Z] progress: extracted MPV IPC command dependency assembly into src/main/runtime/ipc-mpv-command-main-deps.ts and rewired main.ts IPC bridge setup to compose through buildMpvCommandFromIpcRuntimeMainDepsHandler.
  • [2026-02-20T08:56:46Z] progress: added src/main/runtime/ipc-mpv-command-main-deps.test.ts mapping coverage.
  • [2026-02-20T08:56:46Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/ipc-mpv-command-main-deps.test.js dist/main/runtime/ipc-bridge-actions-main-deps.test.js dist/main/runtime/ipc-bridge-actions.test.js pass.
  • [2026-02-20T09:00:14Z] progress: post-push slice extracted playJellyfinItemInMpv dependency assembly into src/main/runtime/jellyfin-playback-launch-main-deps.ts and rewired main.ts playback handler construction.
  • [2026-02-20T09:00:14Z] progress: added src/main/runtime/jellyfin-playback-launch-main-deps.test.ts mapping coverage.
  • [2026-02-20T09:00:14Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/jellyfin-playback-launch-main-deps.test.js dist/main/runtime/jellyfin-playback-launch.test.js pass.
  • [2026-02-20T09:10:53Z] progress: extracted config hot-reload message/watcher dependency assembly into builders in config-hot-reload-main-deps.ts (createBuildConfigHotReloadMessageMainDepsHandler, createBuildWatchConfigPathMainDepsHandler) and rewired main.ts.
  • [2026-02-20T09:10:53Z] progress: extracted MPV subtitle render metrics dependency assembly into mpv-subtitle-render-metrics-main-deps.ts and rewired main.ts update runtime setup.
  • [2026-02-20T09:10:53Z] progress: added mapping tests config-hot-reload-main-deps.test.ts (new cases) and mpv-subtitle-render-metrics-main-deps.test.ts.
  • [2026-02-20T09:10:53Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/config-hot-reload-main-deps.test.js dist/main/runtime/mpv-subtitle-render-metrics-main-deps.test.js dist/main/runtime/mpv-subtitle-render-metrics.test.js dist/main/runtime/config-hot-reload-handlers.test.js pass.
  • [2026-02-20T09:14:06Z] progress: extracted numeric shortcut runtime option assembly into src/main/runtime/numeric-shortcut-runtime-main-deps.ts and rewired createNumericShortcutRuntime setup in main.ts.
  • [2026-02-20T09:14:06Z] progress: added src/main/runtime/numeric-shortcut-runtime-main-deps.test.ts mapping coverage.
  • [2026-02-20T09:14:06Z] test: bun run build pass (expected macOS helper Swift cache fallback) + node --test dist/main/runtime/numeric-shortcut-runtime-main-deps.test.js dist/core/services/numeric-shortcut-session.test.js pass.
  • [2026-02-20T09:16:42Z] progress: extracted immersion tracker startup dependency assembly into src/main/runtime/immersion-startup-main-deps.ts and rewired app-ready startup wiring in main.ts.
  • [2026-02-20T09:16:42Z] progress: extracted config hot-reload watcher/message and MPV subtitle metrics dependency assembly into dedicated builder usage in main.ts; added mpv-subtitle-render-metrics-main-deps.ts.
  • [2026-02-20T09:16:42Z] progress: normalized handleInitialArgs setup to prebuilt builder-backed handler (buildHandleInitialArgsMainDepsHandler + handleInitialArgsRuntimeHandler) to reduce repeated construction.
  • [2026-02-20T09:16:42Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass: immersion-startup*, config-hot-reload-main-deps*, mpv-subtitle-render-metrics*, numeric-shortcut-runtime-main-deps*, initial-args*.
  • [2026-02-20T09:30:02Z] progress: applied 5-block safe normalization in main.ts by prebuilding deps handlers for global shortcuts (getConfiguredShortcuts, registerGlobalShortcuts, refreshGlobalAndOverlayShortcuts) and MPV logging/OSD (appendToMpvLog, showMpvOsd).
  • [2026-02-20T09:30:02Z] progress: earlier in this batch also extracted jellyfin-playback-launch-main-deps, immersion-startup-main-deps, numeric-shortcut-runtime-main-deps, and mpv-subtitle-render-metrics-main-deps; extended config-hot-reload-main-deps with watcher/message builders.
  • [2026-02-20T09:30:02Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for global-shortcuts*, mpv-osd-log*, jellyfin-playback-launch*, immersion-startup*, config-hot-reload-main-deps*, mpv-subtitle-render-metrics*, numeric-shortcut-runtime-main-deps*, initial-args*.
  • [2026-02-20T09:32:11Z] progress: completed 5-block safe normalization in main.ts: prebuilt deps handlers for CLI context main deps, MPV main-event bind deps, MPV runtime service factory deps, MeCab initializer deps, and subtitle dictionary prewarm deps.
  • [2026-02-20T09:32:11Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass: cli-command-context-main-deps, mpv-main-event-main-deps, mpv-main-event-bindings, mpv-client-runtime-service-main-deps, subtitle-tokenization-main-deps.
  • [2026-02-20T09:33:19Z] progress: completed another 5-block safe normalization in main.ts for lifecycle/startup wiring: prebuilt deps handlers for onWillQuitCleanup, shouldRestoreWindowsOnActivate, restoreWindowsOnActivate, reloadConfig, and criticalConfigError.
  • [2026-02-20T09:33:19Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for app-lifecycle-main-cleanup, app-lifecycle-main-activate, startup-config-main-deps, and startup-config.
  • [2026-02-20T09:35:02Z] progress: extracted protocol URL registration dependency assembly to protocol-url-handlers-main-deps.ts and rewired main protocol registration call through builder.
  • [2026-02-20T09:35:02Z] progress: normalized cycleSecondarySubMode to use prebuilt deps builder constant (avoids per-call rebuild).
  • [2026-02-20T09:35:02Z] test: bun run build pass (expected macOS helper Swift cache fallback) + protocol-url-handlers* and secondary-sub-mode-main-deps tests pass.
  • [2026-02-20T09:35:02Z] progress: prebuilt setup-window focus handlers (maybeFocusExistingAnilistSetupWindow, maybeFocusExistingJellyfinSetupWindow) and injected them into corresponding main deps builders in main.ts.
  • [2026-02-20T09:35:02Z] test: bun run build pass (expected macOS helper Swift cache fallback) + setup-window suites pass (anilist-setup-window*, jellyfin-setup-window*).
  • [2026-02-20T09:37:12Z] progress: completed one consolidated 5-block normalization batch in main.ts by prebuilding finalized deps objects before handler creation for getConfiguredShortcuts, registerGlobalShortcuts, refreshGlobalAndOverlayShortcuts, appendToMpvLog, and showMpvOsd.
  • [2026-02-20T09:37:12Z] test: bun run build pass (expected macOS helper Swift cache fallback) + targeted suites pass for global-shortcuts* and mpv-osd-log*.