Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
243e6ce
Add browser use workspace panel
viper151 Jun 14, 2026
d427004
Merge browser use branch
viper151 Jun 14, 2026
828d1a2
Merge remote-tracking branch 'origin/feat/unify-websocket-2' into bro…
viper151 Jun 15, 2026
a182765
Merge branch 'browser-use' into electron-app
viper151 Jun 15, 2026
861cfec
feat: add electron app support
viper151 Jun 15, 2026
daac6e3
ci: add macos desktop release workflow
viper151 Jun 15, 2026
260070b
feat: add browser use runtime setup settings
viper151 Jun 15, 2026
e6263db
refactor: store browser use settings in database
viper151 Jun 15, 2026
6e7e2ff
feat: make browser use opt-in
viper151 Jun 15, 2026
0426522
feat: expose browser use to agents via MCP
viper151 Jun 15, 2026
e5c6e5e
fix: hide browser use runtime mode
viper151 Jun 15, 2026
9438a36
feat: improve browser use session controls
viper151 Jun 15, 2026
56532af
feat: add browser use guide links
viper151 Jun 15, 2026
7aeca52
Merge branch 'browser-use' into electron-app
viper151 Jun 16, 2026
6af4afe
Merge branch 'main' into browser-use
viper151 Jun 16, 2026
a0d5642
fix browser use
viper151 Jun 17, 2026
fc71fc7
Merge branch 'pr889-fixes' into electron-app
viper151 Jun 17, 2026
086df03
feat(browser-use): simplify agent session monitoring
viper151 Jun 17, 2026
496a895
feat(browser-use): refine monitoring panel ux
viper151 Jun 17, 2026
9881e5e
feat(browser-use): improve mobile monitoring ux
viper151 Jun 17, 2026
7e6028b
feat: add desktop computer use runtime
viper151 Jun 17, 2026
59194d1
Refine Browser naming and managed MCP UX
viper151 Jun 17, 2026
ffc0cd7
Improve Browser settings load and managed MCP display
viper151 Jun 17, 2026
bf50d29
Merge remote-tracking branch 'origin/browser-use' into electron-app
viper151 Jun 17, 2026
6c2652a
Merge remote-tracking branch 'origin/main' into electron-app
viper151 Jun 17, 2026
65fdc38
Add desktop app packaging and settings updates
viper151 Jun 17, 2026
ac37213
Run desktop branch builds on electron app pushes
viper151 Jun 17, 2026
1dbf545
Authenticate ripgrep install in desktop workflows
viper151 Jun 17, 2026
7786763
Fix desktop settings modal behavior
viper151 Jun 18, 2026
f75ae38
Add on-demand desktop server bundle
viper151 Jun 18, 2026
b2333e7
Fix launcher CodeQL unused helpers
viper151 Jun 18, 2026
531833b
Merge branch 'main' into electron-app
viper151 Jun 19, 2026
2af3d38
Harden desktop workflows and computer use handling
viper151 Jun 19, 2026
5be100e
Keep branch desktop artifacts thin
viper151 Jun 19, 2026
25ab273
Publish branch server bundles for thin desktop builds
viper151 Jun 19, 2026
9f24f80
Fix computer use session error status
viper151 Jun 19, 2026
e7aa72c
Update src/i18n/locales/tr/settings.json
viper151 Jun 19, 2026
0dd22db
Update src/i18n/locales/zh-TW/settings.json
viper151 Jun 19, 2026
06c9745
Update src/i18n/locales/zh-CN/settings.json
viper151 Jun 19, 2026
a35200f
Harden computer use MCP handling
viper151 Jun 19, 2026
1726705
feat: add CloudCLI computer use semantics, desktop helper packaging, …
viper151 Jun 19, 2026
d1930fe
fix: build semantic helpers on macos and windows
viper151 Jun 19, 2026
d7f4d4c
Fix desktop release review findings
viper151 Jun 19, 2026
278fe4f
Fix semantic review issues and release action runtime
viper151 Jun 19, 2026
901c6fc
chore: simplify desktop release artifacts
viper151 Jun 19, 2026
53c3c4c
Fix long-running desktop resource leaks
viper151 Jun 19, 2026
218e8e2
chore: update Codex SDK to latest
viper151 Jun 19, 2026
4d70a25
feat: improve Computer Use linking status
viper151 Jun 19, 2026
f4c6894
fix: repair desktop launcher local view
viper151 Jun 19, 2026
cf4b282
fix: compile macos semantic helper
viper151 Jun 19, 2026
5ef40be
fix: macos release
viper151 Jun 19, 2026
bb323fc
fix: respect cloud computer use setting
viper151 Jun 19, 2026
9f8cee8
fix: restore macos semantic helper cast
viper151 Jun 19, 2026
f150fa6
fix: apply CodeRabbit auto-fixes
coderabbitai[bot] Jun 19, 2026
077baee
fix: authenticate desktop agent websocket
viper151 Jun 19, 2026
1c05fe0
fix: stabilize cloud computer use mcp
viper151 Jun 19, 2026
bb630ef
fix: hide computer use menus
viper151 Jun 20, 2026
8c31ebc
feat(browser-use): add Camoufox noVNC session viewer
viper151 Jun 24, 2026
9457651
fix(browser-use): harden browser settings state
viper151 Jun 24, 2026
0610cc8
fix: browser use set profile root folder
viper151 Jun 24, 2026
0d68dc2
fix: add Electron tab diagnostics
viper151 Jun 24, 2026
81eb966
ci: skip notarization for macOS branch builds
viper151 Jun 24, 2026
490e66e
fix: stabilize desktop environment auth navigation
viper151 Jun 24, 2026
fe116a7
ci: restore notarized macOS branch builds
viper151 Jun 24, 2026
8ad18f8
fix: improve desktop chat performance
viper151 Jun 24, 2026
5224440
chore: remove windows icon generator
viper151 Jun 24, 2026
6f71226
fix: remove invalid windows build options
viper151 Jun 24, 2026
8adcdaa
Merge branch 'main' into camoufox-novnc-browser-use
viper151 Jun 24, 2026
e6c6f89
Merge branch 'main' into electron-app
viper151 Jun 26, 2026
63f3c39
feat: add desktop notifications and skills updates
viper151 Jun 26, 2026
3bc2c77
fix: await desktop auth token lookup
viper151 Jun 26, 2026
fff89e6
Merge branch 'main' into camoufox-novnc-browser-use
viper151 Jun 26, 2026
a0899a2
Merge branch 'main' into electron-app
viper151 Jun 26, 2026
46ba8e5
Potential fix for pull request finding 'Useless assignment to local v…
viper151 Jun 26, 2026
2616909
Merge pull request #891 from siteboon/electron-app
viper151 Jun 29, 2026
54f4d8a
Chat & sidebar UX improvements (#929)
blackmammoth Jun 29, 2026
ec43707
Merge remote-tracking branch 'origin/main' into HEAD
viper151 Jun 29, 2026
0907d87
Merge remote-tracking branch 'origin/main' into camoufox-novnc-browse…
viper151 Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 151 additions & 0 deletions .github/workflows/desktop-macos-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
name: Desktop macOS Release

on:
workflow_dispatch:
inputs:
tag:
description: 'Release tag to create or update (defaults to v<package version>)'
required: false
type: string
release_name:
description: 'Release name (defaults to "CloudCLI Desktop macOS <tag>")'
required: false
type: string
prerelease:
description: 'Mark the GitHub release as a prerelease'
required: true
default: false
type: boolean

jobs:
build-macos:
name: Build signed macOS desktop app
runs-on: macos-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
fetch-depth: 0
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Typecheck
run: npm run typecheck

- name: Resolve release metadata
id: release
env:
TAG_INPUT: ${{ inputs.tag }}
RELEASE_NAME_INPUT: ${{ inputs.release_name }}
run: |
VERSION="$(node -p "require('./package.json').version")"
TAG="$TAG_INPUT"
if [ -z "$TAG" ]; then
TAG="v${VERSION}"
fi
TAG="$(printf '%s' "$TAG" | tr -d '\r\n' | sed 's/[^A-Za-z0-9._-]/-/g')"
if [ -z "$TAG" ]; then
echo "Resolved release tag is empty after normalization." >&2
exit 1
fi

RELEASE_NAME="$RELEASE_NAME_INPUT"
if [ -z "$RELEASE_NAME" ]; then
RELEASE_NAME="CloudCLI Desktop macOS ${TAG}"
fi
RELEASE_NAME_DELIMITER="release_name_$(uuidgen)"

{
echo "tag=$TAG"
echo "release_name<<$RELEASE_NAME_DELIMITER"
printf '%s\n' "$RELEASE_NAME"
echo "$RELEASE_NAME_DELIMITER"
echo "server_bundle_tag=cloudcli-local-server-${TAG}"
} >> "$GITHUB_OUTPUT"

- name: Configure release server bundle source
env:
SERVER_BUNDLE_TAG: ${{ steps.release.outputs.server_bundle_tag }}
run: printf '{"releaseTag":"%s"}\n' "$SERVER_BUNDLE_TAG" > electron/server-bundle-config.json

- name: Verify signing secrets are configured
run: |
test -n "$CSC_LINK"
test -n "$CSC_KEY_PASSWORD"
test -n "$APPLE_ID"
test -n "$APPLE_APP_SPECIFIC_PASSWORD"
test -n "$APPLE_TEAM_ID"
env:
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

- name: Build signed and notarized macOS artifacts
run: npm run desktop:dist:mac -- --publish never
env:
CLOUDCLI_SEMANTICS_BUILD_REQUIRED: "1"
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

- name: Build local server bundle
run: node scripts/release/build-server-bundle.js

- name: Verify local server runtime artifacts
run: |
test -n "$(find release/local-server -maxdepth 1 -name 'cloudcli-local-server-*.tar.gz' -print -quit)"
test -n "$(find release/local-server -maxdepth 1 -name 'cloudcli-local-server-*.tar.gz.sha256' -print -quit)"

- name: Publish local server runtime assets
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
with:
tag_name: ${{ steps.release.outputs.server_bundle_tag }}
target_commitish: ${{ github.sha }}
name: CloudCLI Local Server Runtime (${{ steps.release.outputs.tag }})
body: |
This prerelease contains the Local mode runtime for CloudCLI Desktop.

Download CloudCLI Desktop from the main ${{ steps.release.outputs.tag }} release. When you open Local CloudCLI, the desktop app automatically downloads the matching runtime from this prerelease.

You do not need to download these runtime files manually.
prerelease: true
fail_on_unmatched_files: false
overwrite_files: true
files: |
release/local-server/*

- name: Verify macOS artifacts
run: |
test -n "$(find release/desktop -maxdepth 1 -name '*.dmg' -print -quit)"
shasum -a 256 release/desktop/*.dmg > release/SHASUMS256.txt
cat release/SHASUMS256.txt

- name: Publish GitHub release assets
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
with:
tag_name: ${{ steps.release.outputs.tag }}
target_commitish: ${{ github.sha }}
name: ${{ steps.release.outputs.release_name }}
body: |
Download the CloudCLI Desktop installer for your Mac.

The local server runtime used by local mode is installed automatically by the desktop app. You do not need to download any server bundle manually.
prerelease: ${{ inputs.prerelease }}
fail_on_unmatched_files: false
files: |
release/desktop/*.dmg
release/SHASUMS256.txt
Loading