Electron Shell

Status: implemented as the baseline release-oriented shell in this repo.

The current production-grade shell path in this repository is shells/electron/.

Current responsibilities:

  • supervise Django and the task worker as child processes

  • generate a fresh per-session shell-to-Django auth token and pass it to Django as DESKTOP_DJANGO_AUTH_TOKEN

  • inject X-Desktop-Django-Token only for the exact local Django origin, including the Electron health poll, without exposing the token through preload

  • keep using hidden exact-origin header injection rather than the bootstrap cookie flow used by the experimental Tauri and Positron shells

  • deny child-window creation from the renderer by default and block top-level navigation away from the local Django origin, opening safe external URLs through the OS shell instead

  • consume the shared staged backend from .stage/backend/

  • package desktop artifacts with electron-builder

  • generate Electron updater metadata and use electron-updater for connected update checks

  • expose update checks through Help > Check for Updates... without adding a Django update API or broadening the preload bridge

  • generate shell-local icon outputs in shells/electron/assets/icons/ from the shared brand source under assets/brand/

Use this shell when you need the most complete desktop path in the repo today.

Current update scope:

  • default feed: GitHub Releases for this repo, configurable through the Electron builder config environment variables documented in the release guide

  • workflow support: .github/workflows/desktop-packages.yml uploads latest*.yml metadata and can publish to a draft GitHub Release when manually triggered with publish_release=true

  • local behavior: development runs show a harmless “updates unavailable” dialog instead of attempting a feed check

  • release-readiness boundary: a signed/notarized macOS update from installed 0.1.2 to published v0.1.4 now proves detection, download, restart/install, and app.sqlite3 persistence, but a Windows NSIS update still needs live validation before claiming production updater readiness