Skip to content

Commit 4ce5a65

Browse files
committed
Merge branch 'main' into lifei/logging-whne-start-error
* main: (29 commits) chore(deps): bump winreg from 0.55.0 to 0.56.0 (#8829) Fix grammar issue (#8669) colorize context window indicator (#8851) Refresh canonical model metadata from models.dev (#8838) fix(ci): prevent flaky smoke test timeouts from failing the build (#8837) updates: release 0.19.0 of the tui/sdk/etc (#8806) add a goose2 signed release flow (#8728) Port provider tests to typescript (#8237) refactor: make ACP server smaller (#8787) Add NVIDIA provider, and improve declarative provider UX (#8798) fix: removed failed provider test for deprecated providers (#8801) fix: only call cleanup when the pr is from same repo (#8799) chore: check stale for draft pr (#8803) fix: use _meta instead of meta in newSession request (#8796) fix: add missing underscore prefix in updateWorkingDir method name (#8743) feat: migrate session metadata storage from frontend overlay to backend (#8769) Add more info to BUILDING_LINUX (#8789) feat(acp): Align to new request patterns of ACP Streamable HTTP/WS transport (#8605) Dedupe and organize skills/sources (#8731) docs: add skills slash command (#8783) ...
2 parents 40cf7ec + ba88d33 commit 4ce5a65

105 files changed

Lines changed: 10661 additions & 4878 deletions

File tree

Some content is hidden

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

.github/workflows/bundle-goose2.yml

Lines changed: 81 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ on:
3838
required: false
3939
default: ""
4040
type: string
41+
windows-signing:
42+
description: "Whether to perform Windows signing via Azure Trusted Signing"
43+
required: false
44+
default: false
45+
type: boolean
4146
cli-run-id:
4247
description: >
4348
Run ID of a prior build-cli.yml workflow run to download the goose
@@ -125,7 +130,7 @@ jobs:
125130
126131
- name: Cache Rust dependencies
127132
if: inputs.cli-run-id == ''
128-
uses: Swatinem/rust-cache@v2
133+
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
129134
with:
130135
key: goose2-macos-arm64
131136

@@ -175,13 +180,11 @@ jobs:
175180
certificate-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
176181

177182
# ── Tauri bundle ──
178-
- name: Check disk space before bundle
179-
run: df -h
180-
181183
- name: Bundle Goose 2 (pnpm tauri build)
182184
env:
185+
APPLE_SIGNING_IDENTITY: ${{ inputs.signing && 'Developer ID Application' || '' }}
183186
APPLE_ID: ${{ inputs.signing && secrets.APPLE_ID || '' }}
184-
APPLE_ID_PASSWORD: ${{ inputs.signing && secrets.APPLE_ID_PASSWORD || '' }}
187+
APPLE_PASSWORD: ${{ inputs.signing && secrets.APPLE_ID_PASSWORD || '' }}
185188
APPLE_TEAM_ID: ${{ inputs.signing && secrets.APPLE_TEAM_ID || '' }}
186189
working-directory: ui/goose2
187190
run: |
@@ -291,7 +294,7 @@ jobs:
291294
292295
- name: Cache Rust dependencies
293296
if: inputs.cli-run-id == ''
294-
uses: Swatinem/rust-cache@v2
297+
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
295298
with:
296299
key: goose2-macos-x86_64
297300

@@ -360,8 +363,9 @@ jobs:
360363
# ── Tauri bundle (cross-compile for Intel) ──
361364
- name: Bundle Goose 2 for Intel
362365
env:
366+
APPLE_SIGNING_IDENTITY: ${{ inputs.signing && 'Developer ID Application' || '' }}
363367
APPLE_ID: ${{ inputs.signing && secrets.APPLE_ID || '' }}
364-
APPLE_ID_PASSWORD: ${{ inputs.signing && secrets.APPLE_ID_PASSWORD || '' }}
368+
APPLE_PASSWORD: ${{ inputs.signing && secrets.APPLE_ID_PASSWORD || '' }}
365369
APPLE_TEAM_ID: ${{ inputs.signing && secrets.APPLE_TEAM_ID || '' }}
366370
working-directory: ui/goose2
367371
run: |
@@ -477,7 +481,7 @@ jobs:
477481
478482
- name: Cache Rust dependencies
479483
if: inputs.cli-run-id == ''
480-
uses: Swatinem/rust-cache@v2
484+
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
481485
with:
482486
key: goose2-linux-x86_64
483487

@@ -564,6 +568,7 @@ jobs:
564568
runs-on: windows-latest
565569
timeout-minutes: 60
566570
permissions:
571+
id-token: write
567572
contents: read
568573
actions: read
569574
steps:
@@ -621,7 +626,7 @@ jobs:
621626
622627
- name: Cache Rust dependencies
623628
if: inputs.cli-run-id == ''
624-
uses: Swatinem/rust-cache@v2
629+
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
625630
with:
626631
key: goose2-windows-x86_64
627632

@@ -697,3 +702,70 @@ jobs:
697702
name: Goose2-windows-x64-msi
698703
path: ui/goose2/src-tauri/target/x86_64-pc-windows-msvc/release/bundle/msi/*.msi
699704
if-no-files-found: warn
705+
706+
sign-windows:
707+
name: "Sign Windows installers"
708+
needs: bundle-windows
709+
if: inputs.windows-signing
710+
runs-on: windows-latest
711+
environment: signing
712+
permissions:
713+
id-token: write
714+
contents: read
715+
actions: read
716+
steps:
717+
- name: Download NSIS installer
718+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
719+
with:
720+
name: Goose2-windows-x64-nsis
721+
path: unsigned/nsis
722+
723+
- name: Download MSI installer
724+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
725+
with:
726+
name: Goose2-windows-x64-msi
727+
path: unsigned/msi
728+
729+
- name: Azure login
730+
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2
731+
with:
732+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
733+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
734+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
735+
736+
- name: Sign Windows installers with Azure Trusted Signing
737+
uses: azure/trusted-signing-action@db7a3a6bd3912025c705162fb7475389f5b69ec6 # v1
738+
with:
739+
endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }}
740+
trusted-signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT_NAME }}
741+
certificate-profile-name: ${{ secrets.AZURE_CERTIFICATE_PROFILE_NAME }}
742+
files-folder: ${{ github.workspace }}/unsigned
743+
files-folder-filter: exe,msi
744+
files-folder-recurse: true
745+
746+
- name: Verify signed installers
747+
shell: pwsh
748+
run: |
749+
$files = Get-ChildItem -Path unsigned -Recurse -Include *.exe,*.msi
750+
foreach ($file in $files) {
751+
Write-Output "Verifying signature: $($file.FullName)"
752+
$sig = Get-AuthenticodeSignature $file.FullName
753+
if ($sig.Status -ne "Valid") {
754+
throw "Signature invalid for $($file.Name): $($sig.Status)"
755+
}
756+
Write-Output "✅ Signature valid: $($file.Name)"
757+
}
758+
759+
- name: Upload signed NSIS installer
760+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
761+
with:
762+
name: Goose2-windows-x64-nsis-signed
763+
path: unsigned/nsis/*.exe
764+
if-no-files-found: error
765+
766+
- name: Upload signed MSI installer
767+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
768+
with:
769+
name: Goose2-windows-x64-msi-signed
770+
path: unsigned/msi/*.msi
771+
if-no-files-found: error

.github/workflows/pr-smoke-test.yml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,13 @@ jobs:
108108
node-version: '22'
109109

110110
- name: Install agentic providers
111-
run: npm install -g @anthropic-ai/claude-code @openai/codex @google/gemini-cli @zed-industries/claude-agent-acp @zed-industries/codex-acp
111+
run: npm install -g @anthropic-ai/claude-code @zed-industries/claude-agent-acp @zed-industries/codex-acp
112112

113-
- name: Run Smoke Tests with Provider Script
113+
- name: Install Node.js Dependencies
114+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
115+
working-directory: ui/desktop
116+
117+
- name: Run Smoke Tests (Normal Mode)
114118
env:
115119
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
116120
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
@@ -127,12 +131,10 @@ jobs:
127131
SKIP_BUILD: 1
128132
SKIP_PROVIDERS: ${{ vars.SKIP_PROVIDERS || '' }}
129133
run: |
130-
# Ensure the HOME directory structure exists
131134
mkdir -p $HOME/.local/share/goose/sessions
132135
mkdir -p $HOME/.config/goose
133-
134-
# Run the provider test script (binary already built and downloaded)
135-
bash scripts/test_providers.sh
136+
source ../../bin/activate-hermit && pnpm run test:integration:providers
137+
working-directory: ui/desktop
136138

137139
- name: Set up Python
138140
uses: actions/setup-python@v5
@@ -188,6 +190,10 @@ jobs:
188190
- name: Make Binary Executable
189191
run: chmod +x target/debug/goose
190192

193+
- name: Install Node.js Dependencies
194+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
195+
working-directory: ui/desktop
196+
191197
- name: Run Provider Tests (Code Execution Mode)
192198
env:
193199
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -205,7 +211,8 @@ jobs:
205211
run: |
206212
mkdir -p $HOME/.local/share/goose/sessions
207213
mkdir -p $HOME/.config/goose
208-
bash scripts/test_providers_code_exec.sh
214+
source ../../bin/activate-hermit && pnpm run test:integration:providers-code-exec
215+
working-directory: ui/desktop
209216

210217
compaction-tests:
211218
name: Compaction Tests
@@ -277,7 +284,8 @@ jobs:
277284
GOOSE_PROVIDER: anthropic
278285
GOOSE_MODEL: claude-sonnet-4-5-20250929
279286
SHELL: /bin/bash
287+
SKIP_BUILD: 1
280288
run: |
281289
echo 'export PATH=/some/fake/path:$PATH' >> $HOME/.bash_profile
282-
source ../../bin/activate-hermit && pnpm run test:integration:debug
290+
source ../../bin/activate-hermit && pnpm run test:integration:goosed
283291
working-directory: ui/desktop

.github/workflows/pr-website-preview.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
cleanup:
5252
runs-on: ubuntu-latest
5353
needs: deploy
54-
if: github.event.action == 'closed'
54+
if: github.event.action == 'closed' && github.event.pull_request.head.repo.full_name == 'aaif-goose/goose'
5555
permissions:
5656
contents: write
5757
steps:

0 commit comments

Comments
 (0)