Platform differences (browser vs desktop)¶
A living log of every place the desktop shell intentionally differs from the browser build (ADR-0099). The rule: differences are decisions recorded here, never accidental drift. All behavior should otherwise be identical — that's what the shared E2E suite enforces.
If you add a platform branch or a configure* seam implementation, add a row.
| Area | Browser | Desktop | Seam / mechanism |
|---|---|---|---|
| Local-API origin | Relative /api (dev proxy / same-origin); VITE_API_ORIGIN for the WebSocket |
Absolute origin the Rust shell spawns + injects | platform/apiOrigin.ts (configureApiOrigin, window.__LIMESTONE_API_ORIGIN__) |
| vault folder picker | Backend OS picker (/api/vault/choose-folder) or manual path |
Native Tauri directory dialog | configureNativeVaultFolderPicker / platform/desktopVaultFolderSelection.ts |
| API lifecycle | External (dev server / same-origin serve) | The Tauri shell spawns + supervises the local API | apps/desktop/src-tauri |
Deliberately NOT yet different (deferred, ADR-0099)¶
- App distribution — desktop is unsigned and still uses the workspace API; a self-contained signed installer (Python sidecar + notarization) is a later sprint.
- Windows / Linux — macOS only for now.
- Multi-window / detachable panes, native menus/tray beyond basics — not started.