Goal
Make the packaged desktop app work on Windows, so make github-release can publish a Windows installer.
Context
electron-builder already has a Windows (NSIS) target, and pnpm electron:package --win builds. The installed app can't start its backend, though:
frontend/electron/main.cjs starts the backend with spawn("/bin/bash", [script], …)
scripts/electron-backend.sh is bash, and its uv lookup only knows Unix install locations
A likely approach is to move the launcher logic (finding uv, the environment defaults, UV_PROJECT_ENVIRONMENT, choosing root directory or app data) into Node inside the main process, which then works on every platform. Once Windows runs, add --win --x64 to scripts/github-release.sh.
Acceptance criteria
Goal
Make the packaged desktop app work on Windows, so
make github-releasecan publish a Windows installer.Context
electron-builder already has a Windows (NSIS) target, and
pnpm electron:package --winbuilds. The installed app can't start its backend, though:frontend/electron/main.cjsstarts the backend withspawn("/bin/bash", [script], …)scripts/electron-backend.shis bash, and itsuvlookup only knows Unix install locationsA likely approach is to move the launcher logic (finding
uv, the environment defaults,UV_PROJECT_ENVIRONMENT, choosing root directory or app data) into Node inside the main process, which then works on every platform. Once Windows runs, add--win --x64toscripts/github-release.sh.Acceptance criteria
uvinstalled (%USERPROFILE%\.local\bin\uv.exeand PATH)OPENBOT_ROOT_DIRECTORY,DATABASE_URLandWORKSPACE_ROOTuvlookup