Skip to content

Commit d96cdff

Browse files
committed
Merge remote-tracking branch 'origin/main' into wpfleger/tool-response-issue
* origin/main: Fix max turns configuration (#7612) feat: add base path field to custom provider configuration (#7614) fix: compare extension configs before skipping add_extension (#7650) chore(release): release version 1.27.0 (minor) (#7611) feat: better private channel detection, bot version debugging (#7680) chore(deps): bump svgo from 3.3.2 to 3.3.3 in /documentation (#7667) fix: only add viewable channels to bot context (#7678) chore: added a recipe to help identify high risk change prs for testing (#7651) fix: make sure platform binary exists (#7676)
2 parents 4440901 + abadb87 commit d96cdff

28 files changed

Lines changed: 2686 additions & 747 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ jobs:
134134
run: |
135135
source ./bin/activate-hermit
136136
cd ui/desktop
137-
npm install
137+
npm ci
138138
# Verify installation
139139
ls -la node_modules/.bin/ | head -5
140140

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ jobs:
137137
run: |
138138
cd ui/desktop
139139
140-
npm install
140+
npm ci
141141
node scripts/build-main.js
142142
node scripts/prepare-platform-binaries.js
143143
npm run make -- --platform=win32 --arch=x64

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ jobs:
151151
# restore-keys: |
152152
# ci-npm-cache-v1-${{ runner.os }}-
153153

154+
- name: Check lockfile has cross-platform entries
155+
run: ./scripts/check-lockfile-platforms.sh
156+
working-directory: ui/desktop
157+
154158
- name: Install Dependencies
155159
run: source ../../bin/activate-hermit && npm ci
156160
working-directory: ui/desktop

Cargo.lock

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ resolver = "2"
44

55
[workspace.package]
66
edition = "2021"
7-
version = "1.26.0"
7+
version = "1.27.0"
88
authors = ["Block <ai-oss-tools@block.xyz>"]
99
license = "Apache-2.0"
1010
repository = "https://github.com/block/goose"

Justfile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ copy-binary-windows:
125125
run-ui:
126126
@just release-binary
127127
@echo "Running UI..."
128-
cd ui/desktop && npm install && npm run start-gui
128+
cd ui/desktop && npm ci && npm run start-gui
129129

130130
run-ui-playwright:
131131
#!/usr/bin/env sh
@@ -138,14 +138,14 @@ run-ui-playwright:
138138

139139
run-ui-only:
140140
@echo "Running UI..."
141-
cd ui/desktop && npm install && npm run start-gui
141+
cd ui/desktop && npm ci && npm run start-gui
142142

143143
debug-ui *alpha:
144144
@echo "🚀 Starting goose frontend in external backend mode{{ if alpha == "alpha" { " with alpha features enabled" } else { "" } }}"
145145
cd ui/desktop && \
146146
export GOOSE_EXTERNAL_BACKEND=true && \
147147
{{ if alpha == "alpha" { "export ALPHA=true &&" } else { "" } }} \
148-
npm install && \
148+
npm ci && \
149149
npm run {{ if alpha == "alpha" { "start-alpha-gui" } else { "start-gui" } }}
150150

151151
# Run UI with main process debugging enabled
@@ -159,15 +159,15 @@ debug-ui-main-process:
159159
@echo "🔍 Starting goose UI with main process debugging enabled"
160160
@just release-binary
161161
cd ui/desktop && \
162-
npm install && \
162+
npm ci && \
163163
npm run start-gui-debug
164164

165165
# Package the desktop app locally for testing (macOS)
166166
# Applies ad-hoc code signing with entitlements (needed for mic access, etc.)
167167
package-ui:
168168
@just release-binary
169169
@echo "Packaging desktop app..."
170-
cd ui/desktop && npm install && npm run package
170+
cd ui/desktop && npm ci && npm run package
171171
@echo "Signing with entitlements..."
172172
codesign --force --deep --sign - --entitlements ui/desktop/entitlements.plist ui/desktop/out/Goose-darwin-arm64/Goose.app
173173
@echo "Done! Launch with: open ui/desktop/out/Goose-darwin-arm64/Goose.app"
@@ -176,14 +176,14 @@ package-ui:
176176
run-ui-alpha:
177177
@just release-binary
178178
@echo "Running UI with alpha features..."
179-
cd ui/desktop && npm install && ALPHA=true npm run start-alpha-gui
179+
cd ui/desktop && npm ci && ALPHA=true npm run start-alpha-gui
180180

181181
# Run UI with latest (Windows version)
182182
run-ui-windows:
183183
@just release-windows
184184
@powershell.exe -Command "Write-Host 'Copying Windows binary...'"
185185
@just copy-binary-windows
186-
@powershell.exe -Command "Write-Host 'Running UI...'; Set-Location ui/desktop; npm install; npm run start-gui"
186+
@powershell.exe -Command "Write-Host 'Running UI...'; Set-Location ui/desktop; npm ci; npm run start-gui"
187187

188188
# Run Docusaurus server for documentation
189189
run-docs:
@@ -386,7 +386,7 @@ win-bld-rls-all:
386386

387387
### Install npm stuff
388388
win-app-deps:
389-
cd ui{{s}}desktop ; npm install
389+
cd ui{{s}}desktop ; npm ci
390390

391391
### Windows copy {release|debug} files to ui\desktop\src\bin
392392
### s = os dependent file separator

RELEASE_CHECKLIST.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,25 @@
22

33
## Version: {{VERSION}}
44

5+
### Identify the high risk changes in this Release
6+
7+
```
8+
./workflow_recipes/release_risk_check/run.sh {{VERSION}}
9+
```
10+
11+
It will generate an analysis report in `/tmp/release_report_final.md` and perform testing is necessary for high risk pr changes.
12+
13+
14+
## Regression Testing
15+
516
Make a copy of this document for each version and check off as steps are verified.
617

7-
## Provider Testing
18+
### Provider Testing
819

920
- [ ] Run `./scripts/test_providers.sh` locally from the release branch and verify all providers/models work
1021
- [ ] Launch goose, click reset providers, choose databricks and a model
1122

12-
## Starting Conversations
23+
### Starting Conversations
1324

1425
Test various ways to start a conversation:
1526

@@ -26,9 +37,9 @@ Test various ways to start a conversation:
2637
- [ ] Open a new window, click chat in left side for new chat
2738
- [ ] Click "create a tamagotchi game" in popular chat topics to test developer extension
2839

29-
## Recipes
40+
### Recipes
3041

31-
### Create Recipe from Session
42+
#### Create Recipe from Session
3243

3344
- [ ] Start a simple chat conversation like "hi"
3445
- [ ] Click "create a recipe from this session" in the bottom chat bar
@@ -37,7 +48,7 @@ Test various ways to start a conversation:
3748
- [ ] Can launch create and run recipe - launches in a new window showing as a recipe agent chat with parameters filled in and interact with it
3849
- [ ] Recipe should be saved in recipe library
3950

40-
### Use Existing Recipe
51+
#### Use Existing Recipe
4152

4253
- [ ] Pick trip planner from recipe hub (go/gooserecipes)
4354
- [ ] See the warning whether to trust this recipe (only on fresh install)
@@ -46,7 +57,7 @@ Test various ways to start a conversation:
4657
- [ ] Check results are reasonable
4758
- [ ] Ask how many days the trip is for - should say 14
4859

49-
### Recipe Management
60+
#### Recipe Management
5061

5162
- [ ] Go to recipe manager and enter a new recipe to generate a joke
5263
- [ ] See that it works if you run it
@@ -56,7 +67,7 @@ Test various ways to start a conversation:
5667
- [ ] Delete the recipe from the recipe manager
5768
- [ ] Verify recipe is actually deleted
5869

59-
### Recipe from File
70+
#### Recipe from File
6071

6172
- [ ] Create a file `~/.config/goose/recipes/test-recipe.yaml` with the following content:
6273

@@ -79,40 +90,40 @@ recipe:
7990
- [ ] Go to hub and enter "what is the value of test_param"
8091
- [ ] See a new chat that says it has no idea (recipe is no longer active)
8192
82-
## Extensions
93+
### Extensions
8394
84-
### Manual Extension Addition
95+
#### Manual Extension Addition
8596
8697
- [ ] Can manually add an extension using random quotes from project
8798
- [ ] Add new custom stdio extension with the following command and save:
8899
- [ ] `node /ABSOLUTE/PATH/TO/goose/ui/desktop/tests/e2e/basic-mcp.ts` (use your actual project path)
89100
- [ ] Should add and can chat to ask for a random quote
90101

91-
### Playwright Extension
102+
#### Playwright Extension
92103

93104
- [ ] Install the playwright extension from the extensions hub
94105
- [ ] Tell it to open a browser and search on Google for cats
95106
- [ ] Verify that the browser opens and navigates
96107

97-
### Extension with Environment Variables
108+
#### Extension with Environment Variables
98109

99110
- [ ] Install an extension from deeplink that needs env variables:
100111
- [ ] Use: `goose://extension?cmd=npx&arg=-y&arg=%40upstash%2Fcontext7-mcp&id=context7&name=Context7&description=Use%20up-to-date%20code%20and%20docs&env=TEST_ACCESS_TOKEN`
101112
- [ ] Extension page should load with env variables modal showing
102113
- [ ] Allow form input and saving extension
103114

104-
## Speech-to-Text (Local Model)
115+
### Speech-to-Text (Local Model)
105116

106117
- [ ] Go to Settings > Chat > Voice dictation provider and select the small model
107118
- [ ] Run a quick test that speech-to-text is working (click the mic button, speak, verify transcription)
108119
- [ ] Also try OpenAI using your OpenAI key
109120

110-
## Settings
121+
### Settings
111122

112123
- [ ] Settings page loads and all tabs load
113124
- [ ] Can change dark mode setting
114125

115-
## Follow-up Issues
126+
### Follow-up Issues
116127

117128
Link any GitHub issues filed during testing:
118129

crates/goose-cli/src/commands/configure.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2015,6 +2015,17 @@ fn add_provider() -> anyhow::Result<()> {
20152015
.initial_value(true)
20162016
.interact()?;
20172017

2018+
let base_path_input: String = cliclack::input("API base path (optional, press Enter to skip):")
2019+
.placeholder("e.g., v1/chat/completions or project_id/v1")
2020+
.required(false)
2021+
.interact()?;
2022+
2023+
let base_path = if base_path_input.trim().is_empty() {
2024+
None
2025+
} else {
2026+
Some(base_path_input)
2027+
};
2028+
20182029
let headers = collect_custom_headers()?;
20192030

20202031
create_custom_provider(CreateCustomProviderParams {
@@ -2027,7 +2038,7 @@ fn add_provider() -> anyhow::Result<()> {
20272038
headers,
20282039
requires_auth,
20292040
catalog_provider_id: None,
2030-
base_path: None,
2041+
base_path,
20312042
})?;
20322043

20332044
cliclack::outro(format!("Custom provider added: {}", display_name))?;

crates/goose/src/agents/agent.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,11 @@ impl Agent {
11181118
let reply_stream_span = tracing::info_span!(target: "goose::agents::agent", "reply_stream");
11191119
let _stream_guard = reply_stream_span.enter();
11201120
let mut turns_taken = 0u32;
1121-
let max_turns = session_config.max_turns.unwrap_or(DEFAULT_MAX_TURNS);
1121+
let max_turns = session_config.max_turns.unwrap_or_else(|| {
1122+
Config::global()
1123+
.get_param::<u32>("GOOSE_MAX_TURNS")
1124+
.unwrap_or(DEFAULT_MAX_TURNS)
1125+
});
11221126
let mut compaction_attempts = 0;
11231127
let mut last_assistant_text = String::new();
11241128

0 commit comments

Comments
 (0)