3.0 KiB
3.0 KiB
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:shelllaunches rawtauri devwhen 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.dbthrough the existing FastAPI backend. - Local RAG libraries continue to use
backend/librariesthrough the existing FastAPI backend. - No database or library state is moved, rewritten, or migrated by the Tauri shell.
HEIMGEIST_SETTINGS_FILEremains 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 configsettings.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:
getSettingssetSettingupdateSettingspickPathsopenPathopenExternalLinkonWindowFocusoffWindowFocusapplyUiScale- update/changelog placeholders
Historical Removal Notes
This pass removed the former Electron runtime and development entry points:
electron/main.cjselectron/preload.cjsscripts/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.