-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Capture more of OpenRouter's provider specific error details #10073
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
Re-reviewed the enhanced OpenRouter error handling. The property path issue has been addressed in commit b355d57.
Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
src/api/providers/openrouter.ts
Outdated
| const apiError = new ApiProviderError(errorMessage, this.providerName, modelId, "createMessage") | ||
| TelemetryService.instance.captureException(apiError) | ||
| throw handleOpenAIError(error, this.providerName) | ||
| // Check if error has OpenRouter-specific metadata.raw property |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This error handling logic is nearly identical to the one in completePrompt. Consider extracting it into a shared helper function to reduce duplication.
This comment was generated because it violated a code review rule: irule_tTqpIuNs8DV0QFGj.
src/api/providers/openrouter.ts
Outdated
|
|
||
| if (hasMetadataRaw) { | ||
| const openRouterError = error as OpenRouterErrorResponse | ||
| const rawErrorMessage = openRouterError.metadata?.raw || openRouterError.message |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This logic seems a little overly defensive - is it possible for the raw error to not be present if hasMetadataRaw is truthy?
src/api/providers/openrouter.ts
Outdated
| throw handleOpenAIError(error, this.providerName) | ||
| // Check if error has OpenRouter-specific metadata.raw property | ||
| const errorObj = error as any | ||
| const hasMetadataRaw = errorObj?.metadata?.raw |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The property path errorObj?.metadata?.raw differs from how handleOpenAIError accesses the same property ((error as any)?.error?.metadata?.raw). Based on the OpenAISdkError interface in telemetry.ts, SDK exceptions typically have metadata nested under error.error. If that's the case for OpenRouter SDK errors, this check would always be falsy and the enhanced error handling would never execute. Worth verifying the actual error structure from OpenRouter - you may need errorObj?.error?.metadata?.raw instead.
Fix it with Roo Code or mention @roomote and request a fix.
* 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 <mrubens@users.noreply.github.com> * feat: add native tools support for OpenAI-compatible providers (RooCodeInc#9676) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * 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 <roomote@roocode.com> * feat: add apply_patch native tool (RooCodeInc#9663) Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * 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 <mrubens@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> * 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 <roomote@roocode.com> * Update a couple provider labels (RooCodeInc#9711) Co-authored-by: Roo Code <roomote@roocode.com> * 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 <huajiwuyan@gmail.com> * feat(chutes): detect native tool support from API supported_features (RooCodeInc#9715) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Add NTC support for Cerebras (RooCodeInc#9692) * Add native tools support to Unbound (RooCodeInc#9699) Co-authored-by: Roo Code <roomote@roocode.com> * Add native tool support for vercel ai gateway (RooCodeInc#9697) Co-authored-by: Roo Code <roomote@roocode.com> * 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 <roomote@roocode.com> * 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 <roomote@roocode.com> * 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 <mrubens@users.noreply.github.com> * 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 <mrubens@users.noreply.github.com> * 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 <mrubens@users.noreply.github.com> * 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 <mrubens@users.noreply.github.com> * 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 <roomote@roocode.com> * fix: handle malformed native tool calls to prevent hanging (RooCodeInc#9758) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * chore: add changeset for v3.35.4 (RooCodeInc#9763) * Changeset version bump (RooCodeInc#9764) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Convert the Roo provider tools for OpenAI (RooCodeInc#9769) * Update the evals keygen command (RooCodeInc#9754) * feat: Add provider routing selection for OpenRouter embeddings (RooCodeInc#9144) (RooCodeInc#9693) Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local> * ux: Updates to CloudView (RooCodeInc#9776) * refactor: remove TabHeader and onDone callback from CloudView - Removed TabHeader component from CloudView as it is no longer needed - Removed onDone prop from CloudView component definition and usage - Updated all test files to reflect the removal of onDone prop - Kept Button import that was accidentally removed initially * Updates upsell copy to reflect today's product * Update webview-ui/src/components/cloud/CloudView.tsx Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update webview-ui/src/i18n/locales/ko/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update webview-ui/src/i18n/locales/zh-CN/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Test fixes --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update model key for minimax in MODEL_DEFAULTS (RooCodeInc#9778) Co-authored-by: Roo Code <roomote@roocode.com> * Release v3.35.5 (RooCodeInc#9781) * Changeset version bump (RooCodeInc#9783) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Use search_and_replace for minimax (RooCodeInc#9780) * fix: restore context when rewinding after condense (RooCodeInc#8295) (RooCodeInc#9665) * fix: remove omission detection logic to fix false positives (RooCodeInc#9787) Co-authored-by: Roo Code <roomote@roocode.com> * Fix Vercel AI Gateway model fetching (RooCodeInc#9791) Co-authored-by: Roo Code <roomote@roocode.com> * refactor: remove insert_content tool (RooCodeInc#9751) Co-authored-by: Roo Code <roomote@roocode.com> * feat: add reasoning_details support to Roo provider (RooCodeInc#9796) - Add currentReasoningDetails accumulator to track reasoning details - Add getReasoningDetails() method to expose accumulated details - Handle reasoning_details array format in streaming responses - Accumulate reasoning details by type-index key - Support reasoning.text, reasoning.summary, and reasoning.encrypted types - Maintain backward compatibility with legacy reasoning format - Follows same pattern as OpenRouter provider Co-authored-by: Roo Code <roomote@roocode.com> * chore: hide parallel tool calls experiment and disable feature (RooCodeInc#9798) * Update next.js (RooCodeInc#9799) * Fix the download count on the homepage (RooCodeInc#9807) * Default to native tools for all models in the Roo provider (RooCodeInc#9811) Co-authored-by: Roo Code <roomote@roocode.com> * Fix/cerebras conservative max tokens (RooCodeInc#9804) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Release v3.36.0 (RooCodeInc#9814) * Changeset version bump (RooCodeInc#9828) 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 * ux: improved error messages and documentation links (RooCodeInc#9777) * Minor ui tweaks * Basic setup for richer API request errors * Better errors messages and contact link * i18n * Update webview-ui/src/i18n/locales/en/chat.json Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Update webview-ui/src/i18n/locales/en/chat.json Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Empty better than null * Update webview-ui/src/i18n/locales/nl/chat.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * i18n * Start retryAttempt at 1 * Reverse retryAttempt number, just ommit it from the message --------- 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> * web: New Pricing Page (RooCodeInc#9821) * Removes Pro, restructures pricing page * Solves provider/credits * Update apps/web-roo-code/src/app/pricing/page.tsx Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Updates agent landing pages to not mention a trial that doesn't exist * Updates agent-specific landing pages to reflect new home and trial * Indicate the agent landing page the user came from * Clean up the carousel --------- Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Ignore input to the execa terminal process (RooCodeInc#9827) * fix: Overly round follow-up question suggestions (RooCodeInc#9829) Not that rounded * Always enabled reasoning for models that require it (RooCodeInc#9836) * ChatView: smoother stick-to-bottom during streaming (RooCodeInc#8999) * feat: add symlink support for slash commands in .roo/commands folder (RooCodeInc#9838) Co-authored-by: Roo Code <roomote@roocode.com> * fix: sanitize reasoning_details IDs to remove invalid characters (RooCodeInc#9839) * feat(evals-ui): Add filtering, bulk delete, tool consolidation, and run notes (RooCodeInc#9837) * Be safer about large file reads (RooCodeInc#9843) validateFileTokenBudget wasn't being called considering the output budget. * Revert "fix: sanitize reasoning_details IDs to remove invalid characters" (RooCodeInc#9846) * Merge remote-tracking branch 'upstream/main' into roo-to-main * Exclude the ID from Roo reasoning details (RooCodeInc#9847) * fix: prevent cascading truncation loop by only truncating visible messages (RooCodeInc#9844) * FIX + feat: add MessageManager layer for centralized history coordination (RooCodeInc#9842) * feat(web-evals): add multi-model launch and UI improvements (RooCodeInc#9845) Co-authored-by: Roo Code <roomote@roocode.com> * Revert "Exclude the ID from Roo reasoning details" (RooCodeInc#9850) * fix: handle unknown/invalid native tool calls to prevent extension freeze (RooCodeInc#9834) * feat: add gpt-5.1-codex-max model to OpenAI provider (RooCodeInc#9848) * Delete .changeset/symlink-commands.md * Release v3.36.1 (RooCodeInc#9851) * Changeset version bump (RooCodeInc#9840) 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 dynamic settings support for Roo models from API (RooCodeInc#9852) * chore: restrict gpt-5 tool set to apply_patch (RooCodeInc#9853) * Fix chutes model fetching (RooCodeInc#9854) * Release v3.36.2 (RooCodeInc#9855) * Changeset version bump (RooCodeInc#9856) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Better error logs for parseToolCall exceptions (RooCodeInc#9857) * (update): Add DeepSeek V3-2 Support for Baseten Provider (RooCodeInc#9861) Co-authored-by: AlexKer <AlexKer@users.noreply.github.com> * web: Product pages (RooCodeInc#9865) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * fix: sanitize removed/invalid API providers to prevent infinite loop (RooCodeInc#9869) * Update xAI models catalog (RooCodeInc#9872) * refactor: decouple tools from system prompt (RooCodeInc#9784) * Stop making count_tokens requests (RooCodeInc#9884) * Default to using native tools when supported on openrouter (RooCodeInc#9878) * feat: change defaultToolProtocol default from xml to native (RooCodeInc#9892) * feat: change defaultToolProtocol to default to native instead of xml * fix: add missing getMcpHub mock to Subtask Rate Limiting tests --------- Co-authored-by: Roo Code <roomote@roocode.com> * Refactor: Unified context-management architecture with improved UX (RooCodeInc#9795) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Make eval runs deleteable (RooCodeInc#9909) * fix: add Kimi, MiniMax, and Qwen model configurations for Bedrock (RooCodeInc#9905) * fix: add Kimi, MiniMax, and Qwen model configurations for Bedrock - Add moonshot.kimi-k2-thinking with 32K max tokens and 256K context - Add minimax.minimax-m2 with 16K max tokens and 230K context - Add qwen.qwen3-next-80b-a3b with 8K max tokens and 262K context - Add qwen.qwen3-coder-480b-a35b-v1:0 with 8K max tokens and 262K context All models configured with native tool support and appropriate pricing. Fixes RooCodeInc#9902 * fix: add preserveReasoning flag and update Kimi K2 context window - Added preserveReasoning: true to moonshot.kimi-k2-thinking model - Added preserveReasoning: true to minimax.minimax-m2 model - Updated Kimi K2 context window from 256_000 to 262_144 These changes ensure: 1. Reasoning traces are properly preserved for both models 2. Roo correctly recognizes task completion 3. Tool calls within reasoning traces are handled appropriately 4. Context window matches AWS Console specification * fix: update MiniMax M2 context window to 196_608 for Bedrock Based on AWS CLI testing, the actual context window limit for MiniMax M2 on Bedrock is 196,608 tokens, not 230,000 as initially configured. * Update packages/types/src/providers/bedrock.ts Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * fix: use foreground color for context-management icons (RooCodeInc#9912) * feat: add xhigh reasoning effort for gpt-5.1-codex-max (RooCodeInc#9900) * feat: add xhigh reasoning effort for gpt-5.1-codex-max * fix: Address openai-native.spec.ts test failure * chore: Localisation of 'Extra high' * chore: revert unrelated CustomModesManager refactoring --------- Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * feat: add search_replace native tool for single-replacement operations (RooCodeInc#9918) Adds a new search_replace tool that performs a single search and replace operation on a file, requiring the old_string to uniquely identify the target text with 3-5 lines of context. Parameters: - file_path: Path to file (relative or absolute) - old_string: Text to find (must be unique in file) - new_string: Replacement text (must differ from old_string) * Improve cloud job error logging for RCC provider errors (RooCodeInc#9924) * feat: configure tool preferences for xAI models (RooCodeInc#9923) * fix: process finish_reason to emit tool_call_end events (RooCodeInc#9927) * fix: suppress 'ask promise was ignored' error in handleError (RooCodeInc#9914) * fix: exclude apply_diff from native tools when diffEnabled is false (RooCodeInc#9920) Co-authored-by: Roo Code <roomote@roocode.com> * Try to make OpenAI errors more useful (RooCodeInc#9639) * refactor: consolidate ThinkingBudget components and fix disable handling (RooCodeInc#9930) * Add timeout to OpenAI Compatible Provider Client (RooCodeInc#9898) * fix: add finish_reason processing to xai.ts provider (RooCodeInc#9929) * Remove defaultTemperature from Roo provider configuration (RooCodeInc#9932) Co-authored-by: Roo Code <roomote@roocode.com> * feat: forbid time estimates in architect mode (RooCodeInc#9931) Co-authored-by: Roo Code <roomote@roocode.com> * feat: streaming tool stats + token usage throttling (RooCodeInc#9926) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: Make Architect save to `/plans` and gitignore it (RooCodeInc#9944) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> * feat: add announcement support CTA and social icons (RooCodeInc#9945) * fix: display actual API error message instead of generic text on retry (RooCodeInc#9954) * feat(roo): add versioned settings support with minPluginVersion gating (RooCodeInc#9934) * Revert "feat: change defaultToolProtocol default from xml to native" (RooCodeInc#9956) * fix: return undefined instead of 0 for disabled API timeout (RooCodeInc#9960) * feat(deepseek): update DeepSeek models to V3.2 with new pricing (RooCodeInc#9962) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Add a way to save screenshots from the browser tool (RooCodeInc#9963) * Add a way to save screenshots from the browser tool * fix: use cross-platform paths in BrowserSession screenshot tests * fix: validate screenshot paths to prevent filesystem escape --------- Co-authored-by: Roo Code <roomote@roocode.com> * Tweaks to baseten model definitions (RooCodeInc#9866) * fix: always show tool protocol selector for openai-compatible (RooCodeInc#9966) * feat: add API error telemetry to OpenRouter provider (RooCodeInc#9953) Co-authored-by: Roo Code <roomote@roocode.com> * fix: validate and fix tool_result IDs before API requests (RooCodeInc#9952) Co-authored-by: cte <cestreich@gmail.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * fix: respect explicit supportsReasoningEffort array values (RooCodeInc#9970) * v3.36.3 (RooCodeInc#9972) * fix(activate): unify webview panel identifier to use consistent tabPanelId * feat(gemini): add minimal and medium reasoning effort levels (RooCodeInc#9973) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: cte <cestreich@gmail.com> * Delete changeset files (RooCodeInc#9977) * Add missing release notes for v3.36.3 (RooCodeInc#9979) * feat: add error details modal with on-demand display (RooCodeInc#9985) * feat: add error details modal with on-demand display - Add errorDetails prop to ErrorRow component - Show Info icon on hover in error header when errorDetails is provided - Display detailed error message in modal dialog on Info icon click - Add Copy to Clipboard button in error details modal - Update generic error case to show localized message with details on demand - Add i18n translations for error details UI * UI Tweaks * Properly handles error details * i18n * Lighter visual treatment for errors --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> * Fix: Correct TODO list display order in chat view (ROO-107) (RooCodeInc#9991) Co-authored-by: Roo Code <roomote@roocode.com> * fix: prevent premature rawChunkTracker clearing for MCP tools (RooCodeInc#9993) * fix: filter out 429 rate limit errors from API error telemetry (RooCodeInc#9987) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: cte <cestreich@gmail.com> * Release v3.36.4 (RooCodeInc#9994) * Changeset version bump (RooCodeInc#9995) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * feat(telemetry): add app version to exception captures and filter 402 errors (RooCodeInc#9996) Co-authored-by: cte <cestreich@gmail.com> * Remove Glama provider (RooCodeInc#9801) * @roo-code/types v1.90.0 (RooCodeInc#9998) * fix: apply versioned settings on nightly builds (RooCodeInc#9997) * feat: add toggle for Enter key behavior in chat input (RooCodeInc#10002) * chore: remove list_code_definition_names tool (RooCodeInc#10005) Co-authored-by: cte <cestreich@gmail.com> * Update roomotes.yml (RooCodeInc#10008) * fix: add general API endpoints for Z.ai provider (RooCodeInc#9894) Co-authored-by: Roo Code <roomote@roocode.com> * fix: handle empty Gemini responses and reasoning loops (RooCodeInc#10007) * fix: add missing tool_result blocks to prevent API errors (RooCodeInc#10015) * feat: add gpt-5.2 model to openai-native provider (RooCodeInc#10024) * test: update built-in commands count to 9 * fix: filter orphaned tool_results when more results than tool_uses (RooCodeInc#10027) * Release v3.36.5 (RooCodeInc#10029) * Changeset version bump (RooCodeInc#10032) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * fix: merge settings and versionedSettings for Roo provider models (RooCodeInc#10030) * Revert "fix: merge settings and versionedSettings for Roo provider models" (RooCodeInc#10034) * Revert the 3.6.5 release (we halted it) (RooCodeInc#10036) * Release v3.36.5 (RooCodeInc#10037) * Changeset version bump (RooCodeInc#10038) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * test: adjust terminal count limits in TerminalRegistry tests * ux: improve auto-approve timer visibility in follow-up suggestions (RooCodeInc#10048) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> * fix: cancel auto-approval timeout when user starts typing (RooCodeInc#9937) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: extract raw error message from OpenRouter metadata (RooCodeInc#10039) OpenRouter wraps upstream provider errors in a generic message but includes the actual error in metadata.raw. This change: - Adds OpenRouterErrorResponse interface for proper typing - Creates handleStreamingError() helper for DRY error handling - Extracts metadata.raw for actionable error messages in PostHog - Includes nested error structure so getErrorMessage() can extract raw message Before: PostHog receives '400 Provider returned error' (generic) After: PostHog receives 'Model xyz not found' (actionable) This enables proper error tracking and debugging via PostHog telemetry. * feat: add tool alias support for model-specific tool customization (RooCodeInc#9989) Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * fix: show tool protocol dropdown for LiteLLM provider (RooCodeInc#10053) * feat: add WorkspaceTaskVisibility type for organization cloud settings (RooCodeInc#10020) * feat: add WorkspaceTaskVisibility type and workspaceTaskVisibility property to OrganizationCloudSettings * refactor: create workspaceTaskVisibilitySchema and derive WorkspaceTaskVisibility type from it --------- Co-authored-by: Roo Code <roomote@roocode.com> * Release: v1.91.0 (RooCodeInc#10055) chore: bump version to v1.91.0 * feat: sanitize MCP server/tool names for API compatibility (RooCodeInc#10054) * Release v3.36.6 (RooCodeInc#10057) * Changeset version bump (RooCodeInc#10058) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * fix: use JavaScript-based hover for checkpoint menu visibility (RooCodeInc#10056) * feat: remove auto-approve toggles for to-do and retry actions (RooCodeInc#10062) * feat(openrouter): add improvements to openrouter provider (RooCodeInc#10082) * feat: Add Amazon Nova 2 Lite model to Bedrock provider (RooCodeInc#9830) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: add AWS Bedrock service tier support (RooCodeInc#9955) 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> * Capture more of OpenRouter's provider specific error details (RooCodeInc#10073) * Capture more of OpenRouter's provider specific error details * Actually match the openrouter structure * feat(web-evals): improve run logs and formatters (RooCodeInc#10081) --------- Co-authored-by: Daniel <57051444+daniel-lxs@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: Roo Code <roomote@roocode.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> 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: Bruno Bergher <bruno@roocode.com> Co-authored-by: Silentflower <33809253+SilentFlower@users.noreply.github.com> Co-authored-by: huajiwuyan <huajiwuyan@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> Co-authored-by: SannidhyaSah <sah_sannidhya@outlook.com> Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local> Co-authored-by: John Richmond <5629+jr@users.noreply.github.com> Co-authored-by: Seb Duerr <sebastian.duerr@cerebras.net> Co-authored-by: Alex Ker <thealexker@gmail.com> Co-authored-by: AlexKer <AlexKer@users.noreply.github.com> Co-authored-by: Andrew Ginns <ginns.aw@gmail.com> Co-authored-by: Dennise Bartlett <bartlett.dc.1@gmail.com>
- Import TelemetryService from @roo-code/telemetry - Import ApiProviderError from @roo-code/types - Capture exceptions to telemetry in createMessage() catch block - Capture exceptions to telemetry in completePrompt() catch block - Add tests verifying telemetry capture on errors Follows the same pattern as PR #10073 for OpenRouter.
- Import TelemetryService and ApiProviderError - Add providerName property to MistralHandler class - Wrap createMessage() client.chat.stream() call in try/catch with telemetry capture - Add telemetry capture in completePrompt() catch block - Add tests to verify telemetry is called on error for both methods Follows the pattern established in PR #10073 for OpenRouter provider.
* 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 <roomote@roocode.com> * Update a couple provider labels (RooCodeInc#9711) Co-authored-by: Roo Code <roomote@roocode.com> * 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 <huajiwuyan@gmail.com> * feat(chutes): detect native tool support from API supported_features (RooCodeInc#9715) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Add NTC support for Cerebras (RooCodeInc#9692) * Add native tools support to Unbound (RooCodeInc#9699) Co-authored-by: Roo Code <roomote@roocode.com> * Add native tool support for vercel ai gateway (RooCodeInc#9697) Co-authored-by: Roo Code <roomote@roocode.com> * 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 <roomote@roocode.com> * 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 <roomote@roocode.com> * 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 <mrubens@users.noreply.github.com> * 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 <mrubens@users.noreply.github.com> * 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 <mrubens@users.noreply.github.com> * 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 <mrubens@users.noreply.github.com> * 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 <roomote@roocode.com> * fix: handle malformed native tool calls to prevent hanging (RooCodeInc#9758) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * chore: add changeset for v3.35.4 (RooCodeInc#9763) * Changeset version bump (RooCodeInc#9764) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Convert the Roo provider tools for OpenAI (RooCodeInc#9769) * Update the evals keygen command (RooCodeInc#9754) * feat: Add provider routing selection for OpenRouter embeddings (RooCodeInc#9144) (RooCodeInc#9693) Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local> * ux: Updates to CloudView (RooCodeInc#9776) * refactor: remove TabHeader and onDone callback from CloudView - Removed TabHeader component from CloudView as it is no longer needed - Removed onDone prop from CloudView component definition and usage - Updated all test files to reflect the removal of onDone prop - Kept Button import that was accidentally removed initially * Updates upsell copy to reflect today's product * Update webview-ui/src/components/cloud/CloudView.tsx Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update webview-ui/src/i18n/locales/ko/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update webview-ui/src/i18n/locales/zh-CN/cloud.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Test fixes --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update model key for minimax in MODEL_DEFAULTS (RooCodeInc#9778) Co-authored-by: Roo Code <roomote@roocode.com> * Release v3.35.5 (RooCodeInc#9781) * Changeset version bump (RooCodeInc#9783) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Use search_and_replace for minimax (RooCodeInc#9780) * fix: restore context when rewinding after condense (RooCodeInc#8295) (RooCodeInc#9665) * fix: remove omission detection logic to fix false positives (RooCodeInc#9787) Co-authored-by: Roo Code <roomote@roocode.com> * Fix Vercel AI Gateway model fetching (RooCodeInc#9791) Co-authored-by: Roo Code <roomote@roocode.com> * refactor: remove insert_content tool (RooCodeInc#9751) Co-authored-by: Roo Code <roomote@roocode.com> * feat: add reasoning_details support to Roo provider (RooCodeInc#9796) - Add currentReasoningDetails accumulator to track reasoning details - Add getReasoningDetails() method to expose accumulated details - Handle reasoning_details array format in streaming responses - Accumulate reasoning details by type-index key - Support reasoning.text, reasoning.summary, and reasoning.encrypted types - Maintain backward compatibility with legacy reasoning format - Follows same pattern as OpenRouter provider Co-authored-by: Roo Code <roomote@roocode.com> * chore: hide parallel tool calls experiment and disable feature (RooCodeInc#9798) * Update next.js (RooCodeInc#9799) * Fix the download count on the homepage (RooCodeInc#9807) * Default to native tools for all models in the Roo provider (RooCodeInc#9811) Co-authored-by: Roo Code <roomote@roocode.com> * Fix/cerebras conservative max tokens (RooCodeInc#9804) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Release v3.36.0 (RooCodeInc#9814) * Changeset version bump (RooCodeInc#9828) 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 * ux: improved error messages and documentation links (RooCodeInc#9777) * Minor ui tweaks * Basic setup for richer API request errors * Better errors messages and contact link * i18n * Update webview-ui/src/i18n/locales/en/chat.json Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Update webview-ui/src/i18n/locales/en/chat.json Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Empty better than null * Update webview-ui/src/i18n/locales/nl/chat.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * i18n * Start retryAttempt at 1 * Reverse retryAttempt number, just ommit it from the message --------- 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> * web: New Pricing Page (RooCodeInc#9821) * Removes Pro, restructures pricing page * Solves provider/credits * Update apps/web-roo-code/src/app/pricing/page.tsx Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Updates agent landing pages to not mention a trial that doesn't exist * Updates agent-specific landing pages to reflect new home and trial * Indicate the agent landing page the user came from * Clean up the carousel --------- Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Ignore input to the execa terminal process (RooCodeInc#9827) * fix: Overly round follow-up question suggestions (RooCodeInc#9829) Not that rounded * Always enabled reasoning for models that require it (RooCodeInc#9836) * ChatView: smoother stick-to-bottom during streaming (RooCodeInc#8999) * feat: add symlink support for slash commands in .roo/commands folder (RooCodeInc#9838) Co-authored-by: Roo Code <roomote@roocode.com> * fix: sanitize reasoning_details IDs to remove invalid characters (RooCodeInc#9839) * feat(evals-ui): Add filtering, bulk delete, tool consolidation, and run notes (RooCodeInc#9837) * Be safer about large file reads (RooCodeInc#9843) validateFileTokenBudget wasn't being called considering the output budget. * Revert "fix: sanitize reasoning_details IDs to remove invalid characters" (RooCodeInc#9846) * Merge remote-tracking branch 'upstream/main' into roo-to-main * Exclude the ID from Roo reasoning details (RooCodeInc#9847) * fix: prevent cascading truncation loop by only truncating visible messages (RooCodeInc#9844) * FIX + feat: add MessageManager layer for centralized history coordination (RooCodeInc#9842) * feat(web-evals): add multi-model launch and UI improvements (RooCodeInc#9845) Co-authored-by: Roo Code <roomote@roocode.com> * Revert "Exclude the ID from Roo reasoning details" (RooCodeInc#9850) * fix: handle unknown/invalid native tool calls to prevent extension freeze (RooCodeInc#9834) * feat: add gpt-5.1-codex-max model to OpenAI provider (RooCodeInc#9848) * Delete .changeset/symlink-commands.md * Release v3.36.1 (RooCodeInc#9851) * Changeset version bump (RooCodeInc#9840) 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 dynamic settings support for Roo models from API (RooCodeInc#9852) * chore: restrict gpt-5 tool set to apply_patch (RooCodeInc#9853) * Fix chutes model fetching (RooCodeInc#9854) * Release v3.36.2 (RooCodeInc#9855) * Changeset version bump (RooCodeInc#9856) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * Better error logs for parseToolCall exceptions (RooCodeInc#9857) * (update): Add DeepSeek V3-2 Support for Baseten Provider (RooCodeInc#9861) Co-authored-by: AlexKer <AlexKer@users.noreply.github.com> * web: Product pages (RooCodeInc#9865) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * fix: sanitize removed/invalid API providers to prevent infinite loop (RooCodeInc#9869) * Update xAI models catalog (RooCodeInc#9872) * refactor: decouple tools from system prompt (RooCodeInc#9784) * Stop making count_tokens requests (RooCodeInc#9884) * Default to using native tools when supported on openrouter (RooCodeInc#9878) * feat: change defaultToolProtocol default from xml to native (RooCodeInc#9892) * feat: change defaultToolProtocol to default to native instead of xml * fix: add missing getMcpHub mock to Subtask Rate Limiting tests --------- Co-authored-by: Roo Code <roomote@roocode.com> * Refactor: Unified context-management architecture with improved UX (RooCodeInc#9795) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Make eval runs deleteable (RooCodeInc#9909) * fix: add Kimi, MiniMax, and Qwen model configurations for Bedrock (RooCodeInc#9905) * fix: add Kimi, MiniMax, and Qwen model configurations for Bedrock - Add moonshot.kimi-k2-thinking with 32K max tokens and 256K context - Add minimax.minimax-m2 with 16K max tokens and 230K context - Add qwen.qwen3-next-80b-a3b with 8K max tokens and 262K context - Add qwen.qwen3-coder-480b-a35b-v1:0 with 8K max tokens and 262K context All models configured with native tool support and appropriate pricing. Fixes RooCodeInc#9902 * fix: add preserveReasoning flag and update Kimi K2 context window - Added preserveReasoning: true to moonshot.kimi-k2-thinking model - Added preserveReasoning: true to minimax.minimax-m2 model - Updated Kimi K2 context window from 256_000 to 262_144 These changes ensure: 1. Reasoning traces are properly preserved for both models 2. Roo correctly recognizes task completion 3. Tool calls within reasoning traces are handled appropriately 4. Context window matches AWS Console specification * fix: update MiniMax M2 context window to 196_608 for Bedrock Based on AWS CLI testing, the actual context window limit for MiniMax M2 on Bedrock is 196,608 tokens, not 230,000 as initially configured. * Update packages/types/src/providers/bedrock.ts Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * fix: use foreground color for context-management icons (RooCodeInc#9912) * feat: add xhigh reasoning effort for gpt-5.1-codex-max (RooCodeInc#9900) * feat: add xhigh reasoning effort for gpt-5.1-codex-max * fix: Address openai-native.spec.ts test failure * chore: Localisation of 'Extra high' * chore: revert unrelated CustomModesManager refactoring --------- Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * feat: add search_replace native tool for single-replacement operations (RooCodeInc#9918) Adds a new search_replace tool that performs a single search and replace operation on a file, requiring the old_string to uniquely identify the target text with 3-5 lines of context. Parameters: - file_path: Path to file (relative or absolute) - old_string: Text to find (must be unique in file) - new_string: Replacement text (must differ from old_string) * Improve cloud job error logging for RCC provider errors (RooCodeInc#9924) * feat: configure tool preferences for xAI models (RooCodeInc#9923) * fix: process finish_reason to emit tool_call_end events (RooCodeInc#9927) * fix: suppress 'ask promise was ignored' error in handleError (RooCodeInc#9914) * fix: exclude apply_diff from native tools when diffEnabled is false (RooCodeInc#9920) Co-authored-by: Roo Code <roomote@roocode.com> * Try to make OpenAI errors more useful (RooCodeInc#9639) * refactor: consolidate ThinkingBudget components and fix disable handling (RooCodeInc#9930) * Add timeout to OpenAI Compatible Provider Client (RooCodeInc#9898) * fix: add finish_reason processing to xai.ts provider (RooCodeInc#9929) * Remove defaultTemperature from Roo provider configuration (RooCodeInc#9932) Co-authored-by: Roo Code <roomote@roocode.com> * feat: forbid time estimates in architect mode (RooCodeInc#9931) Co-authored-by: Roo Code <roomote@roocode.com> * feat: streaming tool stats + token usage throttling (RooCodeInc#9926) Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: Make Architect save to `/plans` and gitignore it (RooCodeInc#9944) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> * feat: add announcement support CTA and social icons (RooCodeInc#9945) * fix: display actual API error message instead of generic text on retry (RooCodeInc#9954) * feat(roo): add versioned settings support with minPluginVersion gating (RooCodeInc#9934) * Revert "feat: change defaultToolProtocol default from xml to native" (RooCodeInc#9956) * fix: return undefined instead of 0 for disabled API timeout (RooCodeInc#9960) * feat(deepseek): update DeepSeek models to V3.2 with new pricing (RooCodeInc#9962) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Add a way to save screenshots from the browser tool (RooCodeInc#9963) * Add a way to save screenshots from the browser tool * fix: use cross-platform paths in BrowserSession screenshot tests * fix: validate screenshot paths to prevent filesystem escape --------- Co-authored-by: Roo Code <roomote@roocode.com> * Tweaks to baseten model definitions (RooCodeInc#9866) * fix: always show tool protocol selector for openai-compatible (RooCodeInc#9966) * feat: add API error telemetry to OpenRouter provider (RooCodeInc#9953) Co-authored-by: Roo Code <roomote@roocode.com> * fix: validate and fix tool_result IDs before API requests (RooCodeInc#9952) Co-authored-by: cte <cestreich@gmail.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * fix: respect explicit supportsReasoningEffort array values (RooCodeInc#9970) * v3.36.3 (RooCodeInc#9972) * fix(activate): unify webview panel identifier to use consistent tabPanelId * feat(gemini): add minimal and medium reasoning effort levels (RooCodeInc#9973) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: cte <cestreich@gmail.com> * Delete changeset files (RooCodeInc#9977) * Add missing release notes for v3.36.3 (RooCodeInc#9979) * feat: add error details modal with on-demand display (RooCodeInc#9985) * feat: add error details modal with on-demand display - Add errorDetails prop to ErrorRow component - Show Info icon on hover in error header when errorDetails is provided - Display detailed error message in modal dialog on Info icon click - Add Copy to Clipboard button in error details modal - Update generic error case to show localized message with details on demand - Add i18n translations for error details UI * UI Tweaks * Properly handles error details * i18n * Lighter visual treatment for errors --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> * Fix: Correct TODO list display order in chat view (ROO-107) (RooCodeInc#9991) Co-authored-by: Roo Code <roomote@roocode.com> * fix: prevent premature rawChunkTracker clearing for MCP tools (RooCodeInc#9993) * fix: filter out 429 rate limit errors from API error telemetry (RooCodeInc#9987) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: cte <cestreich@gmail.com> * Release v3.36.4 (RooCodeInc#9994) * Changeset version bump (RooCodeInc#9995) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * feat(telemetry): add app version to exception captures and filter 402 errors (RooCodeInc#9996) Co-authored-by: cte <cestreich@gmail.com> * Remove Glama provider (RooCodeInc#9801) * @roo-code/types v1.90.0 (RooCodeInc#9998) * fix: apply versioned settings on nightly builds (RooCodeInc#9997) * feat: add toggle for Enter key behavior in chat input (RooCodeInc#10002) * chore: remove list_code_definition_names tool (RooCodeInc#10005) Co-authored-by: cte <cestreich@gmail.com> * Update roomotes.yml (RooCodeInc#10008) * fix: add general API endpoints for Z.ai provider (RooCodeInc#9894) Co-authored-by: Roo Code <roomote@roocode.com> * fix: handle empty Gemini responses and reasoning loops (RooCodeInc#10007) * fix: add missing tool_result blocks to prevent API errors (RooCodeInc#10015) * feat: add gpt-5.2 model to openai-native provider (RooCodeInc#10024) * test: update built-in commands count to 9 * fix: filter orphaned tool_results when more results than tool_uses (RooCodeInc#10027) * Release v3.36.5 (RooCodeInc#10029) * Changeset version bump (RooCodeInc#10032) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * fix: merge settings and versionedSettings for Roo provider models (RooCodeInc#10030) * Revert "fix: merge settings and versionedSettings for Roo provider models" (RooCodeInc#10034) * Revert the 3.6.5 release (we halted it) (RooCodeInc#10036) * Release v3.36.5 (RooCodeInc#10037) * Changeset version bump (RooCodeInc#10038) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * test: adjust terminal count limits in TerminalRegistry tests * ux: improve auto-approve timer visibility in follow-up suggestions (RooCodeInc#10048) Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> * fix: cancel auto-approval timeout when user starts typing (RooCodeInc#9937) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * fix: extract raw error message from OpenRouter metadata (RooCodeInc#10039) OpenRouter wraps upstream provider errors in a generic message but includes the actual error in metadata.raw. This change: - Adds OpenRouterErrorResponse interface for proper typing - Creates handleStreamingError() helper for DRY error handling - Extracts metadata.raw for actionable error messages in PostHog - Includes nested error structure so getErrorMessage() can extract raw message Before: PostHog receives '400 Provider returned error' (generic) After: PostHog receives 'Model xyz not found' (actionable) This enables proper error tracking and debugging via PostHog telemetry. * feat: add tool alias support for model-specific tool customization (RooCodeInc#9989) Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> * fix: show tool protocol dropdown for LiteLLM provider (RooCodeInc#10053) * feat: add WorkspaceTaskVisibility type for organization cloud settings (RooCodeInc#10020) * feat: add WorkspaceTaskVisibility type and workspaceTaskVisibility property to OrganizationCloudSettings * refactor: create workspaceTaskVisibilitySchema and derive WorkspaceTaskVisibility type from it --------- Co-authored-by: Roo Code <roomote@roocode.com> * Release: v1.91.0 (RooCodeInc#10055) chore: bump version to v1.91.0 * feat: sanitize MCP server/tool names for API compatibility (RooCodeInc#10054) * Release v3.36.6 (RooCodeInc#10057) * Changeset version bump (RooCodeInc#10058) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> * fix: use JavaScript-based hover for checkpoint menu visibility (RooCodeInc#10056) * feat: remove auto-approve toggles for to-do and retry actions (RooCodeInc#10062) * feat(openrouter): add improvements to openrouter provider (RooCodeInc#10082) * feat: Add Amazon Nova 2 Lite model to Bedrock provider (RooCodeInc#9830) Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> * feat: add AWS Bedrock service tier support (RooCodeInc#9955) 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> * Capture more of OpenRouter's provider specific error details (RooCodeInc#10073) * Capture more of OpenRouter's provider specific error details * Actually match the openrouter structure * feat(web-evals): improve run logs and formatters (RooCodeInc#10081) * Move isToolAllowedForMode out of shared directory (RooCodeInc#10089) * chore: add changeset for v3.36.7 (RooCodeInc#10091) * Changeset version bump (RooCodeInc#10092) 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: prevent duplicate MCP tools error by deduplicating servers at source (RooCodeInc#10096) * feat: add metadata to error details dialog (RooCodeInc#10050) * feat: add metadata to error details dialog - Prepends extension version, provider, model, and repository info to error details - Helps users provide better bug reports with context - Uses useExtensionState and useSelectedModel hooks for data * Tweaks --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Bruno Bergher <bruno@roocode.com> * web: Fixes link to provider pricing page (RooCodeInc#10107) * feat(read-file): implement incremental token-budgeted file reading (RooCodeInc#10052) * Add config to control public sharing (RooCodeInc#10105) Co-authored-by: Roo Code <roomote@roocode.com> * Release: v1.92.0 (RooCodeInc#10116) * Remove the description from bedrock service tiers (RooCodeInc#10118) * feat: remove strict ARN validation for Bedrock custom ARN users (RooCodeInc#10110) Co-authored-by: Roo Code <roomote@roocode.com> * fix: prevent race condition from deleting wrong API messages (RooCodeInc#10113) Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com> * feat(anthropic): enable native tools by default and add telemetry tracking (RooCodeInc#10021) * feat: enable native tools by default for multiple providers (RooCodeInc#10059) --------- Co-authored-by: Bruno Bergher <bruno@roocode.com> Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com> Co-authored-by: Silentflower <33809253+SilentFlower@users.noreply.github.com> Co-authored-by: huajiwuyan <huajiwuyan@gmail.com> Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chris Estreich <cestreich@gmail.com> 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: SannidhyaSah <sah_sannidhya@outlook.com> Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local> Co-authored-by: John Richmond <5629+jr@users.noreply.github.com> Co-authored-by: Seb Duerr <sebastian.duerr@cerebras.net> Co-authored-by: Alex Ker <thealexker@gmail.com> Co-authored-by: AlexKer <AlexKer@users.noreply.github.com> Co-authored-by: Andrew Ginns <ginns.aw@gmail.com> Co-authored-by: Dennise Bartlett <bartlett.dc.1@gmail.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Follow-up to #10039
Important
Enhances OpenRouter error handling by parsing detailed error information using Zod schema and a helper function in
openrouter.ts.OpenRouterErrorResponseSchemausing Zod inopenrouter.tsto parse OpenRouter error responses.extractErrorFromMetadataRaw()to parse error messages frommetadata.raw.handleStreamingError()and error handling increateMessage()andcompletePrompt()to use parsed error details.OpenRouterErrorResponseandOpenRouterErrorinterfaces for structured error handling.This description was created by
for b355d57. You can customize this summary. It will automatically update as commits are pushed.