Skip to content

Commit 476328e

Browse files
committed
Merge branch 'main' into manik/whitelabel
* main: (125 commits) chore: add a new scenario (#7107) fix: Goose Desktop missing Calendar and Reminders entitlements (#7100) Fix 'Edit In Place' and 'Fork Session' features (#6970) Fix: Only send command content to command injection classifier (excluding part of tool call dict) (#7082) Docs: require auth optional for custom providers (#7098) fix: improve text-muted contrast for better readability (#7095) Always sync bundled extensions (#7057) feat: Add tom (Top Of Mind) platform extension (#7073) chore(docs): update GOOSE_SESSION_ID -> AGENT_SESSION_ID (#6669) fix(ci): switch from cargo-audit to cargo-deny for advisory scanning (#7032) chore(deps): bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /evals/open-model-gym/suite (#7085) chore(deps): bump @modelcontextprotocol/sdk from 1.25.3 to 1.26.0 in /evals/open-model-gym/mcp-harness (#7086) fix: switch to windows msvc (#7080) fix: allow unlisted models for CLI providers (#7090) Use goose port (#7089) chore: strip posthog for sessions/models/daily only (#7079) tidy: clean up old benchmark and add gym (#7081) fix: use command.process_group(0) for CLI providers, not just MCP (#7083) added build notify (#6891) test(mcp): add image tool test and consolidate MCP test fixtures (#7019) ...
2 parents 2fd8f79 + a484eee commit 476328e

File tree

454 files changed

+143534
-103071
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

454 files changed

+143534
-103071
lines changed

.github/copilot-instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
**Rust checks:**
5757
- `cargo fmt --check` - Code formatting (rustfmt)
5858
- `cargo test --jobs 2` - All tests
59-
- `./scripts/clippy-lint.sh` - Linting (clippy)
59+
- `cargo clippy --all-targets -- -D warnings` - Linting (clippy)
6060
- `just check-openapi-schema` - OpenAPI schema validation
6161

6262
**Desktop app checks:**
@@ -76,7 +76,7 @@
7676

7777
Do not comment on:
7878
- **Style/formatting** - CI handles this (rustfmt, prettier)
79-
- **Clippy warnings** - CI handles this (clippy-lint.sh)
79+
- **Clippy warnings** - CI handles this (clippy)
8080
- **Test failures** - CI handles this (full test suite)
8181
- **Missing dependencies** - CI handles this (npm ci will fail)
8282
- **Minor naming suggestions** - unless truly confusing

.github/workflows/build-cli.yml

Lines changed: 23 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# Platform Build Strategy:
77
# - Linux: Uses Ubuntu runner with cross-compilation
88
# - macOS: Uses macOS runner with cross-compilation
9-
# - Windows: Uses Ubuntu runner with Docker cross-compilation (same as desktop build)
9+
# - Windows: Uses Windows runner with native MSVC build
1010
on:
1111
workflow_call:
1212
inputs:
@@ -56,10 +56,9 @@ jobs:
5656
# Windows builds (only x86_64 supported)
5757
- os: windows
5858
architecture: x86_64
59-
target-suffix: pc-windows-gnu
60-
build-on: ubuntu-latest
59+
target-suffix: pc-windows-msvc
60+
build-on: windows-latest
6161
use-cross: false
62-
use-docker: true
6362

6463
steps:
6564
- name: Checkout code
@@ -70,6 +69,7 @@ jobs:
7069

7170
- name: Update version in Cargo.toml
7271
if: ${{ inputs.version != '' }}
72+
shell: bash
7373
run: |
7474
sed -i.bak 's/^version = ".*"/version = "'${{ inputs.version }}'"/' Cargo.toml
7575
rm -f Cargo.toml.bak
@@ -85,10 +85,10 @@ jobs:
8585
key: ${{ matrix.architecture }}-${{ matrix.target-suffix }}
8686

8787
- name: Cache Cargo artifacts (Windows)
88-
if: matrix.use-docker
88+
if: matrix.os == 'windows'
8989
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
9090
with:
91-
key: ${{ matrix.architecture }}-${{ matrix.target-suffix }}
91+
key: windows-msvc-cli
9292

9393
- name: Build CLI (Linux/macOS)
9494
if: matrix.use-cross
@@ -110,110 +110,28 @@ jobs:
110110
export CC="${{ matrix.cc || ''}}"
111111
cross build --release --target ${TARGET} -p goose-cli
112112
113-
- name: Build CLI (Windows)
114-
if: matrix.use-docker
113+
- name: Setup Rust (Windows)
114+
if: matrix.os == 'windows'
115+
shell: bash
115116
run: |
116-
echo "🚀 Building Windows CLI executable with enhanced GitHub Actions caching..."
117-
118-
# Create cache directories
119-
mkdir -p ~/.cargo/registry ~/.cargo/git
120-
121-
# Use enhanced caching with GitHub Actions cache mounts
122-
docker run --rm \
123-
-v "$(pwd)":/usr/src/myapp \
124-
-v "$HOME/.cargo/registry":/usr/local/cargo/registry \
125-
-v "$HOME/.cargo/git":/usr/local/cargo/git \
126-
-w /usr/src/myapp \
127-
rust:latest \
128-
bash -c "
129-
set -e
130-
echo '=== Setting up Rust environment with caching ==='
131-
export CARGO_HOME=/usr/local/cargo
132-
export PATH=/usr/local/cargo/bin:\$PATH
133-
134-
# Check if Windows target is already installed in cache
135-
if rustup target list --installed | grep -q x86_64-pc-windows-gnu; then
136-
echo '✅ Windows cross-compilation target already installed'
137-
else
138-
echo '📦 Installing Windows cross-compilation target...'
139-
rustup target add x86_64-pc-windows-gnu
140-
fi
141-
142-
echo '=== Setting up build dependencies ==='
143-
apt-get update
144-
apt-get install -y mingw-w64 protobuf-compiler cmake time
145-
146-
echo '=== Setting up cross-compilation environment ==='
147-
export CC_x86_64_pc_windows_gnu=x86_64-w64-mingw32-gcc
148-
export CXX_x86_64_pc_windows_gnu=x86_64-w64-mingw32-g++
149-
export AR_x86_64_pc_windows_gnu=x86_64-w64-mingw32-ar
150-
export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER=x86_64-w64-mingw32-gcc
151-
export PKG_CONFIG_ALLOW_CROSS=1
152-
export PROTOC=/usr/bin/protoc
153-
154-
echo '=== Optimized Cargo configuration ==='
155-
mkdir -p .cargo
156-
echo '[build]' > .cargo/config.toml
157-
echo 'jobs = 4' >> .cargo/config.toml
158-
echo '' >> .cargo/config.toml
159-
echo '[target.x86_64-pc-windows-gnu]' >> .cargo/config.toml
160-
echo 'linker = \"x86_64-w64-mingw32-gcc\"' >> .cargo/config.toml
161-
echo '' >> .cargo/config.toml
162-
echo '[net]' >> .cargo/config.toml
163-
echo 'git-fetch-with-cli = true' >> .cargo/config.toml
164-
echo 'retry = 3' >> .cargo/config.toml
165-
echo '' >> .cargo/config.toml
166-
echo '[profile.release]' >> .cargo/config.toml
167-
echo 'codegen-units = 1' >> .cargo/config.toml
168-
echo 'lto = false' >> .cargo/config.toml
169-
echo 'panic = \"abort\"' >> .cargo/config.toml
170-
echo 'debug = false' >> .cargo/config.toml
171-
echo 'opt-level = 2' >> .cargo/config.toml
172-
echo '' >> .cargo/config.toml
173-
echo '[registries.crates-io]' >> .cargo/config.toml
174-
echo 'protocol = \"sparse\"' >> .cargo/config.toml
175-
176-
echo '=== Building with cached dependencies ==='
177-
# Check if we have cached build artifacts
178-
if [ -d target/x86_64-pc-windows-gnu/release/deps ] && [ \"\$(ls -A target/x86_64-pc-windows-gnu/release/deps)\" ]; then
179-
echo '✅ Found cached build artifacts, performing incremental build...'
180-
CARGO_INCREMENTAL=1
181-
else
182-
echo '🔨 No cached artifacts found, performing full build...'
183-
CARGO_INCREMENTAL=0
184-
fi
185-
186-
echo '🔨 Building Windows CLI executable...'
187-
CARGO_INCREMENTAL=\$CARGO_INCREMENTAL \
188-
CARGO_NET_RETRY=3 \
189-
CARGO_HTTP_TIMEOUT=60 \
190-
RUST_BACKTRACE=1 \
191-
cargo build --release --target x86_64-pc-windows-gnu -p goose-cli --jobs 4
192-
193-
echo '=== Copying Windows runtime DLLs ==='
194-
GCC_DIR=\$(ls -d /usr/lib/gcc/x86_64-w64-mingw32/*/ | head -n 1)
195-
cp \"\$GCC_DIR/libstdc++-6.dll\" target/x86_64-pc-windows-gnu/release/
196-
cp \"\$GCC_DIR/libgcc_s_seh-1.dll\" target/x86_64-pc-windows-gnu/release/
197-
cp /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll target/x86_64-pc-windows-gnu/release/
198-
199-
echo '✅ Build completed successfully!'
200-
ls -la target/x86_64-pc-windows-gnu/release/
201-
"
117+
rustup show
118+
rustup target add x86_64-pc-windows-msvc
202119
203-
sudo chown -R $USER:$USER target/
120+
- name: Build CLI (Windows)
121+
if: matrix.os == 'windows'
122+
shell: bash
123+
run: |
124+
echo "🚀 Building Windows CLI executable..."
125+
cargo build --release --target x86_64-pc-windows-msvc -p goose-cli
204126
205-
# Verify build succeeded
206-
if [ ! -f "./target/x86_64-pc-windows-gnu/release/goose.exe" ]; then
127+
if [ ! -f "./target/x86_64-pc-windows-msvc/release/goose.exe" ]; then
207128
echo "❌ Windows CLI binary not found."
208-
ls -la ./target/x86_64-pc-windows-gnu/release/ || echo "Release directory doesn't exist"
129+
ls -la ./target/x86_64-pc-windows-msvc/release/ || echo "Release directory doesn't exist"
209130
exit 1
210131
fi
211132
212133
echo "✅ Windows CLI binary found!"
213-
ls -la ./target/x86_64-pc-windows-gnu/release/goose.exe
214-
215-
echo "✅ Windows runtime DLLs:"
216-
ls -la ./target/x86_64-pc-windows-gnu/release/*.dll
134+
ls -la ./target/x86_64-pc-windows-msvc/release/goose.exe
217135
218136
- name: Package CLI (Linux/macOS)
219137
if: matrix.use-cross
@@ -233,22 +151,17 @@ jobs:
233151
echo "ARTIFACT=target/${TARGET}/release/goose-${TARGET}.tar.bz2" >> $GITHUB_ENV
234152
235153
- name: Package CLI (Windows)
236-
if: matrix.use-docker
154+
if: matrix.os == 'windows'
155+
shell: bash
237156
run: |
238157
export TARGET="${{ matrix.architecture }}-${{ matrix.target-suffix }}"
239158
240-
# Create a directory for the package contents
241159
mkdir -p "target/${TARGET}/release/goose-package"
242160
243-
# Copy the goose binary
244161
cp "target/${TARGET}/release/goose.exe" "target/${TARGET}/release/goose-package/"
245162
246-
# Copy Windows runtime DLLs
247-
cp "target/${TARGET}/release/"*.dll "target/${TARGET}/release/goose-package/"
248-
249-
# Create the zip archive with binary and DLLs
250163
cd "target/${TARGET}/release"
251-
zip -r "goose-${TARGET}.zip" goose-package/
164+
7z a -tzip "goose-${TARGET}.zip" goose-package/
252165
echo "ARTIFACT=target/${TARGET}/release/goose-${TARGET}.zip" >> $GITHUB_ENV
253166
254167
- name: Upload CLI artifact

.github/workflows/build-notify.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: BuildNotify
2+
3+
on:
4+
workflow_run:
5+
workflows:
6+
- CI
7+
- Release
8+
types: [completed]
9+
10+
11+
jobs:
12+
notify:
13+
if: >
14+
github.event.workflow_run.conclusion == 'failure' &&
15+
(
16+
github.event.workflow_run.name != 'CI' ||
17+
github.event.workflow_run.head_branch == 'main' ||
18+
github.event.workflow_run.event == 'merge_group'
19+
)
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Notify Discord
23+
env:
24+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_GOOSE_STATUS }}
25+
run: |
26+
curl -sS --fail-with-body -H "Content-Type: application/json" \
27+
-d '{
28+
"embeds": [{
29+
"title": "❌ Build Failed",
30+
"description": "**Workflow:** ${{ github.event.workflow_run.name }}\n**Branch:** ${{ github.event.workflow_run.head_branch }}\n**Commit:** ${{ github.event.workflow_run.head_sha }}",
31+
"url": "${{ github.event.workflow_run.html_url }}",
32+
"color": 15158332
33+
}]
34+
}' \
35+
"$DISCORD_WEBHOOK_URL"

.github/workflows/bundle-desktop-linux.yml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,5 @@ jobs:
181181
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
182182
with:
183183
name: Goose-linux-x64-flatpak
184-
path: ui/desktop/out/make/flatpak/**/*.flatpak
185-
if-no-files-found: error
186-
187-
- name: Upload combined Linux packages
188-
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
189-
with:
190-
name: Goose-linux-x64
191-
path: |
192-
ui/desktop/out/make/deb/x64/*.deb
193-
ui/desktop/out/make/rpm/x64/*.rpm
194-
ui/desktop/out/make/flatpak/**/*.flatpak
184+
path: ui/desktop/out/make/flatpak/x86_64/*.flatpak
195185
if-no-files-found: error

0 commit comments

Comments
 (0)