Skip to content

Commit 30d302c

Browse files
mini2sroomote-v0[bot]ellipsis-dev[bot]roomotedaniel-lxs
authored
Roo to main (#597)
* feat: add package.nls.json checking to find-missing-translations script (#8255) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat(types): add GPT-5-Codex model (#8260) * chore: add changeset for v3.28.6 (#8261) * Follow-up questions should trigger the "interactive" state (#8259) * chore: add changeset for v3.28.6 (#8263) * Changeset version bump (#8262) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Add image for 3.28.5 (#8266) * feat: add zai-org/GLM-4.5-turbo model to Chutes provider (#8157) Co-authored-by: Roo Code <roomote@roocode.com> * Cloud account switcher (#8223) * Cloud account switcher * Bare metal evals fixes (#8224) Co-authored-by: Roo Code <roomote@roocode.com> * Rounded icons in chat account switcher * Visual tweaks to CloudView * Remove hardcoded timeout * Safer check * PR feedback * Fix test * Check for org mismatches in handleCredentialsChange * Cloud: use the existing auth event flow to handle org switching * Cleanup: broadcast() might be confusingly named. --------- Co-authored-by: Chris Estreich <cestreich@gmail.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> Co-authored-by: John Richmond <5629+jr@users.noreply.github.com> * fix: checkpoint restore popover positioning issue (#8219) (#8220) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * ux: Collapse thinking blocks by default (but control all of them with a keyboard shortcut) (#8254) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Remove org switcher tooltip (#8269) * chore: add changeset for v3.28.7 (#8268) * Changeset version bump (#8271) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Merge remote-tracking branch 'upstream/main' into roo-to-main * fix(i18n): spelling mistake in zh-CN chat.json * web: Opengraph image (#8285) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Set port 3446 for web-evals in production mode (#8288) * Show cloud switcher and option to add a team when logged in (#8291) * fix: include initial ask in condense summarization (#8293) (#8298) * fix: include initial ask in condense summarization (#8293) --------- Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Fix frequent "No tool used" errors by clarifying tool-use rules (#8292) * Add a couple more free models to the Roo provider (#8304) * Release v3.28.8 (#8305) * Changeset version bump (#8306) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: log out from cloud when resetting extension state (#8312) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Merge remote-tracking branch 'upstream/main' into roo-to-main * feat: Add telemetry tracking to DismissibleUpsell component (#8309) * feat: add telemetry tracking to DismissibleUpsell component - Added UPSELL_DISMISSED and UPSELL_CLICKED events to TelemetryEventName enum - Updated DismissibleUpsell component to track clicks and dismissals with telemetry - Added telemetry tests to DismissibleUpsell test suite - Events include upsellId in the payload for tracking specific upsells * refactor(webview): make handleDismiss synchronous in DismissibleUpsell test(webview): add scenario where dismissOnClick=true without onClick tracks only UPSELL_DISMISSED; update tests; all tests passing locally --------- Co-authored-by: Roo Code <roomote@roocode.com> * Correct tool use suggestion to improve model adherence to suggestion (#8315) * Correct tool use suggestion to improve model adherence to suggestion * tweak * removing user hint when refreshing models (#7710) * feat(zgsm): add quota info display and periodic updates * Show the Roo provider on the welcome screen (#8317) * wip: Website Improvements (#8303) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * refactor: remove pr-reviewer mode (#8222) * feat: add animated quota display with staggered transitions * Merge remote-tracking branch 'upstream/main' into roo-to-main * web: More website copy tweaks (#8326) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: remove <thinking> tags from prompts for cleaner output and fewer tokens (#8319) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * Upgrade Supernova (#8330) * chore: add changeset for v3.28.9 (#8336) * Changeset version bump (#8337) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Track when telemetry settings change (#8339) * fix: use max_completion_tokens for GPT-5 models in LiteLLM provider (#6980) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * Make chat icons shrink-0 (#8343) * web: Testimonials (#8360) * Adds lots of testimonials, 5-stars from marketplace * Fits more testimonials in one page * Testimonial heading tweak * ci: refresh contrib.rocks cache workflow (#8083) * feat: add Claude 4.5 Sonnet model across all providers (#8368) * chore: add changeset for v3.28.10 (#8369) * Changeset version bump (#8370) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: correct AWS Bedrock Claude Sonnet 4.5 model identifier (#8372) Fixes #8371 - Updates the model ID from anthropic.claude-4.5-sonnet-v1:0 to anthropic.claude-sonnet-4-5-20250929-v1:0 to match AWS Bedrock naming convention Co-authored-by: Roo Code <roomote@roocode.com> * fix: correct Claude Sonnet 4.5 model ID format (#8373) * chore: add changeset for v3.28.11 (#8374) * Changeset version bump (#8375) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: Anthropic Sonnet 4.5 model id + Bedrock 1M context checkbox (#8384) fix(anthropic): use claude-sonnet-4-5 id fix(bedrock): enable 1M context checkbox for Sonnet 4.5 via shared list closes #8379 closes #8381 * chore: add changeset for v3.28.12 (#8385) * Changeset version bump (#8376) * changeset version bump * Revise changelog for version 3.28.12 Updated version number and consolidated patch notes. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Fix Vertex Sonnet 4.5 (#8391) * fix: remove topP parameter from Bedrock inference config (#8388) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * chore: add changeset for v3.28.13 (#8393) * Changeset version bump (#8394) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: add GLM-4.6 model support for z.ai provider (#8408) Co-authored-by: Roo Code <roomote@roocode.com> * chore: add changeset for v3.28.14 (#8413) * Changeset version bump (#8414) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * A couple more sonnet 4.5 fixes (#8421) * chore: Remove unsupported Gemini 2.5 Flash Image Preview free model (#8359) * Include reasoning messages in cloud tasks (#8401) * fix: show send button when only images are selected in chat textarea (#8423) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Add structured data to the homepage (#8427) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * fix(ui): disable send button when no input content and update tests * fix: Addresses overeager 'there are unsaved changes' dialog in settings (#8410) Fixes overeager 'there are unsaved changes' dialog in settings * feat: add UsageStats schema and type (#8441) feat: add UsageStats schema and type to cloud.ts Co-authored-by: Roo Code <roomote@roocode.com> * Release: v1.80.0 (#8442) chore: bump version to v1.80.0 * feat: add new DeepSeek and GLM models with detailed descriptions to the Chutes provider (#8467) * Deprecate free grok 4 fast (#8481) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * fix: improve save button activation in prompts settings (#5780) (#8267) Co-authored-by: MuriloFP <muriloferreira2@gmail.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * fix: properly reset cost limit tracking when user clicks "Reset and Continue" (#6890) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * chore(deps): update dependency vite to v6.3.6 [security] (#7838) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency glob to v11.0.3 (#7767) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: add changeset for v3.28.15 (#8491) * Changeset version bump (#8492) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Clamp GPT-5 max output tokens to 20% of context window (#8495) * fix: add ollama and lmstudio to MODELS_BY_PROVIDER (#8511) Co-authored-by: Roo Code <roomote@roocode.com> * Release: v1.81.0 (#8519) * Add the parent task ID in telemetry (#8532) * Release: v1.82.0 (#8535) * feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud (#8415) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: SannidhyaSah <sah_sannidhya@outlook.com> Co-authored-by: John Richmond <5629+jr@users.noreply.github.com> * Revert "feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud" (#8559) * Identify cloud tasks in the extension bridge (#8539) * Revert "Clamp GPT-5 max output tokens to 20% of context window" (#8582) * feat: Add Claude Sonnet 4.5 1M context window support for Claude Code… (#8586) feat: Add Claude Sonnet 4.5 1M context window support for Claude Code provider * chore: add changeset for v3.28.16 (#8592) * Changeset version bump (#8593) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix(i18n): Update zh-TW run command title (#8631) * feat(commands, webview): Add TDD built-in command; Refactor welcome tips and test guide definition * refactor(project-wiki): separate command from subtask initialization * feat(command): update built-in commands count and names in tests * Add Claude Haiku 4.5 (#8673) * Release v3.28.17 (#8674) * Changeset version bump (#8675) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix(editor): prevent file editing issues when git diff views are open (#8676) * fix(editor): prevent file editing issues when git diff views are open Add scheme checks to ensure only file:// URIs are matched when finding editors, avoiding issues with git diffs and other schemes. Includes error logging for failed editor lookups. * Remove the warnings * fix(editor): enforce file:// scheme in editor lookups to prevent git diff issues --------- Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * web: Cloud page and updates to Pricing to explain Cloud Agent Credits (#8605) * Adds mention of Cloud agents to /pricing * Credit pricing FAQ * Skeleton of a /cloud page and more pricing page tweaks * Lint * Update apps/web-roo-code/src/app/cloud/page.tsx Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Code review * Updates copy to new credit system * Moves Terms of Service to be backed by a markdown file, easier to read/edit/diff * Updated ToS * Twerm copy tweaks * Cloud screenshot and style adjustments * Style tweaks * Styles --------- Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * feat: Add userAgent to Bedrock client for version tracking (#8663) Co-authored-by: Roo Code <roomote@roocode.com> * feat: Cloud agents in extension (#8470) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: Z AI: only two coding endpoints (#8687) (#8693) * Remove request content from UI messages (#8696) * Left align the welcome title (#8700) * Update image generation model selection (#8698) * feat(core): enhance client ID validation and CSP configuration * web: Mobile image in /cloud (#8705) * feat(ui): add option to hide API request details by default * Revert cloud agents for now (#8713) * chore: add changeset for v3.28.18 (#8715) * fix(task): adjust API request handling and error message assignment * Changeset version bump (#8716) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * test: update telemetry client mocks and fix test id typo * Normalize docs-extractor audience tags; remove admin/stakeholder; strip tool invocations (#8717) docs(extractor): normalize audience to type="user"; remove admin/stakeholder; strip tool invocation examples * Add Intercom as a subprocessor (#8718) * web: Leftover white bg (#8719) Leftover white bg * feat(zgsm): add supportsMaxTokens flag and adjust max token handling * docs: update Configuring Profiles video link (#8189) Co-authored-by: Roo Code <roomote@roocode.com> * Fix link text for Roomote Control in README (#8742) * Try a 5s status mutation timeout (#8734) * web: Landing page for the reviewerFirst pass (#8740) * First pass * SEO * Update apps/web-roo-code/src/app/reviewer/page.tsx Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Remove GPT‑5 instructions/reasoning_summary from UI message metadata to prevent ui_messages.json bloat (#8756) chore(gpt5): stop persisting instructions/reasoning_summary in UI message metadata Problem: ui_messages.json was getting bloated with unused or duplicated content (system 'instructions' and 'reasoning_summary') that we do not read back. Root cause: earlier OpenAI Responses API implementation persisted these fields to per-message metadata; however, 'instructions' are already sent as top-level request instructions and 'reasoning_summary' is surfaced live via streaming events. Neither field is consumed from storage. Changes: (1) Task.persistGpt5Metadata now stores only previous_response_id; (2) removed instructions and reasoning_summary from types; (3) updated Zod schema; (4) persistence layer writes messages as-is (no sanitizer); (5) tests green. Impact: smaller ui_messages.json, no runtime behavior change for requests. Migration: old metadata fields will be ignored by schema. * Z.ai: add GLM-4.5-X, AirX, Flash (expand model coverage) (#8745) * feat(zai): add GLM-4.5-X, AirX, Flash; sync with Z.ai docs; keep canonical api line keys * feat(zai): add GLM-4.5V vision model (supportsImages, pricing, 16K max output); add tests * feat(types,zai): sync Z.AI international model map and tests - Update pricing, context window, and capabilities for: glm-4.5-x, glm-4.5-airx, glm-4.5-flash, glm-4.5v, glm-4.6 - Add glm-4-32b-0414-128k - Align tests with new model specs * fix(zai): align handler generics with expanded model ids to satisfy CI compile step * chore(zai): remove tier pricing blocks for Z.ai models * fix(zai): simplify names in zaiApiLineConfigs for clarity * chore(zai): set default temperature to 0.6 --------- Co-authored-by: Roo Code <roomote@roocode.com> * Enable browser-use tool for all image-capable models (#8121) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Skip failing tools tests (#8767) * Update text for clarity in reviewer page (#8753) * feat: add GLM-4.6-turbo model to chutes ai provider (#8502) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * web: Dynamic OpenGraph images (#8773) Co-authored-by: Roo Code <roomote@roocode.com> * web: Updates CTA link in /reviewer to send people to /cloud-agents/welcome (#8774) * feat: add 'anthropic/claude-haiku-4.5' to prompt caching models (#8764) Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * refactor(core): consolidate global custom instructions and improve shell handling * fix: update X/Twitter username from roo_code to roocode (#8780) Co-authored-by: Roo Code <roomote@roocode.com> * fix(zgsm): safely pass optional language metadata to avoid runtime errors * test: update test expectations for shell handling and prompt enhancement * fix: always show checkpoint restore options regardless of change detection (#8758) * feat: add token-budget based file reading with intelligent preview (#8789) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Remove a very verbose error for cloud agents (#8795) * fix: retry API requests on stream failures instead of aborting task (#8794) * feat: improve auto-approve button responsiveness (#8798) - Add responsive breakpoint at 300px for compact view - Icon correctly reflects state (X when off, ✓ when on) at all screen sizes - Show abbreviated labels on very narrow screens (< 300px) - Add triggerLabelOffShort translation key to all locales Fixes issues from PR #8152: - Icon always showing checkmark on narrow screens - Breakpoint activating too early (was 400px) - Incorrect Tailwind class ordering * Add checkpoint initialization timeout settings and fix checkpoint timeout warnings (#8019) Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: add dynamic model loading for Roo Code Cloud provider (#8728) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * refactor(tools): move imageHelpers to tools directory and update imports * Improve checkpoint menu translations for PR #7841 (#8796) Co-authored-by: Bruno Bergher <me@brunobergher.com> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: NaccOll <wuyoubin0504@gmail.com> * Handle Roo provider pricing correctly (#8802) * fix: preserve trailing newlines in stripLineNumbers for apply_diff (#8227) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Fix checkpoints test (#8803) * Chore: Update magistral-medium-latest in mistral.ts (#8364) Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * fix: respect nested .gitignore files in search_files (#8804) * fix(export): exclude max tokens field for models that don't support it (#8464) * chore: add changeset for v3.29.0 (#8806) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Changeset version bump (#8807) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: adjust GLM-4.6-turbo max output tokens to prevent context limit errors (#8822) Co-authored-by: Roo Code <roomote@roocode.com> * fix: change Add to Context keybinding to avoid Redo conflict (#8653) Co-authored-by: Roo Code <roomote@roocode.com> * feat: add Google Ads conversion tracking to reviewer page (#8831) * feat: add Google Ads conversion tracking to reviewer page * fix: add asChild prop to first button to prevent invalid HTML nesting --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * Fix provider model loading race conditions (#8836) * Release v3.29.1 (#8854) chore: add changeset for v3.29.1 * Changeset version bump (#8855) * changeset version bump * Update CHANGELOG for version 3.29.1 release Updated version number and added release notes for 3.29.1. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Merge remote-tracking branch 'upstream/main' into roo-to-main * Fix caching logic in Roo provider (#8860) * fix: Remove specific Claude model version from settings descriptions (#8437) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com> * feat: add LongCat-Flash-Thinking-FP8 models to Chutes AI provider (#8426) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * Make sure not to show prices for free models (#8864) * chore: add changeset for v3.29.2 (#8865) * Changeset version bump (#8866) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: resolve checkpoint menu popover overflow (#8867) * fix: process queued messages after context condensing completes (#8478) Co-authored-by: Roo Code <roomote@roocode.com> * fix: use max_output_tokens when available in LiteLLM fetcher (#8455) Co-authored-by: Roo Code <roomote@roocode.com> * Use monotonic clock for rate limiting (#8456) * Fix LiteLLM test failures after merge (#8870) * Use monotonic clock for rate limiting * Fix LiteLLM test failures after merge - Remove supportsComputerUse from LiteLLM implementation as it's no longer part of ModelInfo interface - Update test expectations to include cacheWritesPrice and cacheReadsPrice fields - Fix test for max_output_tokens preference functionality --------- Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com> * feat: add settings to configure time and cost in system prompt (#8451) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com> * Enabled reasoning in Roo provider (#8874) * feat: Add supportsReasoning property for Z.ai GLM binary thinking mode (#8872) * feat: Add supportsReasoning property for Z.ai GLM binary thinking mode - Add supportsReasoning to ModelInfo schema for binary reasoning models - Update GLM-4.5 and GLM-4.6 models to use supportsReasoning: true - Implement thinking parameter support in ZAiHandler for Deep Thinking API - Update ThinkingBudget component to show simple toggle for supportsReasoning models - Add comprehensive tests for binary reasoning functionality Closes #8465 * refactor: rename supportsReasoning to supportsReasoningBinary for clarity - Rename supportsReasoning -> supportsReasoningBinary in model schema - Update Z.AI GLM model configurations to use supportsReasoningBinary - Update Z.AI provider logic in createStream and completePrompt methods - Update ThinkingBudget UI component and tests - Update all test comments and expectations This change improves naming clarity by distinguishing between: - supportsReasoningBinary: Simple on/off reasoning toggle - supportsReasoningBudget: Advanced reasoning with token budget controls - supportsReasoningEffort: Advanced reasoning with effort levels * feat: update Gemini models with latest 09-2025 versions (#8486) * feat: update Gemini models with latest 09-2025 versions - Add gemini-flash-latest and gemini-flash-lite-latest models - Add gemini-2.5-flash-preview-09-2025 and gemini-2.5-flash-lite-preview-09-2025 - Reorganize models list with most recent versions at the top - Maintain all existing models for backward compatibility Fixes #8485 * fix: restore missing maxThinkingTokens and supportsReasoningBudget for gemini-2.5-pro-preview-03-25 Backward compatibility regression fix - these properties were accidentally removed during reorganization and are required to preserve existing reasoning-budget controls for users pinned to this model version. --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * Focus textbox and add newlines after adding to context (#8877) * chore: add changeset for v3.29.3 (#8878) * Add how it works section to reviewer landing page (#8884) * Add exponential backoff for mid-stream retry failures (#8888) * Add exponential backoff for mid-stream retry failures - Extend StackItem with retryAttempt counter - Extract shared backoffAndAnnounce helper for consistent retry UX - Apply exponential backoff to mid-stream failures when auto-approval enabled - Add debug throw for testing mid-stream retry path * Add abort check in retry countdown loop Allows early exit from exponential backoff if task is cancelled during delay * Changeset version bump (#8879) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: auto-sync enableReasoningEffort with reasoning dropdown selection (#8890) * Prevent a noisy cloud agent exception (#8577) * fix(modes): custom modes under custom path not showing (#8499) * docs(vscode-lm): clarify VS Code LM API integration warning (#8493) * docs(vscode-lm): clarify VS Code LM API integration blurb, provider wording, and error guidance * fix(vscode-lm): update settings UI warning; revert package description change * Restored * restored * i18n(vscode-lm): unify vscodeLmWarning text across all locales * i18n(vscode-lm): translate vscodeLmWarning across locales * fix: prevent MCP server restart when toggling tool permissions (#8633) * fix: prevent MCP server restart when toggling tool permissions Add isProgrammaticUpdate flag to distinguish between programmatic config updates and user-initiated file changes. Skip file watcher processing during programmatic updates to prevent unnecessary server restarts. * fix(mcp): prevent server reconnection when toggling disabled state Fixed bug where MCP servers would reconnect instead of staying disabled when toggled off. The issue was that toggleServerDisabled() used stale in-memory config instead of reading the fresh config from disk after writing the disabled flag. Changes: Added readServerConfigFromFile() helper to read and validate server config from disk Updated disable path to read fresh config before calling connectToServer() Updated enable path to read fresh config before calling connectToServer() This ensures the disabled: true flag is properly read, causing connectToServer() to create a disabled placeholder connection instead of actually connecting the server. + refactor(mcp): use safeWriteJson for atomic config writes Replace JSON.stringify + fs.writeFile with safeWriteJson in McpHub.ts to prevent data corruption through atomic writes with file locking. * fix(mcp): prevent race condition in isProgrammaticUpdate flag Replace multiple independent reset timers with a single timer that gets cleared and rescheduled on each programmatic config update. This prevents the flag from being reset prematurely when multiple rapid updates occur, which could cause unwanted server restarts during the file watcher's debounce period. + fix(mcp): ensure isProgrammaticUpdate flag cleanup with try-finally Wrap safeWriteJson() calls in try-finally blocks to guarantee the isProgrammaticUpdate flag is always reset, even if the write operation fails. This prevents the flag from being stuck at true indefinitely, which would cause subsequent user-initiated config changes to be silently ignored. * docs(readme): update readme images and image compression * docs: replace inline base64 images with image file references * Merge remote-tracking branch 'upstream/main' into roo-to-main * feat(terminal): refactor execa command execution for shell handling * Feat: Add Minimax Provider (fixes #8818) (#8820) Co-authored-by: xiaose <xiaose@minmaxi.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Release v3.29.4 (#8906) --------- Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> Co-authored-by: John Richmond <5629+jr@users.noreply.github.com> Co-authored-by: Bruno Bergher <me@brunobergher.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> Co-authored-by: John Costa <john@requesty.ai> Co-authored-by: SannidhyaSah <sah_sannidhya@outlook.com> Co-authored-by: Mohammad Danaee nia <77232207+mohammad154@users.noreply.github.com> Co-authored-by: MuriloFP <muriloferreira2@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Colby Serpa <129702033+ColbySerpa@users.noreply.github.com> Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org> Co-authored-by: Chris Hasson <hassoncs@gmail.com> Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com> Co-authored-by: laz-001 <194351703+laz-001@users.noreply.github.com> Co-authored-by: NaccOll <wuyoubin0504@gmail.com> Co-authored-by: Drake Thomsen <120344051+ThomsenDrake@users.noreply.github.com> Co-authored-by: Dicha Zelianivan Arkana <51877647+elianiva@users.noreply.github.com> Co-authored-by: Seth Miller <sethmillerp@gmail.com> Co-authored-by: Maosghoul <38350093+Maosghoul@users.noreply.github.com> Co-authored-by: xiaose <xiaose@minmaxi.com>
1 parent 4e868fc commit 30d302c

File tree

16 files changed

+523
-0
lines changed

16 files changed

+523
-0
lines changed

packages/types/src/global-settings.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ export const SECRET_STATE_KEYS = [
231231
"doubaoApiKey",
232232
"moonshotApiKey",
233233
"mistralApiKey",
234+
"minimaxApiKey",
234235
"unboundApiKey",
235236
"requestyApiKey",
236237
"xaiApiKey",

packages/types/src/provider-settings.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
vscodeLlmModels,
2525
xaiModels,
2626
internationalZAiModels,
27+
minimaxModels,
2728
} from "./providers/index.js"
2829

2930
/**
@@ -132,6 +133,7 @@ export const providerNames = [
132133
"groq",
133134
"mistral",
134135
"moonshot",
136+
"minimax",
135137
"openai-native",
136138
"qwen-code",
137139
"roo",
@@ -342,6 +344,13 @@ const moonshotSchema = apiModelIdProviderModelSchema.extend({
342344
moonshotApiKey: z.string().optional(),
343345
})
344346

347+
const minimaxSchema = apiModelIdProviderModelSchema.extend({
348+
minimaxBaseUrl: z
349+
.union([z.literal("https://api.minimax.io/v1"), z.literal("https://api.minimaxi.com/v1")])
350+
.optional(),
351+
minimaxApiKey: z.string().optional(),
352+
})
353+
345354
const unboundSchema = baseProviderSettingsSchema.extend({
346355
unboundApiKey: z.string().optional(),
347356
unboundModelId: z.string().optional(),
@@ -451,6 +460,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv
451460
deepInfraSchema.merge(z.object({ apiProvider: z.literal("deepinfra") })),
452461
doubaoSchema.merge(z.object({ apiProvider: z.literal("doubao") })),
453462
moonshotSchema.merge(z.object({ apiProvider: z.literal("moonshot") })),
463+
minimaxSchema.merge(z.object({ apiProvider: z.literal("minimax") })),
454464
unboundSchema.merge(z.object({ apiProvider: z.literal("unbound") })),
455465
requestySchema.merge(z.object({ apiProvider: z.literal("requesty") })),
456466
humanRelaySchema.merge(z.object({ apiProvider: z.literal("human-relay") })),
@@ -493,6 +503,7 @@ export const providerSettingsSchema = z.object({
493503
...deepInfraSchema.shape,
494504
...doubaoSchema.shape,
495505
...moonshotSchema.shape,
506+
...minimaxSchema.shape,
496507
...unboundSchema.shape,
497508
...requestySchema.shape,
498509
...humanRelaySchema.shape,
@@ -588,6 +599,7 @@ export const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = {
588599
"gemini-cli": "apiModelId",
589600
mistral: "apiModelId",
590601
moonshot: "apiModelId",
602+
minimax: "apiModelId",
591603
deepseek: "apiModelId",
592604
deepinfra: "deepInfraModelId",
593605
doubao: "apiModelId",
@@ -720,6 +732,11 @@ export const MODELS_BY_PROVIDER: Record<
720732
label: "Moonshot",
721733
models: Object.keys(moonshotModels),
722734
},
735+
minimax: {
736+
id: "minimax",
737+
label: "MiniMax",
738+
models: Object.keys(minimaxModels),
739+
},
723740
"openai-native": {
724741
id: "openai-native",
725742
label: "OpenAI",

packages/types/src/providers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ export * from "./doubao.js"
3333
export * from "./vercel-ai-gateway.js"
3434
export * from "./zai.js"
3535
export * from "./deepinfra.js"
36+
export * from "./minimax.js"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import type { ModelInfo } from "../model.js"
2+
3+
// Minimax
4+
// https://www.minimax.io/platform/document/text_api_intro
5+
// https://www.minimax.io/platform/document/pricing
6+
export type MinimaxModelId = keyof typeof minimaxModels
7+
export const minimaxDefaultModelId: MinimaxModelId = "MiniMax-M2"
8+
9+
export const minimaxModels = {
10+
"MiniMax-M2": {
11+
maxTokens: 16_384,
12+
contextWindow: 192_000,
13+
supportsImages: false,
14+
supportsPromptCache: false,
15+
inputPrice: 0.3,
16+
outputPrice: 1.2,
17+
cacheWritesPrice: 0,
18+
cacheReadsPrice: 0,
19+
description:
20+
"MiniMax M2, a model born for Agents and code, featuring Top-tier Coding Capabilities, Powerful Agentic Performance, and Ultimate Cost-Effectiveness & Speed.",
21+
},
22+
} as const satisfies Record<string, ModelInfo>
23+
24+
export const MINIMAX_DEFAULT_TEMPERATURE = 1.0

src/api/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import {
4242
FeatherlessHandler,
4343
VercelAiGatewayHandler,
4444
DeepInfraHandler,
45+
MiniMaxHandler,
4546
} from "./providers"
4647
import { NativeOllamaHandler } from "./providers/native-ollama"
4748

@@ -172,6 +173,8 @@ export function buildApiHandler(configuration: ProviderSettings): ApiHandler {
172173
return new FeatherlessHandler(options)
173174
case "vercel-ai-gateway":
174175
return new VercelAiGatewayHandler(options)
176+
case "minimax":
177+
return new MiniMaxHandler(options)
175178
default:
176179
apiProvider satisfies "gemini-cli" | undefined
177180
return new AnthropicHandler(options)

0 commit comments

Comments
 (0)