Skip to content

Commit 93c2b69

Browse files
committed
Merge remote-tracking branch 'origin/main' into wpfleger/socket-support
* origin/main: (72 commits) No Check do Check (#7942) Log 500 errors and also show error for direct download (#7936) fix: retry on authentication failure with credential refresh (#7812) Remove java/.ai-usage-marker directory (#7925) test(acp): add terminal delegation fixtures and fix shell singleton (#7923) fix: bump pctx_code_mode to 0.3.0 for iterator type checking fix (#7892) feat: persist GooseMode per-session via session DB (#7854) feat(otel): propagate session.id to spans and log records (#7490) fix(test): add env_lock to is_openai_reasoning_model tests (#7917) fix(acp): pass session_id when loading extensions so skills are discovered (#7868) updated canonical models (#7920) feat(autovisualiser): Migrate the autovisualiser extension to MCP Apps (#7852) fix: add tool_choice and parallel_tool_calls to chatgpt_codex provider (#7867) fix: tool confirmation handling for multiple requests (#7856) Remove dead OllamaSetup onboarding flow (#7861) fix: resolve tokio::sync::Mutex deadlock in recipe retry path (#7832) Upgrade Electron 40.6.0 → 41.0.0 (#7851) Only show up to 50 lines of source code (#7578) fix: stop writing without error when hitting broken pipe for goose session list (#7858) feat(acp): add session/set_mode handler (#7801) ...
2 parents 322d0b5 + a79cf7e commit 93c2b69

File tree

221 files changed

+53060
-36843
lines changed

Some content is hidden

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

221 files changed

+53060
-36843
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
33

44
# Documentation owned by DevRel
5-
/documentation/ @blackgirlbytes @angiejones
5+
/documentation/ @blackgirlbytes @angiejones @DOsinga
66

.github/copilot-instructions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,25 +60,25 @@
6060
- `just check-openapi-schema` - OpenAPI schema validation
6161

6262
**Desktop app checks:**
63-
- `npm ci` - Fresh dependency install (in `ui/desktop/`)
64-
- `npm run lint:check` - ESLint + Prettier
65-
- `npm run test:run` - Vitest tests
63+
- `pnpm install --frozen-lockfile` - Fresh dependency install (in `ui/desktop/`)
64+
- `pnpm run lint:check` - ESLint + Prettier
65+
- `pnpm run test:run` - Vitest tests
6666

6767
**Setup steps CI performs:**
6868
- Installs system dependencies (libdbus, gnome-keyring, libxcb)
6969
- Activates hermit environment (`source bin/activate-hermit`)
70-
- Caches Cargo and npm dependencies
71-
- Runs `npm ci` before any npm scripts (ensures all packages are installed)
70+
- Caches Cargo and pnpm dependencies
71+
- Runs `pnpm install --frozen-lockfile` before any pnpm scripts (ensures all packages are installed)
7272

73-
**Key insight**: Commands like `npx` check local `node_modules` first, which CI installs via `npm ci`. Don't flag these as broken unless you can explain why CI setup wouldn't handle it.
73+
**Key insight**: Commands like `npx` check local `node_modules` first, which CI installs via `pnpm install --frozen-lockfile`. Don't flag these as broken unless you can explain why CI setup wouldn't handle it.
7474

7575
## Skip These (Low Value)
7676

7777
Do not comment on:
7878
- **Style/formatting** - CI handles this (rustfmt, prettier)
7979
- **Clippy warnings** - CI handles this (clippy)
8080
- **Test failures** - CI handles this (full test suite)
81-
- **Missing dependencies** - CI handles this (npm ci will fail)
81+
- **Missing dependencies** - CI handles this (pnpm install will fail)
8282
- **Minor naming suggestions** - unless truly confusing
8383
- **Suggestions to add comments** - for self-documenting code
8484
- **Refactoring suggestions** - unless there's a clear bug or maintainability issue

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
# Update version in package.json
6161
source ./bin/activate-hermit
6262
cd ui/desktop
63-
npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
63+
pnpm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
6464
6565
- name: Cache Rust dependencies
6666
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
@@ -94,18 +94,18 @@ jobs:
9494
run: |
9595
cp target/x86_64-apple-darwin/release/goosed ui/desktop/src/bin/goosed
9696
97-
- name: Cache npm dependencies
97+
- name: Cache pnpm dependencies
9898
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
9999
with:
100100
path: |
101101
ui/desktop/node_modules
102102
.hermit/node/cache
103-
key: intel-npm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/package-lock.json') }}
103+
key: intel-pnpm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/pnpm-lock.yaml') }}
104104
restore-keys: |
105-
intel-npm-cache-v1-${{ runner.os }}-
106-
105+
intel-pnpm-cache-v1-${{ runner.os }}-
106+
107107
- name: Install dependencies
108-
run: source ../../bin/activate-hermit && npm ci
108+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
109109
working-directory: ui/desktop
110110

111111
# Configure Electron builder for Intel architecture
@@ -125,7 +125,7 @@ jobs:
125125
attempt=0
126126
max_attempts=2
127127
until [ $attempt -ge $max_attempts ]; do
128-
npm run bundle:intel && break
128+
pnpm run bundle:intel && break
129129
attempt=$((attempt + 1))
130130
echo "Attempt $attempt failed. Retrying..."
131131
sleep 5

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ jobs:
3737
rm -f Cargo.toml.bak
3838
3939
# Update version in package.json
40+
source ./bin/activate-hermit
4041
cd ui/desktop
41-
npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
42+
pnpm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
4243
4344
- name: Debug workflow info
4445
env:
@@ -120,21 +121,21 @@ jobs:
120121
chmod +x ui/desktop/src/bin/goosed
121122
ls -la ui/desktop/src/bin/
122123
123-
- name: Cache npm dependencies
124+
- name: Cache pnpm dependencies
124125
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
125126
with:
126127
path: |
127128
ui/desktop/node_modules
128129
.hermit/node/cache
129-
key: linux-npm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/package-lock.json') }}
130+
key: linux-pnpm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/pnpm-lock.yaml') }}
130131
restore-keys: |
131-
linux-npm-cache-v1-${{ runner.os }}-
132+
linux-pnpm-cache-v1-${{ runner.os }}-
132133
133-
- name: Install npm dependencies
134+
- name: Install pnpm dependencies
134135
run: |
135136
source ./bin/activate-hermit
136137
cd ui/desktop
137-
npm ci
138+
pnpm install --frozen-lockfile
138139
# Verify installation
139140
ls -la node_modules/.bin/ | head -5
140141
@@ -145,7 +146,7 @@ jobs:
145146
echo "Building Linux packages (.deb, .rpm, and .flatpak)..."
146147
147148
# Build all configured packages
148-
npm run make -- --platform=linux --arch=x64
149+
pnpm run make -- --platform=linux --arch=x64
149150
150151
echo "Build completed. Checking output..."
151152
ls -la out/

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,19 @@ jobs:
5555
with:
5656
node-version: 24.10.0
5757

58+
- name: Install pnpm
59+
run: npm install -g pnpm@10.30.3
60+
5861
- name: Cache node_modules
5962
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
6063
with:
6164
path: |
6265
node_modules
6366
ui/desktop/node_modules
6467
.hermit/node/cache
65-
key: windows-npm-cache-v1-${{ runner.os }}-node24-${{ hashFiles('**/package-lock.json') }}
68+
key: windows-pnpm-cache-v1-${{ runner.os }}-node24-${{ hashFiles('**/pnpm-lock.yaml') }}
6669
restore-keys: |
67-
windows-npm-cache-v1-${{ runner.os }}-node24-
70+
windows-pnpm-cache-v1-${{ runner.os }}-node24-
6871
6972
- name: Cache Rust dependencies
7073
uses: Swatinem/rust-cache@v2
@@ -130,17 +133,17 @@ jobs:
130133
git config --global url."https://github.com/".insteadOf "git@github.com:"
131134
git config --global url."https://github.com/".insteadOf "git+ssh://git@github.com/"
132135
133-
- name: Build desktop UI with npm
136+
- name: Build desktop UI with pnpm
134137
shell: bash
135138
env:
136139
ELECTRON_PLATFORM: win32
137140
run: |
138141
cd ui/desktop
139142
140-
npm ci
143+
pnpm install --frozen-lockfile
141144
node scripts/build-main.js
142145
node scripts/prepare-platform-binaries.js
143-
npm run make -- --platform=win32 --arch=x64
146+
pnpm run make -- --platform=win32 --arch=x64
144147
145148
- name: Copy exe to final out folder and prepare flat distribution
146149
shell: bash

.github/workflows/bundle-desktop.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ jobs:
105105
source ./bin/activate-hermit
106106
# Update version in package.json
107107
cd ui/desktop
108-
npm version "${VERSION}" --no-git-tag-version --allow-same-version
108+
pnpm version "${VERSION}" --no-git-tag-version --allow-same-version
109109
110110
- name: Cache Rust dependencies
111111
uses: Swatinem/rust-cache@v2
@@ -131,18 +131,18 @@ jobs:
131131
run: |
132132
cp target/release/goosed ui/desktop/src/bin/goosed
133133
134-
- name: Cache npm dependencies
134+
- name: Cache pnpm dependencies
135135
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
136136
with:
137137
path: |
138138
ui/desktop/node_modules
139139
.hermit/node/cache
140-
key: macos-npm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/package-lock.json') }}
140+
key: macos-pnpm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/pnpm-lock.yaml') }}
141141
restore-keys: |
142-
macos-npm-cache-v1-${{ runner.os }}-
142+
macos-pnpm-cache-v1-${{ runner.os }}-
143143
144144
- name: Install dependencies
145-
run: source ../../bin/activate-hermit && npm ci
145+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
146146
working-directory: ui/desktop
147147

148148
# Check disk space before bundling
@@ -155,7 +155,7 @@ jobs:
155155
attempt=0
156156
max_attempts=2
157157
until [ $attempt -ge $max_attempts ]; do
158-
npm run bundle:default && break
158+
pnpm run bundle:default && break
159159
attempt=$((attempt + 1))
160160
echo "Attempt $attempt failed. Retrying..."
161161
sleep 5
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: "Unused Dependencies"
2+
on:
3+
push:
4+
paths:
5+
- '.github/workflows/cargo-machete.yml'
6+
- '**/Cargo.toml'
7+
- '**/Cargo.lock'
8+
- '**/*.rs'
9+
pull_request:
10+
paths:
11+
- '**/Cargo.toml'
12+
- '**/Cargo.lock'
13+
- '**/*.rs'
14+
workflow_dispatch:
15+
16+
jobs:
17+
machete:
18+
runs-on: ubuntu-latest
19+
if: github.repository == 'block/goose'
20+
permissions:
21+
contents: read
22+
steps:
23+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
24+
- uses: bnjbvr/cargo-machete@7959c845782fed02ee69303126d4a12d64f1db18 # v0.9.1

.github/workflows/ci.yml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ jobs:
120120
uses: Swatinem/rust-cache@v2
121121

122122
- name: Install Node.js Dependencies for OpenAPI Check
123-
run: source ../../bin/activate-hermit && npm ci
123+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
124124
working-directory: ui/desktop
125125

126126
- name: Check OpenAPI Schema is Up-to-Date
@@ -141,28 +141,24 @@ jobs:
141141
# Temporarily disabled due to GitHub Actions bug on macOS runners
142142
# https://github.com/actions/runner-images/issues/13341
143143
# https://github.com/actions/runner/issues/4134
144-
# - name: Cache npm dependencies
144+
# - name: Cache pnpm dependencies
145145
# uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
146146
# with:
147147
# path: |
148148
# ui/desktop/node_modules
149149
# .hermit/node/cache
150-
# key: ci-npm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/package-lock.json') }}
150+
# key: ci-pnpm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/pnpm-lock.yaml') }}
151151
# restore-keys: |
152-
# ci-npm-cache-v1-${{ runner.os }}-
153-
154-
- name: Check lockfile has cross-platform entries
155-
run: ./scripts/check-lockfile-platforms.sh
156-
working-directory: ui/desktop
152+
# ci-pnpm-cache-v1-${{ runner.os }}-
157153

158154
- name: Install Dependencies
159-
run: source ../../bin/activate-hermit && npm ci
155+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
160156
working-directory: ui/desktop
161157

162158
- name: Run Lint
163-
run: source ../../bin/activate-hermit && npm run lint:check
159+
run: source ../../bin/activate-hermit && pnpm run lint:check
164160
working-directory: ui/desktop
165161

166162
- name: Run Tests
167-
run: source ../../bin/activate-hermit && npm run test:run
163+
run: source ../../bin/activate-hermit && pnpm run test:run
168164
working-directory: ui/desktop

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ 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
111+
run: npm install -g @anthropic-ai/claude-code @openai/codex @google/gemini-cli @zed-industries/claude-agent-acp @zed-industries/codex-acp
112112

113113
- name: Run Smoke Tests with Provider Script
114114
env:
@@ -267,7 +267,7 @@ jobs:
267267
run: chmod +x target/debug/goosed
268268

269269
- name: Install Node.js Dependencies
270-
run: source ../../bin/activate-hermit && npm ci
270+
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
271271
working-directory: ui/desktop
272272

273273
- name: Run Integration Tests
@@ -279,5 +279,5 @@ jobs:
279279
SHELL: /bin/bash
280280
run: |
281281
echo 'export PATH=/some/fake/path:$PATH' >> $HOME/.bash_profile
282-
source ../../bin/activate-hermit && npm run test:integration:debug
282+
source ../../bin/activate-hermit && pnpm run test:integration:debug
283283
working-directory: ui/desktop

.husky/pre-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Only auto-format desktop TS code if relevant files are modified
22
if git diff --cached --name-only | grep -q "^ui/desktop/"; then
33
if [ -d "ui/desktop" ]; then
4-
cd ui/desktop && npx lint-staged
4+
cd ui/desktop && pnpm exec lint-staged
55
else
66
echo "Warning: ui/desktop directory does not exist, skipping lint-staged"
77
fi

0 commit comments

Comments
 (0)