CodeNomad/packages/electron-app
Pascal André fd1fd55b10
fix(native): reconcile cross-host startup markers
Electron and Tauri can each publish a legacy running marker immediately before publishing their shared cross-host participant. On a simultaneous Windows startup, both hosts could observe that transient gap and yield ownership, leaving no primary.

When legacy detection initially blocks a primary candidate, wait for one bounded 50ms participant grace period and reconcile once before yielding. Apply the same protocol on both Node and Rust hosts; genuine legacy clients still block ownership after the grace period.

Validated with root typecheck, 50 repeated cross-host election runs, 122 Electron native tests, 74 Tauri tests, and git diff checks.
2026-08-18 11:25:49 +02:00
..
electron fix(native): reconcile cross-host startup markers 2026-08-18 11:25:49 +02:00
scripts Reduce App package sizes (#453) 2026-05-15 19:13:13 +01:00
.gitignore build: bundle node runtime for desktop packages 2026-05-04 20:08:04 +01:00
electron.vite.config.ts Reduce App package sizes (#453) 2026-05-15 19:13:13 +01:00
package.json merge(dev): integrate desktop workspace controls 2026-08-14 20:45:39 +02:00
README.md Update Readmes 2025-11-21 12:37:24 +00:00
tsconfig.json fix(desktop): bundle CLI resources and request mic access 2026-03-28 15:30:14 +00:00

CodeNomad App

This package contains the native desktop application shell for CodeNomad, built with Electron.

Overview

The Electron app wraps the CodeNomad UI and Server into a standalone executable. It provides deeper system integration, such as:

  • Native window management
  • Global keyboard shortcuts
  • Application menu integration

Development

To run the Electron app in development mode:

npm run dev

This will start the renderer (UI) and the main process with hot reloading.

Building

To build the application for your current platform:

npm run build

To build for specific platforms (requires appropriate build tools):

  • macOS: npm run build:mac
  • Windows: npm run build:win
  • Linux: npm run build:linux

Structure

  • electron/main: Main process code (window creation, IPC).
  • electron/preload: Preload scripts for secure bridge between main and renderer.
  • electron/resources: Static assets like icons.