feat(desktop): split daemon and release settings to main process

Move daemon management and release channel settings out of the renderer's
AsyncStorage and into a desktop-owned settings store persisted by the main
process. Adds a "Keep daemon running after quit" option, a daemon lifecycle
section in settings, and a one-time migration of legacy renderer-owned
desktop settings.
This commit is contained in:
Mohamed Boudra
2026-04-25 13:59:07 +07:00
parent 2b37276577
commit ae3e88e7e1
20 changed files with 1792 additions and 187 deletions
@@ -0,0 +1,15 @@
import type { DesktopSettingsStore } from "./desktop-settings.js";
export type DesktopCommandHandler = (args?: Record<string, unknown>) => Promise<unknown> | unknown;
export function createDesktopSettingsCommandHandlers({
settingsStore,
}: {
settingsStore: DesktopSettingsStore;
}): Record<string, DesktopCommandHandler> {
return {
get_desktop_settings: () => settingsStore.get(),
patch_desktop_settings: (args) => settingsStore.patch(args),
migrate_legacy_desktop_settings: (args) => settingsStore.migrateLegacyRendererSettings(args),
};
}