mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-07-01 01:23:06 +08:00
Compare commits
81 Commits
feat/compu
...
fix/sideba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98f6596b9d | ||
|
|
261690935f | ||
|
|
0168da7bcd | ||
|
|
3bcb541560 | ||
|
|
fcc469b55c | ||
|
|
2afe0955ed | ||
|
|
c88baaf8dc | ||
|
|
f8430dc886 | ||
|
|
98a3a3a1f4 | ||
|
|
2c08060f65 | ||
|
|
75bbafb438 | ||
|
|
7c8928c66d | ||
|
|
46ba8e56b4 | ||
|
|
a0899a252e | ||
|
|
3bc2c777a3 | ||
|
|
63f3c3941d | ||
|
|
e6c6f89dda | ||
|
|
6f712269e8 | ||
|
|
52244404a3 | ||
|
|
8ad18f8587 | ||
|
|
fe116a7138 | ||
|
|
490e66ebdb | ||
|
|
81eb966904 | ||
|
|
0d68dc2cd0 | ||
|
|
bb630ef739 | ||
|
|
1c05fe0905 | ||
|
|
077baee5f2 | ||
|
|
f150fa6b09 | ||
|
|
9f8cee8919 | ||
|
|
bb323fc566 | ||
|
|
5ef40be2d3 | ||
|
|
cf4b28273e | ||
|
|
f4c68942a5 | ||
|
|
4d70a2588c | ||
|
|
218e8e2e38 | ||
|
|
53c3c4c27a | ||
|
|
901c6fc956 | ||
|
|
278fe4f7b1 | ||
|
|
d7f4d4c342 | ||
|
|
d1930fecdb | ||
|
|
1726705459 | ||
|
|
a35200f340 | ||
|
|
06c9745489 | ||
|
|
0dd22db2bb | ||
|
|
e7aa72c41e | ||
|
|
9f24f80f33 | ||
|
|
25ab273b05 | ||
|
|
5be100ea1b | ||
|
|
2af3d38afe | ||
|
|
531833bc87 | ||
|
|
b2333e7d93 | ||
|
|
f75ae385dd | ||
|
|
7786763dd1 | ||
|
|
1dbf545fd9 | ||
|
|
ac37213269 | ||
|
|
65fdc38f2e | ||
|
|
6c2652aee6 | ||
|
|
bf50d29c20 | ||
|
|
ffc0cd7501 | ||
|
|
59194d1502 | ||
|
|
7e6028b113 | ||
|
|
9881e5e366 | ||
|
|
496a895e8a | ||
|
|
086df034b4 | ||
|
|
fc71fc7d2b | ||
|
|
a0d56429a7 | ||
|
|
6af4afe6f2 | ||
|
|
7aeca52669 | ||
|
|
56532af33a | ||
|
|
9438a365f2 | ||
|
|
e5c6e5e596 | ||
|
|
0426522406 | ||
|
|
6e7e2ff4c1 | ||
|
|
e6263dbd1f | ||
|
|
260070bae0 | ||
|
|
daac6e3fd3 | ||
|
|
861cfecbaa | ||
|
|
a182765e10 | ||
|
|
828d1a2302 | ||
|
|
d427004bd7 | ||
|
|
243e6cecd5 |
151
.github/workflows/desktop-macos-release.yml
vendored
Normal file
151
.github/workflows/desktop-macos-release.yml
vendored
Normal file
@@ -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
|
||||||
305
.github/workflows/desktop-release.yml
vendored
305
.github/workflows/desktop-release.yml
vendored
@@ -1,305 +0,0 @@
|
|||||||
name: Desktop 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 <tag>")'
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
prerelease:
|
|
||||||
description: "Mark the GitHub release as a prerelease"
|
|
||||||
required: true
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
resolve-release:
|
|
||||||
name: Resolve release metadata
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
outputs:
|
|
||||||
tag: ${{ steps.release.outputs.tag }}
|
|
||||||
release_name: ${{ steps.release.outputs.release_name }}
|
|
||||||
server_bundle_tag: ${{ steps.release.outputs.server_bundle_tag }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- 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 ${TAG}"
|
|
||||||
fi
|
|
||||||
RELEASE_NAME_DELIMITER="release_name_${GITHUB_RUN_ID}_${GITHUB_RUN_ATTEMPT}"
|
|
||||||
|
|
||||||
{
|
|
||||||
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"
|
|
||||||
|
|
||||||
build-macos:
|
|
||||||
name: Build signed macOS desktop app
|
|
||||||
needs: resolve-release
|
|
||||||
runs-on: macos-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
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: Configure release server bundle source
|
|
||||||
env:
|
|
||||||
SERVER_BUNDLE_TAG: ${{ needs.resolve-release.outputs.server_bundle_tag }}
|
|
||||||
run: printf '{"releaseTag":"%s"}\n' "$SERVER_BUNDLE_TAG" > electron/server-bundle-config.json
|
|
||||||
|
|
||||||
- name: Verify macOS 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 macOS local server bundle
|
|
||||||
run: node scripts/release/build-server-bundle.js
|
|
||||||
|
|
||||||
- name: Stage macOS release assets
|
|
||||||
run: |
|
|
||||||
mkdir -p desktop-release-assets server-release-assets
|
|
||||||
test -n "$(find release/desktop -maxdepth 1 -name '*.dmg' -print -quit)"
|
|
||||||
shasum -a 256 release/desktop/*.dmg > desktop-release-assets/SHASUMS256-macos.txt
|
|
||||||
cp release/desktop/*.dmg desktop-release-assets/
|
|
||||||
|
|
||||||
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)"
|
|
||||||
cp release/local-server/* server-release-assets/
|
|
||||||
|
|
||||||
- name: Upload macOS desktop assets
|
|
||||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
||||||
with:
|
|
||||||
name: desktop-release-macos
|
|
||||||
path: desktop-release-assets/*
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
- name: Upload macOS server assets
|
|
||||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
||||||
with:
|
|
||||||
name: server-release-macos
|
|
||||||
path: server-release-assets/*
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
build-windows:
|
|
||||||
name: Build Windows desktop app
|
|
||||||
needs: resolve-release
|
|
||||||
runs-on: windows-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
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
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
|
||||||
|
|
||||||
- name: Typecheck
|
|
||||||
run: npm run typecheck
|
|
||||||
|
|
||||||
- name: Configure release server bundle source
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
SERVER_BUNDLE_TAG: ${{ needs.resolve-release.outputs.server_bundle_tag }}
|
|
||||||
run: printf '{"releaseTag":"%s"}\n' "$SERVER_BUNDLE_TAG" > electron/server-bundle-config.json
|
|
||||||
|
|
||||||
- name: Check Windows signing secrets
|
|
||||||
id: windows-signing
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
WINDOWS_CSC_LINK: ${{ secrets.WINDOWS_CSC_LINK }}
|
|
||||||
WINDOWS_CSC_KEY_PASSWORD: ${{ secrets.WINDOWS_CSC_KEY_PASSWORD }}
|
|
||||||
run: |
|
|
||||||
if [ -n "$WINDOWS_CSC_LINK" ] && [ -n "$WINDOWS_CSC_KEY_PASSWORD" ]; then
|
|
||||||
echo "enabled=true" >> "$GITHUB_OUTPUT"
|
|
||||||
else
|
|
||||||
echo "enabled=false" >> "$GITHUB_OUTPUT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Build signed Windows artifacts
|
|
||||||
if: steps.windows-signing.outputs.enabled == 'true'
|
|
||||||
run: npm run desktop:dist:win -- --publish never
|
|
||||||
env:
|
|
||||||
CLOUDCLI_SEMANTICS_BUILD_REQUIRED: "1"
|
|
||||||
CSC_LINK: ${{ secrets.WINDOWS_CSC_LINK }}
|
|
||||||
CSC_KEY_PASSWORD: ${{ secrets.WINDOWS_CSC_KEY_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Build unsigned Windows artifacts
|
|
||||||
if: steps.windows-signing.outputs.enabled != 'true'
|
|
||||||
run: npm run desktop:dist:win -- --publish never
|
|
||||||
env:
|
|
||||||
CLOUDCLI_SEMANTICS_BUILD_REQUIRED: "1"
|
|
||||||
CSC_IDENTITY_AUTO_DISCOVERY: "false"
|
|
||||||
|
|
||||||
- name: Build Windows local server bundle
|
|
||||||
run: node scripts/release/build-server-bundle.js
|
|
||||||
|
|
||||||
- name: Stage Windows release assets
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
mkdir -p desktop-release-assets server-release-assets
|
|
||||||
test -n "$(find release/desktop -maxdepth 1 -name '*.exe' -print -quit)"
|
|
||||||
sha256sum release/desktop/*.exe > desktop-release-assets/SHASUMS256-windows.txt
|
|
||||||
cp release/desktop/*.exe desktop-release-assets/
|
|
||||||
|
|
||||||
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)"
|
|
||||||
cp release/local-server/* server-release-assets/
|
|
||||||
|
|
||||||
- name: Upload Windows desktop assets
|
|
||||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
||||||
with:
|
|
||||||
name: desktop-release-windows
|
|
||||||
path: desktop-release-assets/*
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
- name: Upload Windows server assets
|
|
||||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
||||||
with:
|
|
||||||
name: server-release-windows
|
|
||||||
path: server-release-assets/*
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
publish:
|
|
||||||
name: Publish desktop release
|
|
||||||
needs:
|
|
||||||
- resolve-release
|
|
||||||
- build-macos
|
|
||||||
- build-windows
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
steps:
|
|
||||||
- name: Download desktop assets
|
|
||||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
||||||
with:
|
|
||||||
pattern: desktop-release-*
|
|
||||||
path: release/desktop
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Download server assets
|
|
||||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
||||||
with:
|
|
||||||
pattern: server-release-*
|
|
||||||
path: release/local-server
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Verify release assets
|
|
||||||
run: |
|
|
||||||
test -n "$(find release/desktop -maxdepth 1 -name '*.dmg' -print -quit)"
|
|
||||||
test -n "$(find release/desktop -maxdepth 1 -name '*.exe' -print -quit)"
|
|
||||||
test -f release/desktop/SHASUMS256-macos.txt
|
|
||||||
test -f release/desktop/SHASUMS256-windows.txt
|
|
||||||
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)"
|
|
||||||
find release -maxdepth 2 -type f -print | sort
|
|
||||||
|
|
||||||
- name: Publish local server runtime assets
|
|
||||||
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
|
|
||||||
with:
|
|
||||||
tag_name: ${{ needs.resolve-release.outputs.server_bundle_tag }}
|
|
||||||
target_commitish: ${{ github.sha }}
|
|
||||||
name: CloudCLI Local Server Runtime (${{ needs.resolve-release.outputs.tag }})
|
|
||||||
body: |
|
|
||||||
This prerelease contains the Local mode runtime for CloudCLI Desktop.
|
|
||||||
|
|
||||||
Download CloudCLI Desktop from the main ${{ needs.resolve-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: Publish GitHub release assets
|
|
||||||
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
|
|
||||||
with:
|
|
||||||
tag_name: ${{ needs.resolve-release.outputs.tag }}
|
|
||||||
target_commitish: ${{ github.sha }}
|
|
||||||
name: ${{ needs.resolve-release.outputs.release_name }}
|
|
||||||
body: |
|
|
||||||
Download the CloudCLI Desktop installer for your platform.
|
|
||||||
|
|
||||||
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
|
|
||||||
overwrite_files: true
|
|
||||||
files: |
|
|
||||||
release/desktop/*
|
|
||||||
7
.github/workflows/release.yml
vendored
7
.github/workflows/release.yml
vendored
@@ -4,9 +4,9 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
increment:
|
increment:
|
||||||
description: "Version bump: patch, minor, major, or explicit (e.g. 1.27.0)"
|
description: 'Version bump: patch, minor, major, or explicit (e.g. 1.27.0)'
|
||||||
required: true
|
required: true
|
||||||
default: "patch"
|
default: 'patch'
|
||||||
type: string
|
type: string
|
||||||
release_name:
|
release_name:
|
||||||
description: 'Custom release name (optional, defaults to "CloudCLI UI vX.Y.Z")'
|
description: 'Custom release name (optional, defaults to "CloudCLI UI vX.Y.Z")'
|
||||||
@@ -124,9 +124,6 @@ jobs:
|
|||||||
path: server/modules/computer-use/semantics/bin
|
path: server/modules/computer-use/semantics/bin
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
|
|
||||||
- name: Restore semantic helper permissions
|
|
||||||
run: find server/modules/computer-use/semantics/bin -path '*/darwin-*/CloudCLISemantics' -type f -exec chmod 755 {} +
|
|
||||||
|
|
||||||
- name: Verify bundled semantic helpers
|
- name: Verify bundled semantic helpers
|
||||||
run: |
|
run: |
|
||||||
test -x server/modules/computer-use/semantics/bin/darwin-arm64/CloudCLISemantics
|
test -x server/modules/computer-use/semantics/bin/darwin-arm64/CloudCLISemantics
|
||||||
|
|||||||
53
CHANGELOG.md
53
CHANGELOG.md
@@ -3,59 +3,6 @@
|
|||||||
All notable changes to CloudCLI UI will be documented in this file.
|
All notable changes to CloudCLI UI will be documented in this file.
|
||||||
|
|
||||||
|
|
||||||
## [1.35.0](https://github.com/siteboon/claudecodeui/compare/v1.34.0...v1.35.0) (2026-06-29)
|
|
||||||
|
|
||||||
### New Features
|
|
||||||
|
|
||||||
* add Electron desktop app ([97c9b67](https://github.com/siteboon/claudecodeui/commit/97c9b67bfc2d803560cd1559a4e79eea9731c7b5))
|
|
||||||
* **chat:** derive activity indicator from per-session state and unify provider lifecycle events ([afc717e](https://github.com/siteboon/claudecodeui/commit/afc717e69e67f53173c30d2230722236f9180d39))
|
|
||||||
* **chat:** unify session gateway with stable IDs and a single WS protocol ([f5eac2e](https://github.com/siteboon/claudecodeui/commit/f5eac2ec12c8575bf80202fafe807d9e04720105))
|
|
||||||
* **i18n:** add French (fr) locale ([#878](https://github.com/siteboon/claudecodeui/issues/878)) ([f319d2c](https://github.com/siteboon/claudecodeui/commit/f319d2cf8d61452deaf6adf345494dd3e6898284))
|
|
||||||
* play sound for pending tool requests ([#918](https://github.com/siteboon/claudecodeui/issues/918)) ([c947eaa](https://github.com/siteboon/claudecodeui/commit/c947eaaee5fbc959563efb917f4ec7c88847dd6b))
|
|
||||||
* render changelog as markdown in version upgrade modal ([6a53c31](https://github.com/siteboon/claudecodeui/commit/6a53c31e907fffa79320997c27f99660c946b4a6))
|
|
||||||
* **sidebar:** improve running session state tracking ([591b18e](https://github.com/siteboon/claudecodeui/commit/591b18e9e343fda23affe100a53911f76aaa8f57))
|
|
||||||
* **skills:** add provider skill management ([#909](https://github.com/siteboon/claudecodeui/issues/909)) ([c5fe127](https://github.com/siteboon/claudecodeui/commit/c5fe127958d830eee19d008d8634c0e7d77fe1b9))
|
|
||||||
* **version:** warn when the server was updated but not restarted ([#898](https://github.com/siteboon/claudecodeui/issues/898)) ([f6326c8](https://github.com/siteboon/claudecodeui/commit/f6326c8082dfbe8a65dcdb836d3e71c635594c26))
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* changes provider logos to svg for fast load ([7bed675](https://github.com/siteboon/claudecodeui/commit/7bed675ad5fd1ecf7912d1a04afe9db5b1032823))
|
|
||||||
* **chat:** prevent chat interface crash on malformed AskUserQuestion payload ([#920](https://github.com/siteboon/claudecodeui/issues/920)) ([ed4ae31](https://github.com/siteboon/claudecodeui/commit/ed4ae3114aafc1d4ecb0b621eaf9d3b26dbca5b1))
|
|
||||||
* **chat:** prevent normalizeInlineCodeFences from breaking adjacent fenced code blocks ([#903](https://github.com/siteboon/claudecodeui/issues/903)) ([4712431](https://github.com/siteboon/claudecodeui/commit/4712431be81718dfb559ef43d7d7d5315bf4e01a))
|
|
||||||
* **chat:** sort messages appropriately ([123ae31](https://github.com/siteboon/claudecodeui/commit/123ae310207fe5969c3b313f62b9dee27e5d7489))
|
|
||||||
* **claude-sync:** skip subagent transcripts to prevent main session corruption ([#854](https://github.com/siteboon/claudecodeui/issues/854)) ([a12ca8e](https://github.com/siteboon/claudecodeui/commit/a12ca8eed373ef56cd37fbdd097845eaab34dee9))
|
|
||||||
* correct notification session id ([881e72d](https://github.com/siteboon/claudecodeui/commit/881e72d4a00ec9c1a5e1ae4799bffa900f27c1f8))
|
|
||||||
* create one unified function for frontend session processing ([677d330](https://github.com/siteboon/claudecodeui/commit/677d330981ef29a856f09e62b9f69bac0fa580d4))
|
|
||||||
* **i18n:** add missing sidebar message keys to all locales ([#896](https://github.com/siteboon/claudecodeui/issues/896)) ([7ca3556](https://github.com/siteboon/claudecodeui/commit/7ca355651f0a805965bc27af3d75def626c5fb96))
|
|
||||||
* keep running-session polling active ([39b0473](https://github.com/siteboon/claudecodeui/commit/39b0473e38201c29ff1e5388946452d2eed44527))
|
|
||||||
* normalize project session payloads ([d0adddb](https://github.com/siteboon/claudecodeui/commit/d0adddbbdafecfd5713a8ac5b95c87a8f7fc54f8))
|
|
||||||
* **opencode:** bind watcher sessions to app rows early ([5b9adbb](https://github.com/siteboon/claudecodeui/commit/5b9adbbdee8561439a27ad90744388225823427b))
|
|
||||||
* **opencode:** pass workspace dir explicitly ([416a737](https://github.com/siteboon/claudecodeui/commit/416a737d76e654d2fc649206c2b921a7db150775))
|
|
||||||
* recover pending permission requests ([56b2e14](https://github.com/siteboon/claudecodeui/commit/56b2e1405967c50301d0c773567349763edc8560))
|
|
||||||
* remove provider specific token usage calculator ([2abb456](https://github.com/siteboon/claudecodeui/commit/2abb45636b5e1109733cfa58c8ab92fd4c812165))
|
|
||||||
* resolve session provider on backend reads ([9fb2d91](https://github.com/siteboon/claudecodeui/commit/9fb2d91b26bef9579337d953a29718802c466fed))
|
|
||||||
* **sessions:** canonicalize sidebar ids and timestamps ([3bbb42c](https://github.com/siteboon/claudecodeui/commit/3bbb42c23324c3cbb5587f2bcab09b1dc23086a8))
|
|
||||||
* **shell:** prioritize user npm binaries ([#913](https://github.com/siteboon/claudecodeui/issues/913)) ([4a503b1](https://github.com/siteboon/claudecodeui/commit/4a503b1dc87ff58821670c8bfb1d8a8c1dab2bcf))
|
|
||||||
* **shell:** use correct session id ([89f0524](https://github.com/siteboon/claudecodeui/commit/89f05247eddec4fe53bd1616c6a5563e3ae2427a))
|
|
||||||
* **sidebar:** align session status controls across layouts ([1b336e9](https://github.com/siteboon/claudecodeui/commit/1b336e9aa9d2cccf0676d852815d9ba613ac04d2))
|
|
||||||
* upgrade gemini logo ([9cb2afd](https://github.com/siteboon/claudecodeui/commit/9cb2afd67eb25a4f869b88abcf86f7748b2b6d71))
|
|
||||||
* voice tts format settings ([#919](https://github.com/siteboon/claudecodeui/issues/919)) ([591e8e7](https://github.com/siteboon/claudecodeui/commit/591e8e7642589b0584f9b29b46b881aaab54624e))
|
|
||||||
|
|
||||||
### Documentation
|
|
||||||
|
|
||||||
* update available plugin readmes ([f549bd9](https://github.com/siteboon/claudecodeui/commit/f549bd99e7106362a27cf4ccee6e9d434b8b5363))
|
|
||||||
* update session activity guard comment ([e23e6af](https://github.com/siteboon/claudecodeui/commit/e23e6af06a44cc4b016df5778984602d49e52629))
|
|
||||||
|
|
||||||
### Maintenance
|
|
||||||
|
|
||||||
* add github issues board plugin ([21b0f14](https://github.com/siteboon/claudecodeui/commit/21b0f14e7a86f257c65484742c43b9f85152b32c))
|
|
||||||
* add more plugins list ([bc34085](https://github.com/siteboon/claudecodeui/commit/bc34085af9912da8d8592881a5845cff84a53f7d))
|
|
||||||
* move tests to appropriate folder ([d7a38a5](https://github.com/siteboon/claudecodeui/commit/d7a38a567a5e9039935353a886310b3c32b25a79))
|
|
||||||
* move tests to appropriate folder ([c6c153e](https://github.com/siteboon/claudecodeui/commit/c6c153e7f2a60572b08d687b59f010b4ad4f5d72))
|
|
||||||
* remove a log ([00e526b](https://github.com/siteboon/claudecodeui/commit/00e526b6e90ee0baf09ebf48873bc10824ab80ba))
|
|
||||||
* remove unused modelConstants from the project ([92de0ed](https://github.com/siteboon/claudecodeui/commit/92de0ed6137bf4571056deb3b930cc9fd22e2a08))
|
|
||||||
* upgrade gemini models ([3d94821](https://github.com/siteboon/claudecodeui/commit/3d948217ef3084e764171ebc5dda55f663150b2c))
|
|
||||||
|
|
||||||
## [](https://github.com/siteboon/claudecodeui/compare/v1.33.3...vnull) (2026-06-09)
|
## [](https://github.com/siteboon/claudecodeui/compare/v1.33.3...vnull) (2026-06-09)
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@cloudcli-ai/cloudcli",
|
"name": "@cloudcli-ai/cloudcli",
|
||||||
"version": "1.35.0",
|
"version": "1.34.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@cloudcli-ai/cloudcli",
|
"name": "@cloudcli-ai/cloudcli",
|
||||||
"version": "1.35.0",
|
"version": "1.34.0",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@cloudcli-ai/cloudcli",
|
"name": "@cloudcli-ai/cloudcli",
|
||||||
"version": "1.35.0",
|
"version": "1.34.0",
|
||||||
"productName": "CloudCLI",
|
"productName": "CloudCLI",
|
||||||
"description": "A web-based UI for Claude Code CLI",
|
"description": "A web-based UI for Claude Code CLI",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user