acp migration (ui) : ui connect to acp directly instead of goosed (#10081)

This commit is contained in:
Lifei Zhou
2026-07-02 10:29:29 +10:00
committed by GitHub
parent 0d4b6924b9
commit b83b194dad
78 changed files with 2630 additions and 7899 deletions
-1
View File
@@ -56,7 +56,6 @@
- `cargo fmt --check` - Code formatting (rustfmt)
- `cargo test --jobs 2` - All tests
- `cargo clippy --all-targets -- -D warnings` - Linting (clippy)
- `just check-openapi-schema` - OpenAPI schema validation
**Desktop app checks:**
- `pnpm install --frozen-lockfile` - Fresh dependency install (in `ui/desktop/`)
+8 -4
View File
@@ -73,11 +73,11 @@ jobs:
key: intel-macos-deployment-target-12
- name: Build goose-server for Intel macOS (x86_64)
- name: Build desktop backend for Intel macOS (x86_64)
run: |
source ./bin/activate-hermit
rustup target add x86_64-apple-darwin
cargo build --release -p goose-server --target x86_64-apple-darwin
cargo build --release -p goose-cli --bin goose --target x86_64-apple-darwin
@@ -95,9 +95,13 @@ jobs:
# Check disk space after cleanup
df -h
- name: Copy binaries into Electron folder
- name: Copy backend binary into Electron folder
run: |
cp target/x86_64-apple-darwin/release/goosed ui/desktop/src/bin/goosed
mkdir -p ui/desktop/src/bin
rm -f ui/desktop/src/bin/goose
cp target/x86_64-apple-darwin/release/goose ui/desktop/src/bin/goose
chmod +x ui/desktop/src/bin/goose
ls -la ui/desktop/src/bin/
- name: Cache pnpm dependencies
uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0
+7 -6
View File
@@ -124,7 +124,7 @@ jobs:
with:
key: linux-${{ matrix.build-on }}-${{ matrix.variant }}
- name: Build goosed binary
- name: Build desktop backend binary
env:
RUST_LOG: debug
RUST_BACKTRACE: 1
@@ -137,15 +137,16 @@ jobs:
FEATURE_ARGS=(--features vulkan)
fi
cargo build --release --target ${TARGET} -p goose-server "${FEATURE_ARGS[@]}"
cargo build --release --target ${TARGET} -p goose-cli --bin goose "${FEATURE_ARGS[@]}"
- name: Copy binaries into Electron folder
- name: Copy backend binary into Electron folder
run: |
echo "Copying binaries to ui/desktop/src/bin/"
echo "Copying backend binary to ui/desktop/src/bin/"
export TARGET="x86_64-unknown-linux-gnu"
mkdir -p ui/desktop/src/bin
cp target/$TARGET/release/goosed ui/desktop/src/bin/
chmod +x ui/desktop/src/bin/goosed
rm -f ui/desktop/src/bin/goose
cp target/$TARGET/release/goose ui/desktop/src/bin/
chmod +x ui/desktop/src/bin/goose
ls -la ui/desktop/src/bin/
- name: Free Rust build artifacts before packaging
+21 -15
View File
@@ -113,28 +113,33 @@ jobs:
env:
CUDA_COMPUTE_CAP: ${{ inputs.windows_variant == 'cuda' && '80' || '' }}
run: |
Write-Output "Building Windows executable..."
if ("${{ inputs.windows_variant }}" -eq "cuda") {
cargo build --release --target x86_64-pc-windows-msvc -p goose-server --features cuda
$isCuda = "${{ inputs.windows_variant }}" -eq "cuda"
Write-Output "Building Windows ACP backend"
if ($isCuda) {
cargo build --release --target x86_64-pc-windows-msvc -p goose-cli --bin goose --features cuda
} else {
cargo build --release --target x86_64-pc-windows-msvc -p goose-server
cargo build --release --target x86_64-pc-windows-msvc -p goose-cli --bin goose
}
$binaryPath = "./target/x86_64-pc-windows-msvc/release/goose.exe"
# Verify build succeeded
if (-not (Test-Path "./target/x86_64-pc-windows-msvc/release/goosed.exe")) {
Write-Error "Windows binary not found."
if (-not (Test-Path $binaryPath)) {
Write-Error "Windows backend binary not found: $binaryPath"
Get-ChildItem ./target/x86_64-pc-windows-msvc/release/ -ErrorAction SilentlyContinue
exit 1
}
Write-Output "Windows binary found."
Get-Item ./target/x86_64-pc-windows-msvc/release/goosed.exe
Write-Output "Windows backend binary found."
Get-Item $binaryPath
- name: Prepare Windows binary
shell: bash
run: |
if [ ! -f "./target/x86_64-pc-windows-msvc/release/goosed.exe" ]; then
echo "Windows binary not found."
BACKEND_BINARY="./target/x86_64-pc-windows-msvc/release/goose.exe"
if [ ! -f "$BACKEND_BINARY" ]; then
echo "Windows backend binary not found: $BACKEND_BINARY"
exit 1
fi
@@ -142,13 +147,14 @@ jobs:
rm -rf ./ui/desktop/src/bin
mkdir -p ./ui/desktop/src/bin
echo "Copying Windows binary..."
cp -f ./target/x86_64-pc-windows-msvc/release/goosed.exe ./ui/desktop/src/bin/
echo "Copying Windows backend binary..."
cp -f "$BACKEND_BINARY" ./ui/desktop/src/bin/
if [ -d "./ui/desktop/src/platform/windows/bin" ]; then
echo "Copying Windows platform files..."
for file in ./ui/desktop/src/platform/windows/bin/*.{exe,dll,cmd}; do
if [ -f "$file" ] && [ "$(basename "$file")" != "goosed.exe" ]; then
filename="$(basename "$file")"
if [ -f "$file" ] && [ "$filename" != "goose.exe" ]; then
cp -f "$file" ./ui/desktop/src/bin/
fi
done
@@ -229,14 +235,14 @@ jobs:
certificate-profile-name: ${{ secrets.AZURE_CERTIFICATE_PROFILE_NAME }}
files: |
${{ github.workspace }}/dist-windows/Goose.exe
${{ github.workspace }}/dist-windows/resources/bin/goosed.exe
${{ github.workspace }}/dist-windows/resources/bin/goose.exe
- name: Verify signed executables
shell: pwsh
run: |
$files = @(
"dist-windows/Goose.exe",
"dist-windows/resources/bin/goosed.exe"
"dist-windows/resources/bin/goose.exe"
)
foreach ($file in $files) {
Write-Output "Verifying signature: $file"
+10 -4
View File
@@ -118,8 +118,10 @@ jobs:
key: macos-deployment-target-12
# Build the project
- name: Build goosed
run: source ./bin/activate-hermit && cargo build --release -p goose-server
- name: Build desktop backend
run: |
source ./bin/activate-hermit
cargo build --release -p goose-cli --bin goose
# Post-build cleanup to free space
- name: Post-build cleanup
@@ -134,9 +136,13 @@ jobs:
# Check disk space after cleanup
df -h
- name: Copy binaries into Electron folder
- name: Copy backend binary into Electron folder
run: |
cp target/release/goosed ui/desktop/src/bin/goosed
mkdir -p ui/desktop/src/bin
rm -f ui/desktop/src/bin/goose
cp target/release/goose ui/desktop/src/bin/goose
chmod +x ui/desktop/src/bin/goose
ls -la ui/desktop/src/bin/
- name: Cache pnpm dependencies
uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0
+4 -4
View File
@@ -67,7 +67,7 @@ jobs:
path: download_cli.sh
# ------------------------------------------------------------
# 4) Bundle Desktop App (macOS only) - builds goosed and Electron app
# 4) Bundle Desktop App (macOS only)
# ------------------------------------------------------------
bundle-desktop:
needs: [prepare-version]
@@ -80,7 +80,7 @@ jobs:
signing: false
# ------------------------------------------------------------
# 5) Bundle Desktop App (macOS Intel) - builds goosed and Electron app
# 5) Bundle Desktop App (macOS Intel)
# ------------------------------------------------------------
bundle-desktop-intel:
needs: [prepare-version]
@@ -93,7 +93,7 @@ jobs:
signing: false
# ------------------------------------------------------------
# 6) Bundle Desktop App (Linux) - builds goosed and Electron app
# 6) Bundle Desktop App (Linux)
# ------------------------------------------------------------
bundle-desktop-linux:
needs: [prepare-version]
@@ -102,7 +102,7 @@ jobs:
version: ${{ needs.prepare-version.outputs.version }}
# ------------------------------------------------------------
# 6) Bundle Desktop App (Windows) - builds goosed and Electron app
# 6) Bundle Desktop App (Windows)
# ------------------------------------------------------------
bundle-desktop-windows:
needs: [prepare-version]
-6
View File
@@ -183,12 +183,6 @@ jobs:
cd ui/desktop && pnpm install --frozen-lockfile
cd ../sdk && pnpm install --frozen-lockfile
- name: Check OpenAPI Schema is Up-to-Date
run: |
source ./bin/activate-hermit
hermit uninstall rustup
just check-openapi-schema
- name: Check ACP Schema is Up-to-Date
run: |
source ./bin/activate-hermit
+1 -44
View File
@@ -67,7 +67,7 @@ jobs:
- name: Build Binary for Smoke Tests
run: |
cargo build --bin goose --bin goosed
cargo build --bin goose
- name: Upload goose binary
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -76,13 +76,6 @@ jobs:
path: target/debug/goose
retention-days: 1
- name: Upload goosed binary
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: goosed-binary
path: target/debug/goosed
retention-days: 1
smoke-tests:
name: Smoke Tests
runs-on: ubuntu-latest
@@ -253,39 +246,3 @@ jobs:
mkdir -p $HOME/.local/share/goose/sessions
mkdir -p $HOME/.config/goose
bash scripts/test_compaction.sh
goosed-integration-tests:
name: goose server HTTP integration tests
runs-on: ubuntu-latest
needs: build-binary
steps:
- name: Checkout Code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.inputs.branch || github.ref }}
- name: Download Binary
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: goosed-binary
path: target/debug
- name: Make Binary Executable
run: chmod +x target/debug/goosed
- name: Install Node.js Dependencies
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
working-directory: ui/desktop
- name: Run Integration Tests
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GOOSED_BINARY: ../../target/debug/goosed
GOOSE_PROVIDER: anthropic
GOOSE_MODEL: claude-sonnet-4-5-20250929
SHELL: /bin/bash
SKIP_BUILD: 1
run: |
echo 'export PATH=/some/fake/path:$PATH' >> $HOME/.bash_profile
source ../../bin/activate-hermit && pnpm run test:integration:goosed
working-directory: ui/desktop