refactor: normalize additional startup and lifecycle wiring

This commit is contained in:
2026-02-20 01:33:42 -08:00
parent 4010fc1b04
commit 98902b6b0e
2 changed files with 20 additions and 15 deletions

View File

@@ -409,3 +409,5 @@
- [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`.

View File

@@ -1909,8 +1909,7 @@ registerProtocolUrlHandlers({
},
});
const onWillQuitCleanupHandler = createOnWillQuitCleanupHandler(
createBuildOnWillQuitCleanupDepsHandler({
const buildOnWillQuitCleanupDepsHandler = createBuildOnWillQuitCleanupDepsHandler({
destroyTray: () => destroyTray(),
stopConfigHotReload: () => configHotReloadRuntime.stop(),
restorePreviousSecondarySubVisibility: () => restorePreviousSecondarySubVisibility(),
@@ -1944,17 +1943,19 @@ const onWillQuitCleanupHandler = createOnWillQuitCleanupHandler(
appState.jellyfinSetupWindow = null;
},
stopJellyfinRemoteSession: () => stopJellyfinRemoteSession(),
})(),
);
});
const onWillQuitCleanupHandler = createOnWillQuitCleanupHandler(buildOnWillQuitCleanupDepsHandler());
const shouldRestoreWindowsOnActivateHandler = createShouldRestoreWindowsOnActivateHandler(
const buildShouldRestoreWindowsOnActivateMainDepsHandler =
createBuildShouldRestoreWindowsOnActivateMainDepsHandler({
isOverlayRuntimeInitialized: () => appState.overlayRuntimeInitialized,
getAllWindowCount: () => BrowserWindow.getAllWindows().length,
})(),
});
const shouldRestoreWindowsOnActivateHandler = createShouldRestoreWindowsOnActivateHandler(
buildShouldRestoreWindowsOnActivateMainDepsHandler(),
);
const restoreWindowsOnActivateHandler = createRestoreWindowsOnActivateHandler(
const buildRestoreWindowsOnActivateMainDepsHandler =
createBuildRestoreWindowsOnActivateMainDepsHandler({
createMainWindow: () => {
createMainWindow();
@@ -1968,11 +1969,12 @@ const restoreWindowsOnActivateHandler = createRestoreWindowsOnActivateHandler(
updateInvisibleOverlayVisibility: () => {
overlayVisibilityRuntime.updateInvisibleOverlayVisibility();
},
})(),
});
const restoreWindowsOnActivateHandler = createRestoreWindowsOnActivateHandler(
buildRestoreWindowsOnActivateMainDepsHandler(),
);
const reloadConfigHandler = createReloadConfigHandler(
createBuildReloadConfigMainDepsHandler({
const buildReloadConfigMainDepsHandler = createBuildReloadConfigMainDepsHandler({
reloadConfigStrict: () => configService.reloadConfigStrict(),
logInfo: (message) => appLogger.logInfo(message),
logWarning: (message) => appLogger.logWarning(message),
@@ -1984,18 +1986,19 @@ const reloadConfigHandler = createReloadConfigHandler(
showErrorBox: (title, details) => dialog.showErrorBox(title, details),
quit: () => app.quit(),
},
})(),
);
});
const reloadConfigHandler = createReloadConfigHandler(buildReloadConfigMainDepsHandler());
const criticalConfigErrorHandler = createCriticalConfigErrorHandler(
createBuildCriticalConfigErrorMainDepsHandler({
const buildCriticalConfigErrorMainDepsHandler = createBuildCriticalConfigErrorMainDepsHandler({
getConfigPath: () => configService.getConfigPath(),
failHandlers: {
logError: (message) => logger.error(message),
showErrorBox: (title, message) => dialog.showErrorBox(title, message),
quit: () => app.quit(),
},
})(),
});
const criticalConfigErrorHandler = createCriticalConfigErrorHandler(
buildCriticalConfigErrorMainDepsHandler(),
);
const buildAppReadyRuntimeMainDepsHandler = createBuildAppReadyRuntimeMainDepsHandler({