# Tauri Migration Notes Tauri is now Heimgeist's active desktop shell for local development. The former desktop shell runtime files and npm scripts have been removed from active development code. ## Current Development Workflow - Primary dev command: `npm run dev`. - Compatibility alias: `npm run dev:tauri`. - The dev wrapper is `scripts/run-tauri-dev.cjs`. - The wrapper starts or reuses FastAPI on `127.0.0.1:8000`, waits for `/health`, then launches Tauri. - The Vite renderer runs on strict port `127.0.0.1:5174`. - `npm run dev:tauri:shell` launches raw `tauri dev` when the backend lifecycle is managed separately. The development backend is still the normal FastAPI backend started from the repository root through `scripts/run-backend.cjs`. ## User Data Continuity - Chats continue to use `backend/app.db` through the existing FastAPI backend. - Local RAG libraries continue to use `backend/libraries` through the existing FastAPI backend. - No database or library state is moved, rewritten, or migrated by the Tauri shell. - `HEIMGEIST_SETTINGS_FILE` remains an explicit shared settings override. When set, Tauri reads and writes that file directly and skips first-run import. - Without `HEIMGEIST_SETTINGS_FILE`, Tauri stores settings in its app config `settings.json`. - On first Tauri run only, when the Tauri settings file does not exist, Tauri attempts to import the historical Electron settings file from the platform config directory, including `Heimgeist/settings.json`. - Existing Tauri settings are never overwritten by imported settings. ## Desktop Bridge Surface Renderer code should continue to call only `src/desktop/desktopApi.js` for desktop functions. That bridge owns direct access to the Tauri global and maps the renderer API to Tauri commands/events. Current Tauri-backed desktop methods: - `getSettings` - `setSetting` - `updateSettings` - `pickPaths` - `openPath` - `openExternalLink` - `onWindowFocus` - `offWindowFocus` - `applyUiScale` - update/changelog placeholders ## Historical Removal Notes This pass removed the former Electron runtime and development entry points: - `electron/main.cjs` - `electron/preload.cjs` - `scripts/run-electron-dev.cjs` - Electron npm metadata, dependencies, and scripts from `package.json` - Electron-specific branches from `src/desktop/desktopApi.js` The only remaining Electron references should be historical migration documentation or the Tauri first-run settings import note. ## Remaining Production-Release Tasks - Replace update/changelog placeholders with a signed Tauri update flow or another release strategy. - Package the FastAPI backend as a sidecar or equivalent production process. - Preserve ffmpeg/ffprobe environment handling for packaged audio transcription. - Add production backend startup health gating and shutdown behavior. - Finalize bundle metadata, icons, signing, notarization, and installer behavior. - Decide whether the settings route needs a dedicated Tauri window for production parity. - Expand the basic Tauri menu if product-specific app menu actions are needed.