refactor: prebuild more jellyfin and startup runtime deps

This commit is contained in:
2026-02-20 01:49:32 -08:00
parent 40184c67ed
commit 5b84ba5ef8
3 changed files with 34 additions and 11 deletions

View File

@@ -6,7 +6,7 @@ Read first. Keep concise.
| ------------ | -------------- | ---------------------------------------------------- | --------- | ------------------------------------- | ---------------------- | | ------------ | -------------- | ---------------------------------------------------- | --------- | ------------------------------------- | ---------------------- |
| `codex-generate-minecard-image-20260220T112900Z-vsxr` | `codex-generate-minecard-image` | `Generate media fallbacks (GIF) from assets/minecard.webm and wire README/docs fallback markup` | `done` | `docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md` | `2026-02-20T11:35:30Z` | | `codex-generate-minecard-image-20260220T112900Z-vsxr` | `codex-generate-minecard-image` | `Generate media fallbacks (GIF) from assets/minecard.webm and wire README/docs fallback markup` | `done` | `docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md` | `2026-02-20T11:35:30Z` |
| `codex-main` | `planner-exec` | `Fix frequency/N+1 regression in plugin --start flow` | `in_progress` | `docs/subagents/agents/codex-main.md` | `2026-02-19T19:36:46Z` | | `codex-main` | `planner-exec` | `Fix frequency/N+1 regression in plugin --start flow` | `in_progress` | `docs/subagents/agents/codex-main.md` | `2026-02-19T19:36:46Z` |
| `codex-task85-20260219T233711Z-46hc` | `codex-task85` | `Resume TASK-85 maintainability refactor from latest handoff point` | `in_progress` | `docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md` | `2026-02-20T09:47:23Z` | | `codex-task85-20260219T233711Z-46hc` | `codex-task85` | `Resume TASK-85 maintainability refactor from latest handoff point` | `in_progress` | `docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md` | `2026-02-20T09:48:39Z` |
| `codex-config-validation-20260219T172015Z-iiyf` | `codex-config-validation` | `Find root cause of config validation error for ~/.config/SubMiner/config.jsonc` | `completed` | `docs/subagents/agents/codex-config-validation-20260219T172015Z-iiyf.md` | `2026-02-19T17:26:17Z` | | `codex-config-validation-20260219T172015Z-iiyf` | `codex-config-validation` | `Find root cause of config validation error for ~/.config/SubMiner/config.jsonc` | `completed` | `docs/subagents/agents/codex-config-validation-20260219T172015Z-iiyf.md` | `2026-02-19T17:26:17Z` |
| `codex-task85-20260219T233711Z-46hc` | `codex-task85` | `Resume TASK-85 maintainability refactor from latest handoff point` | `in_progress` | `docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md` | `2026-02-20T02:56:34Z` | | `codex-task85-20260219T233711Z-46hc` | `codex-task85` | `Resume TASK-85 maintainability refactor from latest handoff point` | `in_progress` | `docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md` | `2026-02-20T02:56:34Z` |
| `codex-anilist-deeplink-20260219T233926Z` | `anilist-deeplink` | `Fix external subminer:// AniList callback handling from browser` | `done` | `docs/subagents/agents/codex-anilist-deeplink-20260219T233926Z.md` | `2026-02-19T23:59:21Z` | | `codex-anilist-deeplink-20260219T233926Z` | `anilist-deeplink` | `Fix external subminer:// AniList callback handling from browser` | `done` | `docs/subagents/agents/codex-anilist-deeplink-20260219T233926Z.md` | `2026-02-19T23:59:21Z` |

View File

@@ -9,6 +9,9 @@
## Current Work (newest first) ## Current Work (newest first)
- [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] 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] 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:47:23Z] scope: commit will include only `src/main.ts` plus subagent bookkeeping updates; unrelated working tree noise remains excluded.

View File

@@ -1417,8 +1417,10 @@ const buildHandleJellyfinAuthCommandsMainDepsHandler =
clearStoredToken: () => jellyfinTokenStore.clearToken(), clearStoredToken: () => jellyfinTokenStore.clearToken(),
logInfo: (message) => logger.info(message), logInfo: (message) => logger.info(message),
}); });
const handleJellyfinAuthCommandsMainDeps =
buildHandleJellyfinAuthCommandsMainDepsHandler();
const handleJellyfinAuthCommands = createHandleJellyfinAuthCommands( const handleJellyfinAuthCommands = createHandleJellyfinAuthCommands(
buildHandleJellyfinAuthCommandsMainDepsHandler(), handleJellyfinAuthCommandsMainDeps,
); );
const buildHandleJellyfinListCommandsMainDepsHandler = const buildHandleJellyfinListCommandsMainDepsHandler =
@@ -1430,8 +1432,10 @@ const buildHandleJellyfinListCommandsMainDepsHandler =
listJellyfinSubtitleTracksRuntime(session, clientInfo, itemId), listJellyfinSubtitleTracksRuntime(session, clientInfo, itemId),
logInfo: (message) => logger.info(message), logInfo: (message) => logger.info(message),
}); });
const handleJellyfinListCommandsMainDeps =
buildHandleJellyfinListCommandsMainDepsHandler();
const handleJellyfinListCommands = createHandleJellyfinListCommands( const handleJellyfinListCommands = createHandleJellyfinListCommands(
buildHandleJellyfinListCommandsMainDepsHandler(), handleJellyfinListCommandsMainDeps,
); );
const buildHandleJellyfinPlayCommandMainDepsHandler = createBuildHandleJellyfinPlayCommandMainDepsHandler( const buildHandleJellyfinPlayCommandMainDepsHandler = createBuildHandleJellyfinPlayCommandMainDepsHandler(
@@ -1441,8 +1445,10 @@ const buildHandleJellyfinPlayCommandMainDepsHandler = createBuildHandleJellyfinP
logWarn: (message) => logger.warn(message), logWarn: (message) => logger.warn(message),
}, },
); );
const handleJellyfinPlayCommandMainDeps =
buildHandleJellyfinPlayCommandMainDepsHandler();
const handleJellyfinPlayCommand = createHandleJellyfinPlayCommand( const handleJellyfinPlayCommand = createHandleJellyfinPlayCommand(
buildHandleJellyfinPlayCommandMainDepsHandler(), handleJellyfinPlayCommandMainDeps,
); );
const buildHandleJellyfinRemoteAnnounceCommandMainDepsHandler = const buildHandleJellyfinRemoteAnnounceCommandMainDepsHandler =
@@ -1452,8 +1458,10 @@ const buildHandleJellyfinRemoteAnnounceCommandMainDepsHandler =
logInfo: (message) => logger.info(message), logInfo: (message) => logger.info(message),
logWarn: (message) => logger.warn(message), logWarn: (message) => logger.warn(message),
}); });
const handleJellyfinRemoteAnnounceCommandMainDeps =
buildHandleJellyfinRemoteAnnounceCommandMainDepsHandler();
const handleJellyfinRemoteAnnounceCommand = createHandleJellyfinRemoteAnnounceCommand( const handleJellyfinRemoteAnnounceCommand = createHandleJellyfinRemoteAnnounceCommand(
buildHandleJellyfinRemoteAnnounceCommandMainDepsHandler(), handleJellyfinRemoteAnnounceCommandMainDeps,
); );
const buildStartJellyfinRemoteSessionMainDepsHandler = const buildStartJellyfinRemoteSessionMainDepsHandler =
@@ -1473,8 +1481,10 @@ const buildStartJellyfinRemoteSessionMainDepsHandler =
logInfo: (message) => logger.info(message), logInfo: (message) => logger.info(message),
logWarn: (message, details) => logger.warn(message, details), logWarn: (message, details) => logger.warn(message, details),
}); });
const startJellyfinRemoteSessionMainDeps =
buildStartJellyfinRemoteSessionMainDepsHandler();
const startJellyfinRemoteSession = createStartJellyfinRemoteSessionHandler( const startJellyfinRemoteSession = createStartJellyfinRemoteSessionHandler(
buildStartJellyfinRemoteSessionMainDepsHandler(), startJellyfinRemoteSessionMainDeps,
); );
const buildStopJellyfinRemoteSessionMainDepsHandler = const buildStopJellyfinRemoteSessionMainDepsHandler =
@@ -2436,8 +2446,10 @@ const buildLaunchBackgroundWarmupTaskMainDepsHandler =
logDebug: (message) => logger.debug(message), logDebug: (message) => logger.debug(message),
logWarn: (message) => logger.warn(message), logWarn: (message) => logger.warn(message),
}); });
const launchBackgroundWarmupTaskMainDeps =
buildLaunchBackgroundWarmupTaskMainDepsHandler();
const launchBackgroundWarmupTask = createLaunchBackgroundWarmupTaskHandler( const launchBackgroundWarmupTask = createLaunchBackgroundWarmupTaskHandler(
buildLaunchBackgroundWarmupTaskMainDepsHandler(), launchBackgroundWarmupTaskMainDeps,
); );
const buildStartBackgroundWarmupsMainDepsHandler = createBuildStartBackgroundWarmupsMainDepsHandler( const buildStartBackgroundWarmupsMainDepsHandler = createBuildStartBackgroundWarmupsMainDepsHandler(
@@ -2455,32 +2467,40 @@ const buildStartBackgroundWarmupsMainDepsHandler = createBuildStartBackgroundWar
startJellyfinRemoteSession: () => startJellyfinRemoteSession(), startJellyfinRemoteSession: () => startJellyfinRemoteSession(),
}, },
); );
const startBackgroundWarmupsMainDeps =
buildStartBackgroundWarmupsMainDepsHandler();
const startBackgroundWarmups = createStartBackgroundWarmupsHandler( const startBackgroundWarmups = createStartBackgroundWarmupsHandler(
buildStartBackgroundWarmupsMainDepsHandler(), startBackgroundWarmupsMainDeps,
); );
const buildUpdateVisibleOverlayBoundsMainDepsHandler = const buildUpdateVisibleOverlayBoundsMainDepsHandler =
createBuildUpdateVisibleOverlayBoundsMainDepsHandler({ createBuildUpdateVisibleOverlayBoundsMainDepsHandler({
setOverlayWindowBounds: (layer, geometry) => overlayManager.setOverlayWindowBounds(layer, geometry), setOverlayWindowBounds: (layer, geometry) => overlayManager.setOverlayWindowBounds(layer, geometry),
}); });
const updateVisibleOverlayBoundsMainDeps =
buildUpdateVisibleOverlayBoundsMainDepsHandler();
const updateVisibleOverlayBounds = createUpdateVisibleOverlayBoundsHandler( const updateVisibleOverlayBounds = createUpdateVisibleOverlayBoundsHandler(
buildUpdateVisibleOverlayBoundsMainDepsHandler(), updateVisibleOverlayBoundsMainDeps,
); );
const buildUpdateInvisibleOverlayBoundsMainDepsHandler = const buildUpdateInvisibleOverlayBoundsMainDepsHandler =
createBuildUpdateInvisibleOverlayBoundsMainDepsHandler({ createBuildUpdateInvisibleOverlayBoundsMainDepsHandler({
setOverlayWindowBounds: (layer, geometry) => overlayManager.setOverlayWindowBounds(layer, geometry), setOverlayWindowBounds: (layer, geometry) => overlayManager.setOverlayWindowBounds(layer, geometry),
}); });
const updateInvisibleOverlayBoundsMainDeps =
buildUpdateInvisibleOverlayBoundsMainDepsHandler();
const updateInvisibleOverlayBounds = createUpdateInvisibleOverlayBoundsHandler( const updateInvisibleOverlayBounds = createUpdateInvisibleOverlayBoundsHandler(
buildUpdateInvisibleOverlayBoundsMainDepsHandler(), updateInvisibleOverlayBoundsMainDeps,
); );
const buildEnsureOverlayWindowLevelMainDepsHandler = const buildEnsureOverlayWindowLevelMainDepsHandler =
createBuildEnsureOverlayWindowLevelMainDepsHandler({ createBuildEnsureOverlayWindowLevelMainDepsHandler({
ensureOverlayWindowLevelCore: (window) => ensureOverlayWindowLevelCore(window as BrowserWindow), ensureOverlayWindowLevelCore: (window) => ensureOverlayWindowLevelCore(window as BrowserWindow),
}); });
const ensureOverlayWindowLevelMainDeps =
buildEnsureOverlayWindowLevelMainDepsHandler();
const ensureOverlayWindowLevel = createEnsureOverlayWindowLevelHandler( const ensureOverlayWindowLevel = createEnsureOverlayWindowLevelHandler(
buildEnsureOverlayWindowLevelMainDepsHandler(), ensureOverlayWindowLevelMainDeps,
); );
const buildEnforceOverlayLayerOrderMainDepsHandler = const buildEnforceOverlayLayerOrderMainDepsHandler =