Skip to content

Release v3.96.0 - #2341

Merged
JamesRobert20 merged 1 commit into
mainfrom
release/v3.96.0
Nov 7, 2026
Merged

JamesRobert20 merged 1 commit into
mainfrom
release/v3.96.0

Conversation

@zoomote2

@zoomote2 zoomote2 Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @taltas. Follow up by mentioning @roomote, in the web UI, or in Discord.

Related GitHub Issue

Release preparation for v3.96.0. This maintainer release PR does not close a feature or bug issue.

Description

Release preparation for v3.96.0. This PR includes the final version bump, changelog updates, Marketplace README updates, and announcement changes.

  • Bump the extension to v3.96.0 in the stable even-minor lane.
  • Add all 44 release-window PRs to CHANGELOG.md with contributor attribution and linked issue reporters, and sync src/CHANGELOG.md.
  • Update the Marketplace README "What's New" section, announcement ID, and English announcement copy.
  • Translate the "What's New" section and announcement highlights into all 17 supported non-English locales.

This prepares the complete release state for human review. The release owner retains approval, tagging, the marketplace-production deployment gate, and merge-queue steps.

Test Procedure

  • node scripts/find-missing-translations.js — passed for backend, frontend, and package localization.
  • pnpm exec prettier --check on every changed file — passed.
  • pnpm check-types — passed all 11 tasks.
  • pnpm --dir src exec eslint --prune-suppressions --max-warnings=0 core/webview/ClineProvider.ts — passed.
  • pnpm --filter @roo-code/build build and pnpm --filter @roo-code/vscode-webview build — passed.
  • pnpm test — 13 of 14 tasks passed. The extension suite passed 12,640 tests; two extension.spec.ts tests timed out only under full-suite parallel load and pass 24/24 when the file runs in isolation.
  • Deterministic release reconciliation — confirmed 44 release-window PRs, one changelog entry per PR, and all 11 linked-issue reporter attributions.

Pre-Submission Checklist

  • Issue Linked: Not applicable to this maintainer release-preparation PR.
  • Scope: This PR contains only the v3.96.0 release-preparation state.
  • Self-Review: I reviewed the complete diff and reconciled the release inventory.
  • Writing Style: The PR title and description use short, direct sentences.
  • Testing: The existing test and validation suites passed. No new behavior tests are needed for these release metadata and copy changes.
  • Visual Snapshot (UI changes only): Not applicable. No layout, theme, brand element, empty state, error state, or interaction changed.
  • Documentation Impact: Marketplace README and locale documentation updates are included.
  • Contribution Guidelines: I read the Contributor Guidelines.

Visual Snapshots

Not applicable. This PR changes release copy and metadata without changing visual layout.

Videos (interaction / animation only)

Not applicable. This PR does not change interactions or animation.

Documentation Updates

Updated the root Marketplace README and all 17 localized READMEs. The separate stable-release documentation PR remains a post-publication step per the release procedure and is not part of this release-preparation PR.

Additional Notes

Release checklist

  • Accounted for all 44 PRs in the release window (43 shipped PRs plus the prior v3.94.0 release preparation under Housekeeping, matching the v3.94.0 changelog precedent).
  • Included reporters for all 11 linked issues.
  • Updated all 17 Marketplace README locales and all 17 non-English announcement locales.
  • Synced CHANGELOG.md to src/CHANGELOG.md with the required ## [3.96.0] heading.
  • Completed local validation, including tests, type checks, formatting, translation completeness, focused lint, and release-workflow builds.

No tag, approval, deployment, or merge action is included in this PR preparation. Do not merge or rebase this branch before tagging: the approver tags the branch tip v3.96.0 so the tag matches the approved commit SHA.

Get in Touch

Release coordination: @taltas via Discord.

@zoomote2 zoomote2 Bot assigned taltas Nov 6, 2026
@coderabbitai

coderabbitai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one): 1

  • coderabbit-review-active

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Review status

This PR was opened by an automated account. A human maintainer must verify the change intent, provenance, and validation before merging.

Current step: The required review sequence passed. Remaining merge requirements apply.

Review-state labels are managed by this workflow; do not edit them manually. community-approved is managed the same way — do not add or remove it manually. It signals a fresh community code approval for the current head as an advisory priority only; maintainer review is still required.

@zoomote2

zoomote2 Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor Author

3 issues outstanding — localized release-copy punctuation in fr, zh-CN, and zh-TW announcement highlights. Everything else reviewed clean: version bump, changelog inventory (all 43 shipped PRs plus #2272 housekeeping accounted for), announcement ID, locale key parity across all 18 locales, and CHANGELOG sync verified. See session

  • French highlights use unspaced colons instead of : used by the rest of the file and French typography — webview-ui/src/i18n/locales/fr/chat.json:326-328
  • zh-CN highlights use half-width ASCII colons instead of full-width : used by the previous release block and the file's prose — webview-ui/src/i18n/locales/zh-CN/chat.json:327-329
  • zh-TW highlights use half-width ASCII colons instead of full-width : used by the previous release block and the file's prose — webview-ui/src/i18n/locales/zh-TW/chat.json:348-350

Reviewed 2144b51

Comment on lines +326 to +328
"highlight1": "✨ Nouveaux réglages de chat et diagnostics: Affiche l'horodatage des messages avec des formats d'heure et de date configurables, règle le TTL du cache de prompts pour les profils Anthropic et génère des rapports de diagnostic respectueux de la vie privée.",
"highlight2": "💸 Des coûts et un cache fournisseurs plus précis: Garde intacts les résultats d'outils Anthropic, adopte les tokens de sortie cumulés dans les coûts Anthropic et MiniMax, lit les compteurs de cache de prompts de DeepSeek, cible le cache Responses de xAI et facture les lectures de cache Mistral à 0,1x.",
"highlight3": "🧭 Des chats plus fiables et plus rapides: Reprends les tâches terminées après un redémarrage, restaure les checkpoints quand le commit enregistré manque, recharge automatiquement un renderer de webview mort, limite les mises à jour de streaming et charge les langues à la demande."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new release highlights use unspaced colons (diagnostics:, précis:, rapides:), but French typography and the rest of this file (including the previous release block, e.g. "fournisseurs : Utilise") use a space before the colon ( :). Since this copy ships to French-locale users, please use : in the three new highlight strings.

Comment on lines +327 to +329
"highlight1": "✨ 全新聊天设置与诊断: 以可配置的时间与日期格式显示消息时间戳,为 Anthropic 配置文件调整 prompt-cache TTL,并生成注重隐私的诊断报告。",
"highlight2": "💸 更精准的供应商计费与缓存: 保持 Anthropic 工具结果完整无损,在 Anthropic 和 MiniMax 成本中采用累计输出 token,读取 DeepSeek 的 prompt-cache 计数器,命中 xAI Responses 缓存,并按 0.1x 计收 Mistral 缓存读取费用。",
"highlight3": "🧭 更可靠、更快速的对话: 重启后恢复已完成的任务,在已保存的 commit 缺失时仍能还原 checkpoint,自动重载无响应的 webview 渲染器,节流流式更新,并按需加载语言包。"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new release highlights use half-width ASCII colons (诊断:, 缓存:, 对话:), while the previous release block and the rest of this file's Chinese prose use full-width colons (:, e.g. the old 提供商支持:通过… and malformedCommand). Please use full-width : after the lead-in phrases in the three new highlight strings.

Comment on lines +348 to +350
"highlight1": "✨ 全新聊天設定與診斷: 以可設定的時間與日期格式顯示訊息時間戳記,為 Anthropic 設定檔調整 prompt-cache TTL,並產生注重隱私的診斷報告。",
"highlight2": "💸 更精準的供應商計費與快取: 保持 Anthropic 工具結果完整無損,在 Anthropic 和 MiniMax 成本中採用累計輸出 token,讀取 DeepSeek 的 prompt-cache 計數器,命中 xAI Responses 快取,並以 0.1x 計收 Mistral 快取讀取費用。",
"highlight3": "🧭 更可靠、更快速的對話: 重新啟動後續跑已完成的任務,在已儲存的 commit 遺失時仍能還原 checkpoint,自動重新載入無回應的 webview 轉譯器,節流串流更新,並視需要載入語言包。"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new release highlights use half-width ASCII colons (診斷:, 快取:, 對話:), while the previous release block and the other 11 full-width-colon occurrences in this file use : (e.g. the old 提供者支援:透過…). Please use full-width : after the lead-in phrases in the three new highlight strings.

@codecov

codecov Bot commented Nov 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@JamesRobert20
JamesRobert20 marked this pull request as ready for review November 7, 2026 01:31

@JamesRobert20 JamesRobert20 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved for v3.96.0 release. Checks look green; tagging the approved tip next.

@JamesRobert20
JamesRobert20 deployed to marketplace-production November 7, 2026 01:34 — with GitHub Actions Active
@github-actions

github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Changed-code mutation testing

Report for PR head 2144b51b4670.

Surviving / uncovered mutants Advisories
1 0
Details: mutants, guidance, and reproduction

Changed-code mutation testing

PackageChanged executable linesValidKilledTimeoutSurvivedNo coverageResult
extension110010Advisory findings

Focused tests

  • extension (cwd src): core/webview/__tests__/ClineProvider.spec.ts, core/webview/__tests__/ClineProvider.taskHistory.spec.ts, core/task-persistence/__tests__/TaskHistoryStore.spec.ts, __tests__/extension.spec.ts, core/task/__tests__/Task.spec.ts, core/task/__tests__/Task.persistence.spec.ts, activate/__tests__/registerCommands.spec.ts, core/webview/__tests__/ClineProvider.sticky-mode.spec.ts, core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts, core/webview/__tests__/ClineProvider.sticky-profile.spec.ts, __tests__/ClineProvider.history-resume-delegation.spec.ts, core/task/__tests__/Task.streaming-tool-calls.spec.ts, core/webview/__tests__/ClineProvider.stale-view.spec.ts, core/task/__tests__/grace-retry-errors.spec.ts, core/task/__tests__/flushPendingToolResultsToHistory.spec.ts, __tests__/single-open-invariant.spec.ts, core/webview/__tests__/ClineProvider.lockApiConfig.spec.ts, __tests__/ClineProvider.delegation.spec.ts, core/webview/__tests__/ClineProvider.flicker-free-cancel.spec.ts, core/webview/__tests__/checkpointRestoreHandler.spec.ts, activate/__tests__/registerCodeActions.spec.ts, core/webview/__tests__/webviewMessageHandler.checkpoint.spec.ts, services/code-index/__tests__/code-index-status-manager.spec.ts, __tests__/ClineProvider.subtask-links.spec.ts, extension/__tests__/api-task-conversation-history-length.spec.ts, __tests__/removeClineFromStack-delegation.spec.ts, extension/__tests__/api-start-task-logging.spec.ts, activate/__tests__/handleUri.spec.ts, extension/__tests__/api-configuration.spec.ts, extension/__tests__/api-start-new-task.spec.ts, extension/__tests__/api-has-task-ui-message-text.spec.ts, __tests__/abandonSubtask.spec.ts, activate/__tests__/handleTask.spec.ts, extension/__tests__/api-send-message.spec.ts, __tests__/nested-delegation-resume.spec.ts, core/webview/__tests__/ClineProvider.pending-action.spec.ts, extension/__tests__/api-delegation-events.spec.ts, extension/__tests__/api-delete-queued-message.spec.ts, services/code-index/__tests__/code-index-scope.spec.ts, core/webview/__tests__/ClineProviderFactory.spec.ts, __tests__/api-subtask.spec.ts, extension/__tests__/api-theme-fixture.spec.ts, test-utils/__tests__/provider.spec.ts, extension/__tests__/api-terminal-profile.spec.ts

All surviving and uncovered mutants

Warning annotations highlight up to 20 unique locations (maximum 7 per file). This summary lists every advisory mutant.

extension

src/core/webview/ClineProvider.ts

LineStatusMutatorReplacement
420SurvivedStringLiteral""

Resolve a mutation gap

Add or strengthen a focused test that fails under the mutation. If the mutant is equivalent, request maintainer approval for the narrowest mutator-specific exclusion and explain why it cannot change behavior:

// Stryker disable next-line ConditionalExpression: normalized input cannot reach the alternate branch
const result = condition ? value : fallback

Broad all exclusions and exclusions without a concrete reason are reported as advisories.

Reproduce locally

From a full checkout containing both commits:

pnpm install --frozen-lockfile
node scripts/stryker-diff.mjs ci --base bb6cbee59e7a29045950e018e81e6bd565a32881 --head 1d87f9f4db4332cbbd9961613c6345fa021d5e37

Mutation reports

  • extension: reports/mutation/extension/mutation.html

The workflow uploads generated reports in the changed-code-mutation-report artifact. A direct artifact link appears below after upload.

@JamesRobert20
JamesRobert20 added this pull request to the merge queue Nov 7, 2026
Merged via the queue into main with commit d2a59a8 Nov 7, 2026
44 checks passed
@JamesRobert20
JamesRobert20 deleted the release/v3.96.0 branch November 7, 2026 01:57
easonLiangWorldedtech added a commit to easonLiangWorldedtech/Zoo-Code that referenced this pull request Nov 7, 2026
One conflict: knip.json ignoreExports. Resolved as a union - this branch's
"!services/file-safety/safeWriteText.ts!" plus the two entries main added in
Zoo-Code-Org#2341 ("!services/tools/Bm25Ranker.ts!", "!services/tools/types.ts!").
Nothing was dropped from either side.

The merged main sha is recorded here because the merge basis is what moves the
mutation bucket: CI scores the pull-merge commit against its first parent, and
that parent is upstream/main's tip, so refreshing onto 73931fe is what
makes the bucket this branch measures the bucket CI reports.
easonLiangWorldedtech added a commit to easonLiangWorldedtech/Zoo-Code that referenced this pull request Nov 7, 2026
Upstream moved e943530 to 73931fe, 9 commits: Zoo-Code-Org#2275 zustand v5.0.16, Zoo-Code-Org#2274 ai sdk bump, Zoo-Code-Org#2273 @types/katex, Zoo-Code-Org#2341 the v3.96.0 release prep, Zoo-Code-Org#2309 batch 3 of the no-explicit-any suppression removal in the integrations area, Zoo-Code-Org#2297 the interrupted-message-write resume fix, Zoo-Code-Org#2120 partial-message throttling, Zoo-Code-Org#2308 webview tests on four workers, and Zoo-Code-Org#1838 reporting emergency condense like the automatic path. No campaign head is an ancestor of that main, so this is a merge commit rather than a fast-forward.

The single conflict was the src/extension/api.ts import block. It is resolved as a union: main adds TaskMessagesReadError, getErrorCode and tracePersistenceEvent, and this branch keeps its import type { Task } line. Neither side was dropped.

Suppression baseline: Zoo-Code-Org#2309 lowered the no-explicit-any counts in the integrations area, so the never-raise-a-count baseline is mains lower tree at 73931fe, not the e943530 one. The pre-commit hook shells out to pnpm, which is not installed on this lane PATH, so this merge commit was made with --no-verify and the gates - tsc, eslint with the suppressions file, prettier and the vitest lanes for every file in the diff - are run on the merged tree instead.

This branch was successfully deployed

1 active deployment
marketplace-production — 2144b51b Deployed Nov 7, 2026 by JamesRobert20 via publish-stable #63
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants