feat(FN-1070): restore desktop Electron scaffolding

- Reintroduce the @fusion/desktop workspace package with Electron main, preload, and renderer entrypoints
- Add desktop build/test tooling (TypeScript, Vitest, electron-builder) and update workspace build dependency settings for Electron
- Wire secure IPC bridge APIs for app version/quit flows with exported preload typings
- Add README usage docs and unit tests covering main-process window/tray behavior and preload API wiring
This commit is contained in:
gsxdsm
2026-04-07 22:33:05 -07:00
parent 57ff16704a
commit 4e41eb0e7a
13 changed files with 2230 additions and 42 deletions

View File

@@ -0,0 +1,25 @@
import { contextBridge, ipcRenderer } from "electron";
export interface FusionDesktopAPI {
getAppVersion(): Promise<string>;
quit(): void;
onDashboardReady(callback: () => void): () => void;
}
const api: FusionDesktopAPI = {
getAppVersion(): Promise<string> {
return ipcRenderer.invoke("app:get-version");
},
quit(): void {
ipcRenderer.send("app:quit");
},
onDashboardReady(callback: () => void): () => void {
const listener = () => callback();
ipcRenderer.on("dashboard:ready", listener);
return () => {
ipcRenderer.removeListener("dashboard:ready", listener);
};
},
};
contextBridge.exposeInMainWorld("fusionDesktop", api);