Skip to content
This repository was archived by the owner on Jun 8, 2026. It is now read-only.

Commit 5cdcfb3

Browse files
committed
Document the desktop release process in CLAUDE.md
1 parent ff1facd commit 5cdcfb3

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,38 @@ curl -s -H "X-Desktop-Session-Token: <TOKEN>" -H "Origin: http://localhost" \
7575
"http://localhost:19432/api/engineer/directories?path=/Users/<you>/.ssh"
7676
```
7777

78+
## Releasing Desktop Builds
79+
80+
Releases are automated via CI. When a PR that touches `apps/desktop/**` is merged to main, the release workflow runs:
81+
82+
1. Reads the `version` from `apps/desktop/package.json`
83+
2. Checks if that version already has a GitHub Release — if so, skips with a warning
84+
3. Builds a universal macOS DMG via `electron-builder`
85+
4. Publishes the DMG to GitHub Releases and uploads it as a workflow artifact
86+
5. Sends a Slack notification to the team
87+
88+
### Triggering a new release
89+
90+
Bump the `version` field in `apps/desktop/package.json` as part of your PR. When it merges, CI will build and publish automatically.
91+
92+
```jsonc
93+
// apps/desktop/package.json
94+
{ "version": "0.2.0" } // ← bump this
95+
```
96+
97+
If you merge desktop changes **without** bumping the version, the workflow will skip the build and log a warning — no harm done, no duplicate releases.
98+
99+
### Auto-update for users
100+
101+
- **Packaged builds** (DMG installs) use `electron-updater` to check GitHub Releases every 5 minutes. Users are notified in-app when a new version is available, and it auto-installs on quit.
102+
- **Dev builds** (running from source) compare `origin/main` commit hashes via `git fetch` and offer to pull + rebuild.
103+
104+
### Required GitHub secrets
105+
106+
- `SLACK_GITHUB_REPO_WEBHOOK_URL` — Slack incoming webhook for release notifications
107+
108+
The `GITHUB_TOKEN` (automatic in Actions) handles GitHub Releases publishing. If the repo has restricted default token permissions, ensure `contents: write` is allowed (Settings → Actions → General).
109+
78110
## Updating App Icons
79111

80112
The source of truth for the app icon is `apps/desktop/app-icon.svg`. All other icon assets are derived from it. To regenerate after updating the SVG:

0 commit comments

Comments
 (0)