Skip to content

Commit 35b1bcf

Browse files
committed
Merge remote-tracking branch 'myk1yt/feat/cache-ttl-knob' into feat/bedrock-ttl-gate
2 parents 9f1f730 + 5891cdc commit 35b1bcf

117 files changed

Lines changed: 1748 additions & 532 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/actions/setup-node-pnpm/action.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ runs:
2424
using: "composite"
2525
steps:
2626
- name: Install pnpm
27-
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
27+
uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
2828
with:
2929
version: ${{ inputs.pnpm-version }}
3030
- name: Get pnpm store directory
@@ -39,7 +39,7 @@ runs:
3939
restore-keys: |
4040
${{ runner.os }}-pnpm-store-
4141
- name: Setup Node.js
42-
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
42+
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
4343
with:
4444
node-version: ${{ inputs.node-version }}
4545
- name: Install dependencies

‎.github/pull_request_template.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Write the steps that test your changes. This helps reviewers check your work.
4040
- [ ] **Self-Review**: I reviewed my own code with care.
4141
- [ ] **Writing Style**: The PR title and description use Simplified Technical English (ASD-STE100): short sentences, plain words, active voice, one idea per sentence, no contractions.
4242
- [ ] **Testing**: New and/or updated tests have been added to cover my changes (if applicable).
43+
- [ ] **Test Helpers** (test changes only): Shared test helpers (`src/test-utils/`, `@/utils/test-utils`) are used only for mechanical duplication; test intent and scenario-specific mocks remain visible.
4344
- [ ] **Visual Snapshot** (UI changes only): If a user would notice this change at a glance (layout, theme tokens, brand elements, empty/error states), I added or updated a `*.visual.tsx` snapshot in `webview-ui/`. See `webview-ui/AGENTS.md` → "When a UI change needs a snapshot".
4445
- [ ] **Documentation Impact**: I checked if my changes need documentation updates (see "Documentation Updates" section below).
4546
- [ ] **Contribution Guidelines**: I read and agree to the [Contributor Guidelines](/CONTRIBUTING.md).

‎.github/workflows/cli-release.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
rm -rf "$VERIFY_DIR"
199199
200200
- name: Upload artifact
201-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
201+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
202202
with:
203203
name: cli-${{ matrix.platform }}
204204
path: |
@@ -230,7 +230,7 @@ jobs:
230230
echo "tag=cli-v$VERSION" >> $GITHUB_OUTPUT
231231
232232
- name: Download all artifacts
233-
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
233+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
234234
with:
235235
path: artifacts
236236

@@ -376,7 +376,7 @@ jobs:
376376

377377
steps:
378378
- name: Download all artifacts
379-
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
379+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
380380
with:
381381
path: artifacts
382382

‎.github/workflows/code-qa.yml‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ jobs:
133133
- name: Package extension
134134
run: pnpm --filter ./src vsix
135135
- name: Upload test VSIX
136-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
136+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
137137
with:
138138
name: zoo-code-vsix-pr-${{ github.event.pull_request.number }}
139139
path: bin/*.vsix
@@ -246,7 +246,7 @@ jobs:
246246
# See https://docs.codecov.com/docs/flags
247247
- name: Upload non-core coverage to Codecov
248248
if: matrix.collect-coverage
249-
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
249+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
250250
with:
251251
files: >-
252252
src/coverage/merged/lcov.info,
@@ -258,31 +258,31 @@ jobs:
258258
token: ${{ secrets.CODECOV_TOKEN }}
259259
- name: Upload webview JSDOM coverage to Codecov
260260
if: matrix.collect-coverage
261-
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
261+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
262262
with:
263263
files: webview-ui/coverage/lcov.info
264264
disable_search: true
265265
flags: webview-ui
266266
token: ${{ secrets.CODECOV_TOKEN }}
267267
- name: Upload core unit coverage to Codecov
268268
if: matrix.collect-coverage
269-
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
269+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
270270
with:
271271
files: packages/core/coverage/unit/lcov.info
272272
disable_search: true
273273
flags: ${{ matrix.codecov-flag }},core-unit
274274
token: ${{ secrets.CODECOV_TOKEN }}
275275
- name: Upload core integration coverage to Codecov
276276
if: matrix.collect-coverage
277-
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
277+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
278278
with:
279279
files: packages/core/coverage/integration/lcov.info
280280
disable_search: true
281281
flags: ${{ matrix.codecov-flag }},core-integration
282282
token: ${{ secrets.CODECOV_TOKEN }}
283283
- name: Upload coverage reports to GitHub
284284
if: matrix.collect-coverage
285-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
285+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
286286
with:
287287
name: coverage-reports-${{ matrix.name }}
288288
path: |

‎.github/workflows/codeql.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252

5353
# Initializes the CodeQL tools for scanning.
5454
- name: Initialize CodeQL
55-
uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
55+
uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
5656
with:
5757
languages: ${{ matrix.language }}
5858
build-mode: ${{ matrix.build-mode }}
@@ -80,6 +80,6 @@ jobs:
8080
exit 1
8181
8282
- name: Perform CodeQL Analysis
83-
uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
83+
uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
8484
with:
8585
category: "/language:${{matrix.language}}"

‎.github/workflows/mutation-testing.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
id: mutation_report
5959
if: always() && github.event_name == 'pull_request'
6060
continue-on-error: true
61-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
61+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
6262
with:
6363
name: changed-code-mutation-report
6464
path: reports/mutation/

‎.github/workflows/solheim-provider-smoke.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
# is missing, so metadata and video are uploaded separately.
6868
- name: Upload provider smoke verdict and trace
6969
if: ${{ !cancelled() && (steps.provider.outcome == 'success' || steps.provider.outcome == 'failure') }}
70-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
70+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
7171
with:
7272
name: solheim-provider-smoke-${{ github.sha }}
7373
path: |
@@ -80,7 +80,7 @@ jobs:
8080
# file behind, so a failed upload here reports the missing recording.
8181
- name: Upload provider smoke recording
8282
if: ${{ !cancelled() && (steps.provider.outcome == 'success' || steps.provider.outcome == 'failure') }}
83-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
83+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
8484
with:
8585
name: solheim-provider-smoke-recording-${{ github.sha }}
8686
path: ${{ runner.temp }}/solheim-provider-smoke/smoke.mp4

‎.github/workflows/visual-regression.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
runs-on: ubuntu-latest
2424
timeout-minutes: 10
2525
container:
26-
image: mcr.microsoft.com/playwright:v1.62.1-noble@sha256:dcc5531e97840b9b5e794f2814476b21571c5124a3fca2267d73041f56e7580e
26+
image: mcr.microsoft.com/playwright:v1.64.1-noble@sha256:47b510dd9230bf0b9bfc9b20102241e577ea7a99334ab4c3ca19f19770e9b8ea
2727
options: --ipc=host
2828
steps:
2929
- name: Checkout code
@@ -38,15 +38,15 @@ jobs:
3838
run: pnpm --filter @roo-code/vscode-webview test:visual
3939
- name: Upload visual test coverage to Codecov
4040
if: always()
41-
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
41+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
4242
with:
4343
files: webview-ui/coverage-ct/lcov.info
4444
disable_search: true
4545
flags: webview-ui-ct
4646
token: ${{ secrets.CODECOV_TOKEN }}
4747
- name: Upload visual test artifacts
4848
if: failure()
49-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
49+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
5050
with:
5151
name: webview-visual-regression
5252
path: |
@@ -87,7 +87,7 @@ jobs:
8787
runs-on: ubuntu-latest
8888
timeout-minutes: 20
8989
container:
90-
image: mcr.microsoft.com/playwright:v1.62.1-noble@sha256:dcc5531e97840b9b5e794f2814476b21571c5124a3fca2267d73041f56e7580e
90+
image: mcr.microsoft.com/playwright:v1.64.1-noble@sha256:47b510dd9230bf0b9bfc9b20102241e577ea7a99334ab4c3ca19f19770e9b8ea
9191
options: --ipc=host
9292
env:
9393
LANG: en_US.UTF-8
@@ -116,7 +116,7 @@ jobs:
116116
run: xvfb-run -a pnpm --filter @roo-code/vscode-e2e test:visual:electron
117117
- name: Upload Extension Host visual artifacts
118118
if: failure()
119-
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
119+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
120120
with:
121121
name: extension-host-visual-regression
122122
path: |

‎CHANGELOG.md‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,62 @@
11
# Zoo Code Changelog
22

3+
## [3.94.0]
4+
5+
- ✨ **Broader model and provider support:** Use Claude Haiku 5.5 through Anthropic, send images to compatible VS Code LM models, tune temperature for OpenCode Go Responses models, and cancel requests cleanly across more providers.
6+
- 🔐 **More flexible MCP OAuth:** Configure static OAuth client settings, use custom callback paths, discover authentication details from `WWW-Authenticate`, and see callback failures before retrying.
7+
- 🧭 **Smoother chats and long sessions:** Rename tasks in history, drag files into chat without holding Shift, reduce memory retained during long sessions, and keep subtask links and replaced webviews stable.
8+
9+
### Broader Model and Provider Support
10+
11+
- Add Claude Haiku 5.5 to the Anthropic provider (#2208 by @app/zoomote2, PR #2212 by @app/zoomote2)
12+
- Add runtime image input support to VS Code language models (PR #2159 by @simurg79)
13+
- Add image input conversion and shim data parts for VS Code language models (PR #2196 by @simurg79)
14+
- Update VS Code language model metadata and regression tests (PR #2255 by @simurg79)
15+
- Add opt-in temperature support for OpenCode Go Responses models (#2055 by @AntzCode, PR #2160 by @AntzCode)
16+
- Add abort-signal support for Anthropic, Anthropic Vertex, xAI, and MiniMax (PR #1293 by @easonLiangWorldedtech)
17+
- Add abort-signal support for VS Code language models (PR #1300 by @easonLiangWorldedtech)
18+
- Add abort-signal support for Gemini, Mistral, and LiteLLM (PR #1303 by @easonLiangWorldedtech)
19+
- Add ensureModelFetched to the six catalog providers (PR #2191 by @p12tic)
20+
- Resolve the CLI model ID through provider definitions (PR #2192 by @p12tic)
21+
- Count compatible cache reads for OpenAI (#1591 by @GeenccMustafa, PR #1662 by @PierrunoYT)
22+
23+
### More Flexible MCP OAuth
24+
25+
- Add static OAuth client settings for MCP servers (#2096 by @SoccerField24x7, PR #2129 by @SoccerField24x7)
26+
- Support custom MCP OAuth callback paths and WWW-Authenticate discovery (#2218 by @sdbrother0, PR #2219 by @sdbrother0)
27+
- Report MCP OAuth callback failures before retrying (#2187 by @SoccerField24x7, PR #2238 by @SoccerField24x7)
28+
29+
### Smoother Chats and Long Sessions
30+
31+
- Rename tasks in history (#2112 by @designPrj, PR #2122 by @designPrj)
32+
- Allow dragging files into the chat input without holding Shift (#2139 by @juneleung, PR #2184 by @app/zoomote2)
33+
- Reduce chat memory retained during long sessions (PR #2217 by @app/zoomote2)
34+
- Preserve subtask link identities (PR #2228 by @simurg79)
35+
- Dispose view listeners and ignore stale views when the webview is replaced (#2205 by @edelauna, PR #2213 by @app/zoomote2)
36+
- Replace dispatch lock booleans with DispatchState (#374 by @edelauna, PR #2198 by @edelauna)
37+
- Treat apiConfiguration as always defined in the webview (PR #2234 by @p12tic)
38+
39+
### Testing and Repository Automation
40+
41+
- Use the real VS Code toolkit in Playwright visual baselines (#2105 by @edelauna, PR #2163 by @app/zoomote2)
42+
- Fix five webview visual tests that failed on every pull request (#2206 by @edelauna, PR #2209 by @app/zoomote2)
43+
- Link review gate Details to the workflow run (PR #2204 by @app/zoomote2)
44+
- Move the release kickoff to 12pm EST (PR #2190 by @app/zoomote2)
45+
46+
### Dependencies and Maintenance
47+
48+
- Update build, lint, and test tooling (PR #2101 by @app/renovate)
49+
- Update AI SDK core and providers (PR #2103 by @app/renovate)
50+
- Update @modelcontextprotocol/sdk to v1.32.0 [security] (PR #2131 by @app/renovate)
51+
- Update @next/eslint-plugin-next to v15.5.28 (PR #2132 by @app/renovate)
52+
- Update @types/node (PR #2135 by @app/renovate)
53+
- Update esbuild-wasm to v0.28.2 (PR #2137 by @app/renovate)
54+
- Update undici to v6.29.1 [security] (PR #2169 by @app/renovate)
55+
56+
### Housekeeping
57+
58+
- Merge the **previous v3.92.0 release preparation** after its publication; this is prior-release housekeeping, not a v3.94.0 feature (PR #2166 by @taltas)
59+
360
## [3.92.0]
461

562
- ✨ **Faster model choice and stronger model support:** Switch models from the chat composer. Use Claude Haiku 5.5 on Amazon Bedrock, get more accurate Kimi K3 capabilities on OpenRouter, and use corrected Gemini 4 Argon limits on Vercel AI Gateway.

‎README.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ Zoo Code builds on the foundation created by Roo Code and continues to expand it
4646
- **More dependable terminal and editing workflows** — fixes for premature terminal completion, task-state races, context management, diff editing, and provider-specific tool use.
4747
- **More control over your workspace** — rules management, per-mode MCP restrictions, multi-root path controls, model reasoning options, and completion change review actions.
4848

49-
## What's New in v3.92.0
49+
## What's New in v3.94.0
5050

51-
- ✨ **Faster model choice and stronger model support:** Switch models from the chat composer. Use Claude Haiku 5.5 on Amazon Bedrock, get more accurate Kimi K3 capabilities on OpenRouter, and use corrected Gemini 4 Argon limits on Vercel AI Gateway.
52-
- 🧭 **More reliable terminal, editing, chat, and remote workflows:** Collapse command output by default when you choose, get clearer editing failures, keep reasoning and API rows visible, and avoid startup and proxy issues in remote workspaces.
53-
- 🔌 **Expanded MCP marketplace:** Connect Zoo Code to AnySearch, Mailtea, and Tradehand through the MCP marketplace.
51+
- ✨ **Broader model and provider support:** Use Claude Haiku 5.5 through Anthropic, send images to compatible VS Code LM models, tune temperature for OpenCode Go Responses models, and cancel requests cleanly across more providers.
52+
- 🔐 **More flexible MCP OAuth:** Configure static OAuth client settings, use custom callback paths, discover authentication details from `WWW-Authenticate`, and see callback failures before retrying.
53+
- 🧭 **Smoother chats and long sessions:** Rename tasks in history, drag files into chat without holding Shift, reduce memory retained during long sessions, and keep subtask links and replaced webviews stable.
5454

5555
<details>
5656
<summary>🌐 Available languages</summary>

0 commit comments

Comments
 (0)