-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Support tool calling in native ollama provider #9696
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Review completed. No issues found with the new changes. The latest commit correctly updates test expectations to include Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
|
@roomote fix the failing test please |
Fixed the failing test by adding |
* feat: add tool protocol selector to advanced settings (RooCodeInc#9324) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * Remove experimental setting for native tool calls (RooCodeInc#9333) * Fix the type of the list files recursive parameter (RooCodeInc#9337) * fix: use VSCode theme color for outline button borders (RooCodeInc#9336) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> * feat: update cloud agent CTA to point to setup page (RooCodeInc#9338) Co-authored-by: Roo Code <[email protected]> * Improve Google Gemini defaults, temperature, and cost reporting (RooCodeInc#9327) * fix: sync parser state with profile/model changes (RooCodeInc#9355) * feat: enable native tool calling for openai-native provider (RooCodeInc#9348) Co-authored-by: daniel-lxs <[email protected]> * Add Gemini 3 Pro Preview model (RooCodeInc#9357) * fix: pass tool protocol parameter to lineCountTruncationError (RooCodeInc#9358) * Remove the Roo model defaults (RooCodeInc#9340) * chore: add changeset and announcement for v3.33.0 (RooCodeInc#9360) * Changeset version bump (RooCodeInc#9362) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: resolve native tool protocol race condition causing 400 errors (RooCodeInc#9363) * Retry eval tasks if API instability detected (RooCodeInc#9365) * fix: exclude XML tool examples from MODES section when native protocol enabled (RooCodeInc#9367) * Add native tool calling support to OpenAI-compatible (RooCodeInc#9369) * Add native tool calling support to OpenAI-compatible * Fix OpenAI strict mode schema validation by adding converter methods to BaseProvider - Add convertToolsForOpenAI() and convertToolSchemaForOpenAI() methods to BaseProvider - These methods ensure all properties are in required array and convert nullable types - Remove line_ranges from required array in read_file tool (converter handles it) - Update OpenAiHandler and BaseOpenAiCompatibleProvider to use helper methods - Eliminates code duplication across multiple tool usage sites - Fixes: OpenAI completion error: 400 Invalid schema for function 'read_file' --------- Co-authored-by: daniel-lxs <[email protected]> * fix: ensure no XML parsing when protocol is native (RooCodeInc#9371) * fix: ensure no XML parsing when protocol is native * refactor: remove redundant non-null assertions * fix: gemini maxOutputTokens and reasoning config (RooCodeInc#9375) * fix: gemini maxOutputTokens and reasoning config * test: tighten gemini reasoning typings * fix: Update tools to return structured JSON for native protocol (RooCodeInc#9373) * feat: add toolProtocol property to PostHog tool usage telemetry (RooCodeInc#9374) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * fix: Include nativeArgs in tool repetition detection (RooCodeInc#9377) * fix: Include nativeArgs in tool repetition detection Fixes false positive 'stuck in a loop' error for native protocol tools like read_file that store parameters in nativeArgs instead of params. Previously, the ToolRepetitionDetector only compared the params object, which was empty for native protocol tools. This caused all read_file calls to appear identical, triggering false loop detection even when reading different files. Changes: - Updated serializeToolUse() to include nativeArgs in comparison - Added comprehensive tests for native protocol scenarios - Maintains backward compatibility with XML protocol tools Closes: Issue reported in Discord about read_file loop detection * Try to use safe-stable-stringify in the tool repetition detector --------- Co-authored-by: Matt Rubens <[email protected]> * Fix Gemini thought signature validation and token counting errors (RooCodeInc#9380) Co-authored-by: Matt Rubens <[email protected]> * Release v3.33.1 (RooCodeInc#9383) * Changeset version bump (RooCodeInc#9384) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: preserve user images in native tool call results (RooCodeInc#9401) * feat: migrate PostHog client to ph.roocode.com (RooCodeInc#9402) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * feat: enable native tool calling for gemini provider (RooCodeInc#9343) Co-authored-by: daniel-lxs <[email protected]> * Add a RCC credit balance display (RooCodeInc#9386) * Add a RCC credit balance display * Replace the provider docs with the balance when logged in * PR feedback --------- Co-authored-by: Matt Rubens <[email protected]> * perf: reduce excessive getModel() calls & implement disk cache fallback (RooCodeInc#9410) * Show zero price for free models (RooCodeInc#9419) * Release v3.33.2 (RooCodeInc#9420) * Changeset version bump (RooCodeInc#9421) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Improve read_file tool description with examples (RooCodeInc#9422) * Improve read_file tool description with examples - Add explicit JSON structure documentation - Include three concrete examples (single file, with line ranges, multiple files) - Clarify that 'path' is required and 'line_ranges' is optional - Better explain line range format (1-based inclusive) This addresses agent confusion by providing clear examples similar to the XML tool definition. * Make read_file tool dynamic based on partialReadsEnabled setting - Convert read_file from static export to createReadFileTool() factory function - Add getNativeTools() function that accepts partialReadsEnabled parameter - Create buildNativeToolsArray() helper to encapsulate tool building logic - Update Task.ts to build native tools dynamically using maxReadFileLine setting - When partialReadsEnabled is false, line_ranges parameter is excluded from schema - Examples and descriptions adjust based on whether line ranges are supported This matches the behavior of the XML tool definition which dynamically adjusts its documentation based on settings, reducing confusion for agents. * Fix Marketplace crash by removing wildcard activation event (RooCodeInc#9423) * Revert "Fix Marketplace crash by removing wildcard activation event" (RooCodeInc#9432) * Fix OpenAI Native parallel tool calls for native protocol (RooCodeInc#9433) Fixes an issue where using the OpenAI Native provider together with Native Tool Calling could cause OpenAI’s Responses API to fail with errors like: * feat: add Google Gemini 3 Pro Image Preview to image generation models (RooCodeInc#9440) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: prevent duplicate environment_details when resuming cancelled tasks (RooCodeInc#9442) - Filter out complete environment_details blocks before appending fresh ones - Check for both opening and closing tags to ensure we're matching complete blocks - Prevents stale environment data from being kept during task resume - Add tests to verify deduplication logic and edge cases * Update glob to ^11.1.0 (RooCodeInc#9449) * chore: update tar-fs to 3.1.1 via pnpm override (RooCodeInc#9450) Co-authored-by: Roo Code <[email protected]> * Store reasoning in conversation history for all providers (RooCodeInc#9451) * Fix preserveReasoning flag to control API reasoning inclusion (RooCodeInc#9453) * feat: store reasoning in conversation history for all providers * refactor: address review feedback - Move comments inside else block - Combine reasoning checks into single if block - Make comments more concise * refactor: make comments more concise * Fix preserveReasoning flag to control API reasoning inclusion Changes: 1. Removed hardcoded <think> tag logic in streaming - Previously hardcoded reasoning into assistant message text - Now passes reasoning to addToApiConversationHistory as parameter 2. Updated buildCleanConversationHistory to respect preserveReasoning flag - When preserveReasoning: true → reasoning block included in API requests - When preserveReasoning: false/undefined → reasoning stripped from API - Reasoning stored in history for all cases 3. Added temporary debug logs to base-openai-compatible-provider.ts - Shows preserveReasoning flag value - Logs reasoning blocks in incoming messages - Logs <think> tags in converted messages sent to API * Fix: Use api.getModel() directly instead of cachedStreamingModel Addresses review comment: cachedStreamingModel is set during streaming but buildCleanConversationHistory is called before streaming starts. Using the cached value could cause stale model info when switching models between requests. Now directly uses this.api.getModel().info.preserveReasoning to ensure we always check the current model's flag, not a potentially stale cached value. * Clean up comments in Task.ts Removed outdated comment regarding model's preserveReasoning flag. * fix: remove unnecessary reasoningBlock variable in task reasoning logic * fix: send tool_result blocks for skipped tools in native protocol (RooCodeInc#9457) * fix: improve markdown formatting and add reasoning support (RooCodeInc#9458) * feat: implement Minimax as Anthropic-compatible provider (RooCodeInc#9455) * fix: improve search and replace symbol parsing (RooCodeInc#9456) * chore: add changeset for v3.33.3 (RooCodeInc#9459) * Changeset version bump (RooCodeInc#9460) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat(terminal): add inline shell integration with user input support * Release: v1.87.0 (RooCodeInc#9477) * refactor(terminal): remove inline shell integration callback and improve terminal process handling * fix: add fallback to yield tool calls regardless of finish_reason (RooCodeInc#9476) * Improvements to base openai compatible (RooCodeInc#9462) Co-authored-by: Roo Code <[email protected]> * Browser Use 2.0 (RooCodeInc#8941) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: daniel-lxs <[email protected]> * fix: resolve apply_diff performance regression from PR RooCodeInc#9456 (RooCodeInc#9474) * fix: implement model cache refresh to prevent stale disk cache (RooCodeInc#9478) * fix: Make cancel button immediately responsive during streaming (RooCodeInc#9448) * Test a provider-oriented welcome screen (RooCodeInc#9484) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * (feat): Add Baseten Provider (RooCodeInc#9461) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: AlexKer <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: copy model-level capabilities to OpenRouter endpoint models (RooCodeInc#9483) * Pin the Roo provider to the top of the list (RooCodeInc#9485) * Wait to experiment until state is hydrated (RooCodeInc#9488) * Change baseten default model to glm for now (RooCodeInc#9489) * Revert "Wait to experiment until state is hydrated" (RooCodeInc#9491) * Try to fix build (RooCodeInc#9490) * Update webview-ui Vite config (RooCodeInc#9493) * Enhance native tool descriptions with examples and clarifications (RooCodeInc#9486) * Revert "Revert "Wait to experiment until state is hydrated"" (RooCodeInc#9494) * chore: add changeset and announcement for v3.34.0 (RooCodeInc#9495) * Changeset version bump (RooCodeInc#9496) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Enable the Roo Code Cloud provider in evals (RooCodeInc#9492) * Show the prompt for image gen (RooCodeInc#9505) * feat(chat): conditionally render UpdateTodoListToolBlock based on alwaysAllowUpdateTodoList flag * fix(web-evals): update checkbox handler in new-run component * Remove double todo list (RooCodeInc#9517) * Track cloud synced messages (RooCodeInc#9518) * 3.34.1 (RooCodeInc#9522) * Changeset version bump (RooCodeInc#9523) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: support reasoning_details format for Gemini 3 models (RooCodeInc#9506) * feat: update Cerebras models (RooCodeInc#9527) Co-authored-by: Roo Code <[email protected]> * fix: ensure XML parser state matches tool protocol on config update (RooCodeInc#9535) * fix: flush LiteLLM cache when credentials change on refresh (RooCodeInc#9536) * Add Roo Code Cloud as an imagegen provider (RooCodeInc#9528) * fix: gracefully skip unsupported content blocks in Gemini transformer (RooCodeInc#9537) Co-authored-by: Matt Rubens <[email protected]> * feat: add claude-opus-4.5 to OpenRouter prompt caching and reasoning budget models (RooCodeInc#9540) * feat: add claude-opus-4.5 to Anthropic and Vertex providers (RooCodeInc#9541) * Release v3.34.2 (RooCodeInc#9545) * Changeset version bump (RooCodeInc#9546) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Add support for Roo Code Cloud as an embeddings provider (RooCodeInc#9543) * Switch from asdf to mise-en-place in bare-metal evals setup script (RooCodeInc#9548) * feat: implement streaming for native tool calls (RooCodeInc#9542) * Add Opus 4.5 to Claude Code provider (RooCodeInc#9560) * Fix ask_followup_question streaming issue and add missing tool cases (RooCodeInc#9561) * feat(auth): enhance login status logging and use dynamic plugin version * refactor: remove disable provider and add client id headers * test(webview): remove disable provider tests across multiple test files * fix: enable caching for Opus 4.5 model (RooCodeInc#9568) Added claude-opus-4-5-20251101 to the cache control switch statements to enable prompt caching, matching the behavior of other Claude models. Fixes RooCodeInc#9567 Co-authored-by: Roo Code <[email protected]> * feat: Add contact links to About Roo Code settings page (RooCodeInc#9570) * feat: add contact links to About settings page * Tweaks * i18n * Update webview-ui/src/components/settings/__tests__/About.spec.tsx Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * feat: add Claude Opus 4.5 model to Bedrock provider (RooCodeInc#9572) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * chore: add changeset for v3.34.3 (RooCodeInc#9578) * Changeset version bump (RooCodeInc#9579) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: preserve dynamic MCP tool names in native mode API history (RooCodeInc#9559) * fix: preserve tool_use blocks in summary message during condensing with native tools (RooCodeInc#9582) * Add support for images api (RooCodeInc#9587) * Make it clear that BFL Flux 2 is free (RooCodeInc#9588) * Add BFL models to openrouter (RooCodeInc#9589) * chore: add changeset for v3.34.4 (RooCodeInc#9590) * Changeset version bump (RooCodeInc#9591) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: set native tools as default for minimax-m2 and claude-haiku-4.5 (RooCodeInc#9586) * feat: enable multiple native tool calls per turn with failure guardrails (RooCodeInc#9273) * feat: add Bedrock Opus 4.5 to global inference model list (RooCodeInc#9595) Co-authored-by: Roo Code <[email protected]> * fix: update API handler when toolProtocol changes (RooCodeInc#9599) * Make single file read only apply to xml tools (RooCodeInc#9600) * Revert "Add support for Roo Code Cloud as an embeddings provider" (RooCodeInc#9602) * feat(web-evals): enhance dashboard with dynamic tool columns and UX improvements (RooCodeInc#9592) Co-authored-by: Roo Code <[email protected]> * fix(webview): pass taskId to finishSubTask when canceling or deleting tasks * chore: add changeset for v3.34.5 (RooCodeInc#9603) * Changeset version bump (RooCodeInc#9604) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Feature/bedrock embeddings support (RooCodeInc#9475) * feat: add AWS Bedrock support for codebase indexing - Add bedrock as a new EmbedderProvider type - Add AWS Bedrock embedding model profiles (titan-embed-text models) - Create BedrockEmbedder class with support for Titan and Cohere models - Add Bedrock configuration support to config manager and interfaces - Update service factory to create BedrockEmbedder instances - Add comprehensive tests for BedrockEmbedder - Add localization strings for Bedrock support Closes RooCodeInc#8658 * fix: add missing bedrockOptions to loadConfiguration return type * Fix various issues that the original PR missed. * Remove debug logs * Rename AWS Bedrock -> Amazon Bedrock * Remove some 'as any's * Revert README changes * Add translations * More translations * Remove leftover code from a debugging session. * fix: add bedrock to codebaseIndexModelsSchema and update brace-expansion override - Add bedrock provider to codebaseIndexModelsSchema type definition to fix empty model dropdown in UI - Update pnpm override for brace-expansion from '>=2.0.2' to '^2.0.2' to resolve ESM/CommonJS compatibility issues * Improvements to AWS Bedrock embeddings support - Enhanced bedrock.ts embedder implementation - Added comprehensive test coverage in bedrock.spec.ts - Updated config-manager.ts for better Bedrock configuration handling - Improved service-factory.ts integration - Updated embeddingModels.ts with Bedrock models - Enhanced CodeIndexPopover.tsx UI for Bedrock options - Added auto-populate test for CodeIndexPopover - Updated pnpm-lock.yaml dependencies * Restore openrouter config * Remove debug log * Fix config-manager.spec.ts unit test. * Add translations for "optional" * Revert unnecessary change related to open ia embedder --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Smartsheet-JB-Brown <[email protected]> * fix: restore content undefined check in WriteToFileTool.handlePartial() (RooCodeInc#9614) * fix: exclude access_mcp_resource tool when MCP has no resources (RooCodeInc#9615) * fix: prevent model cache from persisting empty API responses (RooCodeInc#9623) * fix: update default settings for inline terminal and codebase indexing (RooCodeInc#9622) Co-authored-by: Roo Code <[email protected]> * feat(mistral): add native tool calling support (RooCodeInc#9625) * feat: wire MULTIPLE_NATIVE_TOOL_CALLS experiment to OpenAI parallel_tool_calls (RooCodeInc#9621) * feat(bedrock): allow global inference selection when cross-region is enabled (RooCodeInc#9616) Co-authored-by: Roo Code <[email protected]> * fix: defer new_task tool_result until subtask completes for native protocol (RooCodeInc#9628) * fix: convert line_ranges strings to lineRanges objects in native tool calls (RooCodeInc#9627) * fix: filter non-Anthropic content blocks before sending to Vertex API (RooCodeInc#9618) * Add fine grained tool streaming for OpenRouter Anthropic (RooCodeInc#9629) * Release v3.34.6 (RooCodeInc#9631) * Changeset version bump (RooCodeInc#9632) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: OpenRouter GPT-5 strict schema validation for read_file tool (RooCodeInc#9633) * fix: create parent directories early in write_to_file to prevent ENOENT errors (RooCodeInc#9640) * Fix openrouter tool calls (RooCodeInc#9642) * fix(claude-code): disable native tools and temperature support (RooCodeInc#9643) * Enable native tool calling for z.ai (RooCodeInc#9645) * Moonshot native tool call support (RooCodeInc#9646) * Support native tools in the anthropic provider (RooCodeInc#9644) Co-authored-by: Roo Code <[email protected]> * Add 'taking you to cloud' screen after provider welcome (RooCodeInc#9652) * chore: add changeset for v3.34.7 (RooCodeInc#9651) * Changeset version bump (RooCodeInc#9654) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: race condition in new_task tool for native protocol (RooCodeInc#9655) The pendingNewTaskToolCallId was being set AFTER startSubtask() returned. However, startSubtask() contains a 500ms delay during which the subtask could complete. If the subtask completed during this window, completeSubtask() would be called before pendingNewTaskToolCallId was set, causing it to fall through to the XML protocol path and add a text message instead of a proper tool_result block, breaking the API conversation structure. This fix moves the pendingNewTaskToolCallId assignment to happen BEFORE calling startSubtask(), ensuring the ID is set before the subtask starts. If the subtask creation fails, the pending ID is cleared. * chore: add changeset for v3.34.8 (RooCodeInc#9657) * Changeset version bump (RooCodeInc#9658) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: add model-specific tool customization via excludedTools and includedTools (RooCodeInc#9641) * feat: add model-specific tool customization via excludedTools and includedTools - Add excludedTools and includedTools to ModelInfo schema - Implement applyModelToolCustomization helper to filter tools based on model config - Integrate model tool filtering into filterNativeToolsForMode for native protocol - Add comprehensive tests for tool customization functionality - Wire up modelInfo through buildNativeToolsArray and Task.ts This allows providers to override which native tools are available on a per-model basis via MODEL_DEFAULTS, enabling better control over tool selection for models with specific needs. * feat: add customTools for opt-in only tools - Add customTools array to ToolGroupConfig for defining opt-in only tools - Update getToolsForMode() to exclude customTools from default tool set - Modify applyModelToolCustomization() to include customTools only via includedTools - Add tests for customTools functionality - Add comprehensive documentation with usage examples customTools allows defining tools that are NOT available by default, even when a mode includes their group. These tools are only available when explicitly included via a model's includedTools configuration. This enables: - Gradual rollout of experimental tools - Model-specific specialized capabilities - Safe experimentation without affecting default tool sets * Add assertions for customTools tests per review feedback * test: add tests for including customTools via includedTools * Update src/core/prompts/tools/__tests__/filter-tools-for-mode.spec.ts 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> * feat(web-evals): add task log viewing, export failed logs, and new run options (RooCodeInc#9637) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Metadata‑driven subtasks (no UI changes): automatic parent resume and single‑open safety (RooCodeInc#9090) * feat: add search_and_replace tool for batch text replacements (RooCodeInc#9549) Co-authored-by: daniel-lxs <[email protected]> * feat: enable native tool support for DeepSeek and Doubao models (RooCodeInc#9671) Add supportsNativeTools: true to DeepSeek and Doubao model definitions, enabling native OpenAI-compatible tool calling for these providers. Both providers already extend OpenAiHandler which has built-in support for native tools, so this change is all that's needed to enable the feature. * feat: add native tool support to Requesty provider (RooCodeInc#9672) - Import resolveToolProtocol and TOOL_PROTOCOL from @roo-code/types - Add tools and tool_choice to completion params when native protocol is enabled - Handle tool_call_partial chunks in streaming response - Add comprehensive tests for native tool support * Include tool format in environment details (RooCodeInc#9661) * feat(groq): enable native tool support for models that support function calling (RooCodeInc#9673) Co-authored-by: Matt Rubens <[email protected]> * feat: add native tools support for OpenAI-compatible providers (RooCodeInc#9676) Co-authored-by: Matt Rubens <[email protected]> * feat: enable native tool calls for Vertex Gemini models (RooCodeInc#9678) Add supportsNativeTools: true to all Gemini-based models in the Vertex provider. The VertexHandler extends GeminiHandler which already has full native tool handling logic implemented. Models updated: - gemini-3-pro-preview - gemini-2.5-flash-preview-05-20:thinking - gemini-2.5-flash-preview-05-20 - gemini-2.5-flash - gemini-2.5-flash-preview-04-17:thinking - gemini-2.5-flash-preview-04-17 - gemini-2.5-pro-preview-03-25 - gemini-2.5-pro-preview-05-06 - gemini-2.5-pro-preview-06-05 - gemini-2.5-pro - gemini-2.5-pro-exp-03-25 - gemini-2.0-pro-exp-02-05 - gemini-2.0-flash-001 - gemini-2.0-flash-lite-001 - gemini-2.0-flash-thinking-exp-01-21 - gemini-1.5-flash-002 - gemini-1.5-pro-002 - gemini-2.5-flash-lite-preview-06-17 * fix: display install count in millions instead of thousands (RooCodeInc#9677) Co-authored-by: Roo Code <[email protected]> * feat: add apply_patch native tool (RooCodeInc#9663) Co-authored-by: daniel-lxs <[email protected]> * feat: add debug buttons to view API and UI history (RooCodeInc#9684) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * test(workflow): update test expectations after removing run_test functionality * Add web-evals updates and kill run functionality (RooCodeInc#9681) Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Roo Code <[email protected]> * Add Grok 4 Fast and Grok 4.1 Fast, plus xAI native tool calling (RooCodeInc#9690) * Add Grok 4 Fast and Grok 4.1 Fast * Add native tool calling support * Add native tool calling for deepinfra (RooCodeInc#9691) * fix(chat): correct message visibility condition filter * fix(utils): wrap os-name call in safe fallback for zgsm OS detection * refactor(core): clean up unused imports and improve file handling logic * refactor: adjust file limits and multipliers * ux: Improvements to the new, RCC Provider centric onboarding flow (RooCodeInc#9709) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * ux: Toolbar cleanup and settings consolidation (RooCodeInc#9710) Co-authored-by: Roo Code <[email protected]> * Update a couple provider labels (RooCodeInc#9711) Co-authored-by: Roo Code <[email protected]> * Release: v1.88.0 (RooCodeInc#9713) * Remove TabContent wrapper from Modes and MCP (RooCodeInc#9712) * fix: preserve tool_use blocks in summary for parallel tool calls (RooCodeInc#9714) Co-authored-by: huajiwuyan <[email protected]> * feat(chutes): detect native tool support from API supported_features (RooCodeInc#9715) Co-authored-by: Matt Rubens <[email protected]> * Add NTC support for Cerebras (RooCodeInc#9692) * Add native tools support to Unbound (RooCodeInc#9699) Co-authored-by: Roo Code <[email protected]> * Add native tool support for vercel ai gateway (RooCodeInc#9697) Co-authored-by: Roo Code <[email protected]> * Default grok code fast to native tools (RooCodeInc#9717) * Bedrock native tool calling (RooCodeInc#9698) * Support tool calling in native ollama provider (RooCodeInc#9696) Co-authored-by: Roo Code <[email protected]> * feat: add native tool support for LiteLLM provider (RooCodeInc#9719) * fix: prevent navigation buttons from wrapping on smaller screens (RooCodeInc#9721) Co-authored-by: Roo Code <[email protected]> * chore: add changeset for v3.35.0 (RooCodeInc#9724) * Changeset version bump (RooCodeInc#9725) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * chore: bump version to v1.89.0 (RooCodeInc#9718) * fix: flush pending tool results before task delegation (RooCodeInc#9726) When tools are called in parallel (e.g., update_todo_list + new_task), the tool results accumulate in userMessageContent but aren't saved to API history until all tools complete. When new_task triggers delegation, the parent is disposed before these pending results are saved, causing 400 errors when the parent resumes (missing tool_result for tool_use). This fix: - Adds flushPendingToolResultsToHistory() method in Task.ts that saves pending userMessageContent to API history - Calls this method in delegateParentAndOpenChild() before disposing the parent task - Safe for both native/XML protocols and sequential/parallel execution (returns early if there's nothing to flush) * Better IPC error logging (RooCodeInc#9727) * chore: add changeset for v3.35.1 (RooCodeInc#9728) * Changeset version bump (RooCodeInc#9729) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Pass app version to provider (RooCodeInc#9730) * Allow models to contain default temperature (RooCodeInc#9734) * Look for a tag in the Roo provider to default the model to native tool calling (RooCodeInc#9735) * Assume all LiteLLM models support native tools (RooCodeInc#9736) * chore: add changeset for v3.35.2 (RooCodeInc#9737) * Changeset version bump (RooCodeInc#9738) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Merge remote-tracking branch 'upstream/main' into roo-to-main --------- Co-authored-by: Daniel <[email protected]> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <[email protected]> Co-authored-by: John Richmond <[email protected]> Co-authored-by: Alex Ker <[email protected]> Co-authored-by: AlexKer <[email protected]> Co-authored-by: Seb Duerr <[email protected]> Co-authored-by: George Goranov <[email protected]> Co-authored-by: Smartsheet-JB-Brown <[email protected]> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Silentflower <[email protected]> Co-authored-by: huajiwuyan <[email protected]>
* fix: sync parser state with profile/model changes (RooCodeInc#9355) * feat: enable native tool calling for openai-native provider (RooCodeInc#9348) Co-authored-by: daniel-lxs <[email protected]> * Add Gemini 3 Pro Preview model (RooCodeInc#9357) * fix: pass tool protocol parameter to lineCountTruncationError (RooCodeInc#9358) * Remove the Roo model defaults (RooCodeInc#9340) * chore: add changeset and announcement for v3.33.0 (RooCodeInc#9360) * Changeset version bump (RooCodeInc#9362) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: resolve native tool protocol race condition causing 400 errors (RooCodeInc#9363) * Retry eval tasks if API instability detected (RooCodeInc#9365) * fix: exclude XML tool examples from MODES section when native protocol enabled (RooCodeInc#9367) * Add native tool calling support to OpenAI-compatible (RooCodeInc#9369) * Add native tool calling support to OpenAI-compatible * Fix OpenAI strict mode schema validation by adding converter methods to BaseProvider - Add convertToolsForOpenAI() and convertToolSchemaForOpenAI() methods to BaseProvider - These methods ensure all properties are in required array and convert nullable types - Remove line_ranges from required array in read_file tool (converter handles it) - Update OpenAiHandler and BaseOpenAiCompatibleProvider to use helper methods - Eliminates code duplication across multiple tool usage sites - Fixes: OpenAI completion error: 400 Invalid schema for function 'read_file' --------- Co-authored-by: daniel-lxs <[email protected]> * fix: ensure no XML parsing when protocol is native (RooCodeInc#9371) * fix: ensure no XML parsing when protocol is native * refactor: remove redundant non-null assertions * fix: gemini maxOutputTokens and reasoning config (RooCodeInc#9375) * fix: gemini maxOutputTokens and reasoning config * test: tighten gemini reasoning typings * fix: Update tools to return structured JSON for native protocol (RooCodeInc#9373) * feat: add toolProtocol property to PostHog tool usage telemetry (RooCodeInc#9374) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: daniel-lxs <[email protected]> * fix: Include nativeArgs in tool repetition detection (RooCodeInc#9377) * fix: Include nativeArgs in tool repetition detection Fixes false positive 'stuck in a loop' error for native protocol tools like read_file that store parameters in nativeArgs instead of params. Previously, the ToolRepetitionDetector only compared the params object, which was empty for native protocol tools. This caused all read_file calls to appear identical, triggering false loop detection even when reading different files. Changes: - Updated serializeToolUse() to include nativeArgs in comparison - Added comprehensive tests for native protocol scenarios - Maintains backward compatibility with XML protocol tools Closes: Issue reported in Discord about read_file loop detection * Try to use safe-stable-stringify in the tool repetition detector --------- Co-authored-by: Matt Rubens <[email protected]> * Fix Gemini thought signature validation and token counting errors (RooCodeInc#9380) Co-authored-by: Matt Rubens <[email protected]> * Release v3.33.1 (RooCodeInc#9383) * Changeset version bump (RooCodeInc#9384) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: preserve user images in native tool call results (RooCodeInc#9401) * feat: migrate PostHog client to ph.roocode.com (RooCodeInc#9402) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * feat: enable native tool calling for gemini provider (RooCodeInc#9343) Co-authored-by: daniel-lxs <[email protected]> * Add a RCC credit balance display (RooCodeInc#9386) * Add a RCC credit balance display * Replace the provider docs with the balance when logged in * PR feedback --------- Co-authored-by: Matt Rubens <[email protected]> * perf: reduce excessive getModel() calls & implement disk cache fallback (RooCodeInc#9410) * Show zero price for free models (RooCodeInc#9419) * Release v3.33.2 (RooCodeInc#9420) * Changeset version bump (RooCodeInc#9421) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Improve read_file tool description with examples (RooCodeInc#9422) * Improve read_file tool description with examples - Add explicit JSON structure documentation - Include three concrete examples (single file, with line ranges, multiple files) - Clarify that 'path' is required and 'line_ranges' is optional - Better explain line range format (1-based inclusive) This addresses agent confusion by providing clear examples similar to the XML tool definition. * Make read_file tool dynamic based on partialReadsEnabled setting - Convert read_file from static export to createReadFileTool() factory function - Add getNativeTools() function that accepts partialReadsEnabled parameter - Create buildNativeToolsArray() helper to encapsulate tool building logic - Update Task.ts to build native tools dynamically using maxReadFileLine setting - When partialReadsEnabled is false, line_ranges parameter is excluded from schema - Examples and descriptions adjust based on whether line ranges are supported This matches the behavior of the XML tool definition which dynamically adjusts its documentation based on settings, reducing confusion for agents. * Fix Marketplace crash by removing wildcard activation event (RooCodeInc#9423) * Revert "Fix Marketplace crash by removing wildcard activation event" (RooCodeInc#9432) * Fix OpenAI Native parallel tool calls for native protocol (RooCodeInc#9433) Fixes an issue where using the OpenAI Native provider together with Native Tool Calling could cause OpenAI’s Responses API to fail with errors like: * feat: add Google Gemini 3 Pro Image Preview to image generation models (RooCodeInc#9440) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: prevent duplicate environment_details when resuming cancelled tasks (RooCodeInc#9442) - Filter out complete environment_details blocks before appending fresh ones - Check for both opening and closing tags to ensure we're matching complete blocks - Prevents stale environment data from being kept during task resume - Add tests to verify deduplication logic and edge cases * Update glob to ^11.1.0 (RooCodeInc#9449) * chore: update tar-fs to 3.1.1 via pnpm override (RooCodeInc#9450) Co-authored-by: Roo Code <[email protected]> * Store reasoning in conversation history for all providers (RooCodeInc#9451) * Fix preserveReasoning flag to control API reasoning inclusion (RooCodeInc#9453) * feat: store reasoning in conversation history for all providers * refactor: address review feedback - Move comments inside else block - Combine reasoning checks into single if block - Make comments more concise * refactor: make comments more concise * Fix preserveReasoning flag to control API reasoning inclusion Changes: 1. Removed hardcoded <think> tag logic in streaming - Previously hardcoded reasoning into assistant message text - Now passes reasoning to addToApiConversationHistory as parameter 2. Updated buildCleanConversationHistory to respect preserveReasoning flag - When preserveReasoning: true → reasoning block included in API requests - When preserveReasoning: false/undefined → reasoning stripped from API - Reasoning stored in history for all cases 3. Added temporary debug logs to base-openai-compatible-provider.ts - Shows preserveReasoning flag value - Logs reasoning blocks in incoming messages - Logs <think> tags in converted messages sent to API * Fix: Use api.getModel() directly instead of cachedStreamingModel Addresses review comment: cachedStreamingModel is set during streaming but buildCleanConversationHistory is called before streaming starts. Using the cached value could cause stale model info when switching models between requests. Now directly uses this.api.getModel().info.preserveReasoning to ensure we always check the current model's flag, not a potentially stale cached value. * Clean up comments in Task.ts Removed outdated comment regarding model's preserveReasoning flag. * fix: remove unnecessary reasoningBlock variable in task reasoning logic * fix: send tool_result blocks for skipped tools in native protocol (RooCodeInc#9457) * fix: improve markdown formatting and add reasoning support (RooCodeInc#9458) * feat: implement Minimax as Anthropic-compatible provider (RooCodeInc#9455) * fix: improve search and replace symbol parsing (RooCodeInc#9456) * chore: add changeset for v3.33.3 (RooCodeInc#9459) * Changeset version bump (RooCodeInc#9460) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat(terminal): add inline shell integration with user input support * Release: v1.87.0 (RooCodeInc#9477) * refactor(terminal): remove inline shell integration callback and improve terminal process handling * fix: add fallback to yield tool calls regardless of finish_reason (RooCodeInc#9476) * Improvements to base openai compatible (RooCodeInc#9462) Co-authored-by: Roo Code <[email protected]> * Browser Use 2.0 (RooCodeInc#8941) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: daniel-lxs <[email protected]> * fix: resolve apply_diff performance regression from PR RooCodeInc#9456 (RooCodeInc#9474) * fix: implement model cache refresh to prevent stale disk cache (RooCodeInc#9478) * fix: Make cancel button immediately responsive during streaming (RooCodeInc#9448) * Test a provider-oriented welcome screen (RooCodeInc#9484) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * (feat): Add Baseten Provider (RooCodeInc#9461) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: AlexKer <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * fix: copy model-level capabilities to OpenRouter endpoint models (RooCodeInc#9483) * Pin the Roo provider to the top of the list (RooCodeInc#9485) * Wait to experiment until state is hydrated (RooCodeInc#9488) * Change baseten default model to glm for now (RooCodeInc#9489) * Revert "Wait to experiment until state is hydrated" (RooCodeInc#9491) * Try to fix build (RooCodeInc#9490) * Update webview-ui Vite config (RooCodeInc#9493) * Enhance native tool descriptions with examples and clarifications (RooCodeInc#9486) * Revert "Revert "Wait to experiment until state is hydrated"" (RooCodeInc#9494) * chore: add changeset and announcement for v3.34.0 (RooCodeInc#9495) * Changeset version bump (RooCodeInc#9496) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Enable the Roo Code Cloud provider in evals (RooCodeInc#9492) * Show the prompt for image gen (RooCodeInc#9505) * feat(chat): conditionally render UpdateTodoListToolBlock based on alwaysAllowUpdateTodoList flag * fix(web-evals): update checkbox handler in new-run component * Remove double todo list (RooCodeInc#9517) * Track cloud synced messages (RooCodeInc#9518) * 3.34.1 (RooCodeInc#9522) * Changeset version bump (RooCodeInc#9523) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: support reasoning_details format for Gemini 3 models (RooCodeInc#9506) * feat: update Cerebras models (RooCodeInc#9527) Co-authored-by: Roo Code <[email protected]> * fix: ensure XML parser state matches tool protocol on config update (RooCodeInc#9535) * fix: flush LiteLLM cache when credentials change on refresh (RooCodeInc#9536) * Add Roo Code Cloud as an imagegen provider (RooCodeInc#9528) * fix: gracefully skip unsupported content blocks in Gemini transformer (RooCodeInc#9537) Co-authored-by: Matt Rubens <[email protected]> * feat: add claude-opus-4.5 to OpenRouter prompt caching and reasoning budget models (RooCodeInc#9540) * feat: add claude-opus-4.5 to Anthropic and Vertex providers (RooCodeInc#9541) * Release v3.34.2 (RooCodeInc#9545) * Changeset version bump (RooCodeInc#9546) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Add support for Roo Code Cloud as an embeddings provider (RooCodeInc#9543) * Switch from asdf to mise-en-place in bare-metal evals setup script (RooCodeInc#9548) * feat: implement streaming for native tool calls (RooCodeInc#9542) * Add Opus 4.5 to Claude Code provider (RooCodeInc#9560) * Fix ask_followup_question streaming issue and add missing tool cases (RooCodeInc#9561) * feat(auth): enhance login status logging and use dynamic plugin version * refactor: remove disable provider and add client id headers * test(webview): remove disable provider tests across multiple test files * fix: enable caching for Opus 4.5 model (RooCodeInc#9568) Added claude-opus-4-5-20251101 to the cache control switch statements to enable prompt caching, matching the behavior of other Claude models. Fixes RooCodeInc#9567 Co-authored-by: Roo Code <[email protected]> * feat: Add contact links to About Roo Code settings page (RooCodeInc#9570) * feat: add contact links to About settings page * Tweaks * i18n * Update webview-ui/src/components/settings/__tests__/About.spec.tsx Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * feat: add Claude Opus 4.5 model to Bedrock provider (RooCodeInc#9572) Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> * chore: add changeset for v3.34.3 (RooCodeInc#9578) * Changeset version bump (RooCodeInc#9579) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: preserve dynamic MCP tool names in native mode API history (RooCodeInc#9559) * fix: preserve tool_use blocks in summary message during condensing with native tools (RooCodeInc#9582) * Add support for images api (RooCodeInc#9587) * Make it clear that BFL Flux 2 is free (RooCodeInc#9588) * Add BFL models to openrouter (RooCodeInc#9589) * chore: add changeset for v3.34.4 (RooCodeInc#9590) * Changeset version bump (RooCodeInc#9591) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: set native tools as default for minimax-m2 and claude-haiku-4.5 (RooCodeInc#9586) * feat: enable multiple native tool calls per turn with failure guardrails (RooCodeInc#9273) * feat: add Bedrock Opus 4.5 to global inference model list (RooCodeInc#9595) Co-authored-by: Roo Code <[email protected]> * fix: update API handler when toolProtocol changes (RooCodeInc#9599) * Make single file read only apply to xml tools (RooCodeInc#9600) * Revert "Add support for Roo Code Cloud as an embeddings provider" (RooCodeInc#9602) * feat(web-evals): enhance dashboard with dynamic tool columns and UX improvements (RooCodeInc#9592) Co-authored-by: Roo Code <[email protected]> * fix(webview): pass taskId to finishSubTask when canceling or deleting tasks * chore: add changeset for v3.34.5 (RooCodeInc#9603) * Changeset version bump (RooCodeInc#9604) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Feature/bedrock embeddings support (RooCodeInc#9475) * feat: add AWS Bedrock support for codebase indexing - Add bedrock as a new EmbedderProvider type - Add AWS Bedrock embedding model profiles (titan-embed-text models) - Create BedrockEmbedder class with support for Titan and Cohere models - Add Bedrock configuration support to config manager and interfaces - Update service factory to create BedrockEmbedder instances - Add comprehensive tests for BedrockEmbedder - Add localization strings for Bedrock support Closes RooCodeInc#8658 * fix: add missing bedrockOptions to loadConfiguration return type * Fix various issues that the original PR missed. * Remove debug logs * Rename AWS Bedrock -> Amazon Bedrock * Remove some 'as any's * Revert README changes * Add translations * More translations * Remove leftover code from a debugging session. * fix: add bedrock to codebaseIndexModelsSchema and update brace-expansion override - Add bedrock provider to codebaseIndexModelsSchema type definition to fix empty model dropdown in UI - Update pnpm override for brace-expansion from '>=2.0.2' to '^2.0.2' to resolve ESM/CommonJS compatibility issues * Improvements to AWS Bedrock embeddings support - Enhanced bedrock.ts embedder implementation - Added comprehensive test coverage in bedrock.spec.ts - Updated config-manager.ts for better Bedrock configuration handling - Improved service-factory.ts integration - Updated embeddingModels.ts with Bedrock models - Enhanced CodeIndexPopover.tsx UI for Bedrock options - Added auto-populate test for CodeIndexPopover - Updated pnpm-lock.yaml dependencies * Restore openrouter config * Remove debug log * Fix config-manager.spec.ts unit test. * Add translations for "optional" * Revert unnecessary change related to open ia embedder --------- Co-authored-by: Roo Code <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Smartsheet-JB-Brown <[email protected]> * fix: restore content undefined check in WriteToFileTool.handlePartial() (RooCodeInc#9614) * fix: exclude access_mcp_resource tool when MCP has no resources (RooCodeInc#9615) * fix: prevent model cache from persisting empty API responses (RooCodeInc#9623) * fix: update default settings for inline terminal and codebase indexing (RooCodeInc#9622) Co-authored-by: Roo Code <[email protected]> * feat(mistral): add native tool calling support (RooCodeInc#9625) * feat: wire MULTIPLE_NATIVE_TOOL_CALLS experiment to OpenAI parallel_tool_calls (RooCodeInc#9621) * feat(bedrock): allow global inference selection when cross-region is enabled (RooCodeInc#9616) Co-authored-by: Roo Code <[email protected]> * fix: defer new_task tool_result until subtask completes for native protocol (RooCodeInc#9628) * fix: convert line_ranges strings to lineRanges objects in native tool calls (RooCodeInc#9627) * fix: filter non-Anthropic content blocks before sending to Vertex API (RooCodeInc#9618) * Add fine grained tool streaming for OpenRouter Anthropic (RooCodeInc#9629) * Release v3.34.6 (RooCodeInc#9631) * Changeset version bump (RooCodeInc#9632) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: OpenRouter GPT-5 strict schema validation for read_file tool (RooCodeInc#9633) * fix: create parent directories early in write_to_file to prevent ENOENT errors (RooCodeInc#9640) * Fix openrouter tool calls (RooCodeInc#9642) * fix(claude-code): disable native tools and temperature support (RooCodeInc#9643) * Enable native tool calling for z.ai (RooCodeInc#9645) * Moonshot native tool call support (RooCodeInc#9646) * Support native tools in the anthropic provider (RooCodeInc#9644) Co-authored-by: Roo Code <[email protected]> * Add 'taking you to cloud' screen after provider welcome (RooCodeInc#9652) * chore: add changeset for v3.34.7 (RooCodeInc#9651) * Changeset version bump (RooCodeInc#9654) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * fix: race condition in new_task tool for native protocol (RooCodeInc#9655) The pendingNewTaskToolCallId was being set AFTER startSubtask() returned. However, startSubtask() contains a 500ms delay during which the subtask could complete. If the subtask completed during this window, completeSubtask() would be called before pendingNewTaskToolCallId was set, causing it to fall through to the XML protocol path and add a text message instead of a proper tool_result block, breaking the API conversation structure. This fix moves the pendingNewTaskToolCallId assignment to happen BEFORE calling startSubtask(), ensuring the ID is set before the subtask starts. If the subtask creation fails, the pending ID is cleared. * chore: add changeset for v3.34.8 (RooCodeInc#9657) * Changeset version bump (RooCodeInc#9658) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * feat: add model-specific tool customization via excludedTools and includedTools (RooCodeInc#9641) * feat: add model-specific tool customization via excludedTools and includedTools - Add excludedTools and includedTools to ModelInfo schema - Implement applyModelToolCustomization helper to filter tools based on model config - Integrate model tool filtering into filterNativeToolsForMode for native protocol - Add comprehensive tests for tool customization functionality - Wire up modelInfo through buildNativeToolsArray and Task.ts This allows providers to override which native tools are available on a per-model basis via MODEL_DEFAULTS, enabling better control over tool selection for models with specific needs. * feat: add customTools for opt-in only tools - Add customTools array to ToolGroupConfig for defining opt-in only tools - Update getToolsForMode() to exclude customTools from default tool set - Modify applyModelToolCustomization() to include customTools only via includedTools - Add tests for customTools functionality - Add comprehensive documentation with usage examples customTools allows defining tools that are NOT available by default, even when a mode includes their group. These tools are only available when explicitly included via a model's includedTools configuration. This enables: - Gradual rollout of experimental tools - Model-specific specialized capabilities - Safe experimentation without affecting default tool sets * Add assertions for customTools tests per review feedback * test: add tests for including customTools via includedTools * Update src/core/prompts/tools/__tests__/filter-tools-for-mode.spec.ts 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> * feat(web-evals): add task log viewing, export failed logs, and new run options (RooCodeInc#9637) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Metadata‑driven subtasks (no UI changes): automatic parent resume and single‑open safety (RooCodeInc#9090) * feat: add search_and_replace tool for batch text replacements (RooCodeInc#9549) Co-authored-by: daniel-lxs <[email protected]> * feat: enable native tool support for DeepSeek and Doubao models (RooCodeInc#9671) Add supportsNativeTools: true to DeepSeek and Doubao model definitions, enabling native OpenAI-compatible tool calling for these providers. Both providers already extend OpenAiHandler which has built-in support for native tools, so this change is all that's needed to enable the feature. * feat: add native tool support to Requesty provider (RooCodeInc#9672) - Import resolveToolProtocol and TOOL_PROTOCOL from @roo-code/types - Add tools and tool_choice to completion params when native protocol is enabled - Handle tool_call_partial chunks in streaming response - Add comprehensive tests for native tool support * Include tool format in environment details (RooCodeInc#9661) * feat(groq): enable native tool support for models that support function calling (RooCodeInc#9673) Co-authored-by: Matt Rubens <[email protected]> * feat: add native tools support for OpenAI-compatible providers (RooCodeInc#9676) Co-authored-by: Matt Rubens <[email protected]> * feat: enable native tool calls for Vertex Gemini models (RooCodeInc#9678) Add supportsNativeTools: true to all Gemini-based models in the Vertex provider. The VertexHandler extends GeminiHandler which already has full native tool handling logic implemented. Models updated: - gemini-3-pro-preview - gemini-2.5-flash-preview-05-20:thinking - gemini-2.5-flash-preview-05-20 - gemini-2.5-flash - gemini-2.5-flash-preview-04-17:thinking - gemini-2.5-flash-preview-04-17 - gemini-2.5-pro-preview-03-25 - gemini-2.5-pro-preview-05-06 - gemini-2.5-pro-preview-06-05 - gemini-2.5-pro - gemini-2.5-pro-exp-03-25 - gemini-2.0-pro-exp-02-05 - gemini-2.0-flash-001 - gemini-2.0-flash-lite-001 - gemini-2.0-flash-thinking-exp-01-21 - gemini-1.5-flash-002 - gemini-1.5-pro-002 - gemini-2.5-flash-lite-preview-06-17 * fix: display install count in millions instead of thousands (RooCodeInc#9677) Co-authored-by: Roo Code <[email protected]> * feat: add apply_patch native tool (RooCodeInc#9663) Co-authored-by: daniel-lxs <[email protected]> * feat: add debug buttons to view API and UI history (RooCodeInc#9684) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * test(workflow): update test expectations after removing run_test functionality * Add web-evals updates and kill run functionality (RooCodeInc#9681) Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: Roo Code <[email protected]> * Add Grok 4 Fast and Grok 4.1 Fast, plus xAI native tool calling (RooCodeInc#9690) * Add Grok 4 Fast and Grok 4.1 Fast * Add native tool calling support * Add native tool calling for deepinfra (RooCodeInc#9691) * fix(chat): correct message visibility condition filter * fix(utils): wrap os-name call in safe fallback for zgsm OS detection * refactor(core): clean up unused imports and improve file handling logic * refactor: adjust file limits and multipliers * ux: Improvements to the new, RCC Provider centric onboarding flow (RooCodeInc#9709) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * ux: Toolbar cleanup and settings consolidation (RooCodeInc#9710) Co-authored-by: Roo Code <[email protected]> * Update a couple provider labels (RooCodeInc#9711) Co-authored-by: Roo Code <[email protected]> * Release: v1.88.0 (RooCodeInc#9713) * Remove TabContent wrapper from Modes and MCP (RooCodeInc#9712) * fix: preserve tool_use blocks in summary for parallel tool calls (RooCodeInc#9714) Co-authored-by: huajiwuyan <[email protected]> * feat(chutes): detect native tool support from API supported_features (RooCodeInc#9715) Co-authored-by: Matt Rubens <[email protected]> * Add NTC support for Cerebras (RooCodeInc#9692) * Add native tools support to Unbound (RooCodeInc#9699) Co-authored-by: Roo Code <[email protected]> * Add native tool support for vercel ai gateway (RooCodeInc#9697) Co-authored-by: Roo Code <[email protected]> * Default grok code fast to native tools (RooCodeInc#9717) * Bedrock native tool calling (RooCodeInc#9698) * Support tool calling in native ollama provider (RooCodeInc#9696) Co-authored-by: Roo Code <[email protected]> * feat: add native tool support for LiteLLM provider (RooCodeInc#9719) * fix: prevent navigation buttons from wrapping on smaller screens (RooCodeInc#9721) Co-authored-by: Roo Code <[email protected]> * chore: add changeset for v3.35.0 (RooCodeInc#9724) * Changeset version bump (RooCodeInc#9725) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * chore: bump version to v1.89.0 (RooCodeInc#9718) * fix: flush pending tool results before task delegation (RooCodeInc#9726) When tools are called in parallel (e.g., update_todo_list + new_task), the tool results accumulate in userMessageContent but aren't saved to API history until all tools complete. When new_task triggers delegation, the parent is disposed before these pending results are saved, causing 400 errors when the parent resumes (missing tool_result for tool_use). This fix: - Adds flushPendingToolResultsToHistory() method in Task.ts that saves pending userMessageContent to API history - Calls this method in delegateParentAndOpenChild() before disposing the parent task - Safe for both native/XML protocols and sequential/parallel execution (returns early if there's nothing to flush) * Better IPC error logging (RooCodeInc#9727) * chore: add changeset for v3.35.1 (RooCodeInc#9728) * Changeset version bump (RooCodeInc#9729) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Pass app version to provider (RooCodeInc#9730) * Allow models to contain default temperature (RooCodeInc#9734) * Look for a tag in the Roo provider to default the model to native tool calling (RooCodeInc#9735) * Assume all LiteLLM models support native tools (RooCodeInc#9736) * chore: add changeset for v3.35.2 (RooCodeInc#9737) * Changeset version bump (RooCodeInc#9738) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Merge remote-tracking branch 'upstream/main' into roo-to-main * Switch to new welcome view (RooCodeInc#9741) * web: Homepage changes (RooCodeInc#9675) 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> * Add vendor confidentiality section to the system prompt for stealth models (RooCodeInc#9742) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * chore: add changeset for v3.35.3 (RooCodeInc#9743) * Changeset version bump (RooCodeInc#9745) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <[email protected]> * Refactor: Remove line_count parameter from write_to_file tool (RooCodeInc#9667) * fix: remove reasoning toggles for GLM-4.5 and GLM-4.6 on z.ai provider (RooCodeInc#9752) Co-authored-by: Roo Code <[email protected]> --------- Co-authored-by: Daniel <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]> Co-authored-by: daniel-lxs <[email protected]> Co-authored-by: Matt Rubens <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <[email protected]> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <[email protected]> Co-authored-by: John Richmond <[email protected]> Co-authored-by: Alex Ker <[email protected]> Co-authored-by: AlexKer <[email protected]> Co-authored-by: Seb Duerr <[email protected]> Co-authored-by: Bruno Bergher <[email protected]> Co-authored-by: George Goranov <[email protected]> Co-authored-by: Smartsheet-JB-Brown <[email protected]> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Silentflower <[email protected]> Co-authored-by: huajiwuyan <[email protected]>
(And remove the deprecated ollama provider)
Important
Enhance
NativeOllamaHandlerwith tool calling support and remove deprecatedOllamaHandler.NativeOllamaHandlerinnative-ollama.ts.OllamaHandlerand its tests (ollama.ts,ollama.spec.ts,ollama-timeout.spec.ts).native-ollama.spec.tsto test tool calling functionality, including cases where tools are included or excluded based on model support and protocol.ollama.test.tsto includesupportsNativeToolsin model parsing.OllamaHandlerexport fromindex.ts.supportsNativeToolstoollamaDefaultModelInfoinollama.ts.This description was created by
for dbe5411. You can customize this summary. It will automatically update as commits are pushed.