mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-25 11:04:54 +02:00
1.4 KiB
1.4 KiB
electron/CLAUDE.md
Electron 40.x (CastLabs DRM build) desktop shell + auto-updater via GitHub Releases. Entry: main.js. Version is in package.json. See root CLAUDE.md for repo-wide constraints.
Build / release
- Local build:
npm run build→ producesbuild-staging/containing the frontend dist, backend bundle, standalone Python 3.13, and the 9router binary. Build artifacts are ephemeral; not git-tracked. - macOS release: requires Apple ID, app-specific password, and team ID env vars. App is signed + notarized.
- Windows release: signed via Azure code signing in CI (
.github/workflows/release-windows.yml); triggers onv*tags.
Bundling
- Python 3.13 is bundled via python-build-standalone — users do not need a system Python.
- 9router binary is pulled at build time by
scripts/fetch-router.sh/fetch-router.ps1. The version pin (0.3.60) is load-bearing for cross-provider WebSearch — see rootCLAUDE.md.
Versioning
- Source of truth:
electron/package.jsonversion. Bump alongside any user-facing release; CI tags off it. - Bump only when cutting a release — coordinate with the publish flow rather than landing version bumps speculatively.
Pitfalls
build-staging/is regenerated on every build; never commit it.- Auto-updater reads the latest release feed from GitHub; staging/test builds should use a separate channel to avoid pushing unsigned bits to users.