Skip to content

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.