Skip to content

Conversation

@KJ7LNW
Copy link
Contributor

@KJ7LNW KJ7LNW commented Jun 24, 2025

Context

Fixes: #5731

This PR adds an ErrorBoundary component to capture and display React errors that might otherwise cause the UI to go blank or crash.

Implementation

  • Adds a React ErrorBoundary component that captures errors in the component tree
  • Displays a user-friendly error message with the full stack trace
  • Wraps the entire application to prevent complete UI crashes
  • Provides clear instructions for users to report errors

May help troubleshoot the blank/gray screen issue reported in #2270.

Based on work from Kilo-Org/kilocode#843.

How to Test

  1. Intentionally cause an error in a component (e.g., try to access a property of undefined)
  2. Observe that instead of a blank screen, a helpful error message appears
  3. Verify the error message contains the full stack trace for debugging

Get in Touch

Discord: KJ7LNW


Important

Introduces ErrorBoundary component for improved error handling with source maps, updates tests, translations, and build configurations.

  • Error Handling:
    • Adds ErrorBoundary component in ErrorBoundary.tsx to capture and display errors with stack traces.
    • Wraps the entire app in App.tsx with ErrorBoundary to prevent UI crashes.
    • Integrates source map support for better error reporting in sourceMapInitializer.ts and sourceMapUtils.ts.
  • Testing:
    • Adds tests for ErrorBoundary in ErrorBoundary.spec.tsx and App.spec.tsx.
    • Mocks ErrorBoundary in App.spec.tsx to test app behavior without actual errors.
  • Localization:
    • Updates translation files in locales to include error boundary messages in multiple languages.
  • Build and Configuration:
    • Updates vite.config.ts and sourcemapPlugin.ts to ensure source maps are included in builds.
    • Modifies esbuild.mjs to always generate source maps for error handling.

This description was created by Ellipsis for fac992d05916d0b772ab560639de5b8c2eaba2bc. You can customize this summary. It will automatically update as commits are pushed.

@KJ7LNW KJ7LNW requested review from cte, jr and mrubens as code owners June 24, 2025 20:48
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Jun 24, 2025
@KJ7LNW KJ7LNW self-assigned this Jun 24, 2025
@KJ7LNW KJ7LNW moved this from Triage to PR [Needs Prelim Review] in Roo Code Roadmap Jun 24, 2025
@dosubot dosubot bot added the enhancement New feature or request label Jun 24, 2025
@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jun 24, 2025

Ok, manual installed it, run for less than 1h and gray box :(
I feel like it's the same pattern, I get the grey box every 1-2 h

@NightOwlCoder ,

Please try this build and see if you can get a stack trace:

Copy link
Member

@daniel-lxs daniel-lxs left a comment

Choose a reason for hiding this comment

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

Hey @KJ7LNW, I like this idea!

I left a couple of minor suggestions, I think this will benefit a lot from internationalization.

@daniel-lxs daniel-lxs moved this from PR [Needs Prelim Review] to PR [Changes Requested] in Roo Code Roadmap Jun 24, 2025
@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jun 25, 2025

@daniel-lxs , this may not be possible I have been fighting with it all day: the backtraces look good in F5 debug mode, but when you build the package you do not get stack traces because everything is squashed into .js files.

@cte do you have any idea what might allow the build to support "real" backtraces that reference .ts/.tsx files and not .js files like it does in F5 debug mode?

@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jun 25, 2025

@cte nevermind I was able to get it working using stacktrace-js

@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Jun 25, 2025
@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jun 25, 2025

@daniel-lxs @cte this works great in production builds:

Then trigger "Test ErrorBoundary"

image

and you get this. Notice real .tsx line numbers! hopefully this will help troubleshoot the grey screen issue.

image

@KJ7LNW KJ7LNW moved this from PR [Changes Requested] to PR [Needs Prelim Review] in Roo Code Roadmap Jun 25, 2025
@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jun 25, 2025

@NightOwlCoder, please try this build and see if you can get us a stack trace instead of the blank screen that you have been getting:

@daniel-lxs
Copy link
Member

Hey @KJ7LNW, I really like this implementation. Great work!

I just had a few questions for clarification:

  1. What types of errors will trigger the error screen? Is it only for webview-related errors?
  2. Will the error screen appear if the webview crashes entirely, or does your implementation prevent a full crash from happening in the first place?
  3. Does this have any impact on the performance of the extension, even when no error occurs?

Looking forward to your thoughts.

@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jun 25, 2025

Hey @KJ7LNW, I really like this implementation. Great work!

I just had a few questions for clarification:

  1. What types of errors will trigger the error screen? Is it only for webview-related errors?

This is only for web view and catches anything that gets propagated to <ErrorBoundary>, which should basically be anything because it is the topmost component:

https://github.com/RooCodeInc/Roo-Code/blob/fac992d05916d0b772ab560639de5b8c2eaba2bc/webview-ui/src/App.tsx#L228-L237

  1. Will the error screen appear if the webview crashes entirely, or does your implementation prevent a full crash from happening in the first place?

At the moment we do not have enough information about complete webview crashes (grey screens) to know if they are recoverable, so this is more about gathering information than fixing a problem.

  1. Does this have any impact on the performance of the extension, even when no error occurs?

Good question I was not sure, so I asked Claude 4 Opus, which was the only model that was capable of orchestrating via Sonnet 4 to do this successfully:

Performance Impact of ErrorBoundary Implementation

When No Errors Occur

The ErrorBoundary has minimal performance impact during normal operation:

  1. No Additional Renders: When no errors occur, ErrorBoundary simply renders its children without any additional processing:

    if (!this.state.error) {
        return this.props.children
    }
  2. No Lifecycle Overhead: The error handling methods (componentDidCatch, getDerivedStateFromError) are only called when an error is thrown, not during normal rendering.

  3. No Source Map Loading: The source map utilities and StackTrace.js are only loaded/executed when an error actually occurs, not preemptively.

Performance Characteristics

Negligible Impact:

  • ErrorBoundary is a simple class component that adds one conditional check per render
  • No hooks, effects, or subscriptions running during normal operation
  • No memory overhead beyond the component instance itself

Initialization Impact (one-time):

  • initializeSourceMaps() in App.tsx adds event listeners and preloads source maps
  • This happens once on app startup, not on every render
  • In production, it attempts to preload source maps which may add a few network requests at startup

Error Handling Performance:

  • When an error occurs, there's additional processing for source map resolution
  • This is acceptable since errors are exceptional cases where debugging info is more important than performance

Best Practices Maintained

Your component hierarchy is optimal:

<ErrorBoundary>  // Catches all errors below
  <ExtensionStateContextProvider>
    <TranslationProvider>
      <QueryClientProvider>
        <App />

This ensures:

  • Single error boundary at the top level (no redundant boundaries)
  • No performance penalty for error-free execution
  • All child components are protected

Conclusion: The ErrorBoundary implementation has virtually no performance impact during normal operation. It only adds meaningful overhead when errors occur, which is exactly when you need the enhanced debugging capabilities.

@chrarnoldus
Copy link
Contributor

What types of errors will trigger the error screen? Is it only for webview-related errors?

I think it's only errors that happen during React rendering.

@KJ7LNW KJ7LNW reopened this Jul 1, 2025
@github-project-automation github-project-automation bot moved this from Done to New in Roo Code Roadmap Jul 1, 2025
@github-project-automation github-project-automation bot moved this from Done to Triage in Roo Code Roadmap Jul 1, 2025
@hannesrudolph hannesrudolph added Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. and removed PR - Needs Preliminary Review labels Jul 1, 2025
@KJ7LNW KJ7LNW force-pushed the error-boundary-component branch from fac992d to 361c14b Compare July 1, 2025 21:02
@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jul 1, 2025

rebased and ready to merge

@daniel-lxs daniel-lxs moved this from Triage to PR [Needs Review] in Roo Code Roadmap Jul 2, 2025
@hannesrudolph hannesrudolph added PR - Needs Review and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Jul 2, 2025
@KJ7LNW KJ7LNW force-pushed the error-boundary-component branch 3 times, most recently from 1cf8a58 to 5c32e27 Compare July 10, 2025 00:40
@KJ7LNW KJ7LNW force-pushed the error-boundary-component branch 2 times, most recently from eec168f to d9933fa Compare July 17, 2025 23:39
Eric Wheeler added 4 commits July 18, 2025 14:04
Implements ErrorBoundary component to:
- Capture and display detailed error stack traces
- Provide clear error reporting instructions
- Prevent app crashes by isolating errors

May help troubleshoot #2270

Based on work from Kilo-Org/kilocode#843

Signed-off-by: Eric Wheeler <[email protected]>
- Create dedicated ErrorBoundary component with proper internationalization
- Add source map support for better error stack traces
- Include version information in error display
- Move test functionality to About page
- Add comprehensive error and component stack display
- Add translations for all error messages

Signed-off-by: Eric Wheeler <[email protected]>
Implements comprehensive source map support for better error reporting in production builds:

- Adds StackTrace.js integration for reliable source map resolution
- Updates Content Security Policy to allow source map fetching
- Creates custom Vite plugin to ensure source maps are properly included
- Adds global error handlers to enhance errors with source maps
- Improves ErrorBoundary component to display source-mapped stack traces
- Includes debugging utilities for troubleshooting in production

This change makes debugging production errors much easier by showing
original TypeScript file locations instead of minified bundle positions.

Signed-off-by: Eric Wheeler <[email protected]>
ca de es fr hi id it ja ko nl pl pt-BR ru tr vi zh-CN zh-TW
@KJ7LNW KJ7LNW force-pushed the error-boundary-component branch from d9933fa to c3e427f Compare July 18, 2025 21:04
@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jul 18, 2025

fixed lint issue, rebased on v3.23.14

@KJ7LNW
Copy link
Contributor Author

KJ7LNW commented Jul 20, 2025

FYI, I've been running this debug PR on my desk, and it caught #5978 with good debug information:

This is my test build so the line numbers vary, but they do point out the problem within a few lines of exactly the problem at command-validation.ts:109.

Without the ErrorBoundary, Roo just goes blank!

Here is a copy paste of the message.

Please help us improve by reporting this error on our GitHub Issues page

Copy and paste the following error message to include it as part of your submission:

Error Stack:
Error: Bad substitution: BASH_
at s.indexOf (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/[email protected]/node_modules/shell-quote/parse.js:128:11)
at string.slice (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/[email protected]/node_modules/shell-quote/parse.js:189:11)
at matches.map(function (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/[email protected]/node_modules/shell-quote/parse.js:89:16)
at exports (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/[email protected]/node_modules/shell-quote/parse.js:207:14)
at parse (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/utils/command-validation.ts:109:16)
at command.includes("$ (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/utils/command-validation.ts:393:21)
at JSON.parse (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/components/chat/ChatView.tsx:926:10)
at isMcpToolAlwaysAllowed (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/components/chat/ChatView.tsx:1003:33)
Component Stack:

at ChatViewComponent (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/components/chat/ChatView.tsx:76:3)
at App (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/App.tsx:78:5)
at Provider2 (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/@[email protected]_@[email protected][email protected]/node_modules/@radix-ui/react-context/dist/index.mjs:27:14)
at TooltipProvider$1 (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/@[email protected]_@[email protected]_@[email protected]__@types+reac_99504aa956c623e0884a4e3cb215669a/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:4)
at QueryClientProvider (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/@[email protected][email protected]/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js:20:2)
at TranslationProvider (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/i18n/TranslationContext.tsx:16:73)
at ExtensionStateContextProvider (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/context/ExtensionStateContext.tsx:162:89)
at ErrorBoundary (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/webview-ui/src/components/ErrorBoundary.tsx:18:2)
at I18nextWithTranslation (https://file+.vscode-resource.vscode-cdn.net/home/ewheeler/node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/react-i18next/dist/es/withTranslation.js:6:4)
at AppWithProviders

Copy link
Collaborator

@mrubens mrubens left a comment

Choose a reason for hiding this comment

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

This looks great, thanks!

@mrubens mrubens merged commit 3e89b06 into RooCodeInc:main Jul 23, 2025
11 checks passed
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jul 23, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Jul 23, 2025
@github-project-automation github-project-automation bot moved this from PR [Needs Review] to Done in Roo Code Roadmap Jul 23, 2025
fxcl added a commit to tameslabs/Roo-Cline that referenced this pull request Aug 9, 2025
* main:
  Changeset version bump (RooCodeInc#6826)
  Update contributors list (RooCodeInc#6636)
  chore: add changeset for v3.25.10 (RooCodeInc#6825)
  feat: add GPT-5 model support (RooCodeInc#6819)
  fix: add missing MCP error translation keys (RooCodeInc#6821)
  fix: use CDATA sections in XML examples to prevent parser errors (RooCodeInc#4852) (RooCodeInc#6811)
  Changeset version bump (RooCodeInc#6810)
  chore: add changeset for v3.25.9 (RooCodeInc#6809)
  Fix rounding of max tokens (RooCodeInc#6808)
  feat: add GLM-4.5 and OpenAI gpt-oss models to Fireworks provider (RooCodeInc#6784)
  feat: focus chat input when clicking plus button in extension menu (RooCodeInc#6689)
  Support linking to @roo-code/cloud in Roo-Code repo (RooCodeInc#6799)
  Bring back "Use @roo-code/cloud from npm" (RooCodeInc#6795)
  Changeset version bump (RooCodeInc#6790)
  Release v3.25.8 (RooCodeInc#6789)
  fix: prevent unnecessary MCP server refresh on settings save (RooCodeInc#6772) (RooCodeInc#6779)
  fix: Replace scrollToIndex with scrollTo to fix scroll jitter (RooCodeInc#6780)
  Clamp default model max tokens to 20% of context window (RooCodeInc#6761)
  fix: handle current directory path "." correctly in codebase_search tool (RooCodeInc#6517)
  fix: recover from error state when Qdrant becomes available (RooCodeInc#6661)
  Revert "Use @roo-code/cloud from npm" (RooCodeInc#6742)
  fix: prevent disabled MCP servers from starting processes and show correct status (RooCodeInc#6084)
  feat: reduce Gemini 2.5 Pro minimum thinking budget to 128 (RooCodeInc#6588)
  fix: trim whitespace from OpenAI base URL to fix model detection (RooCodeInc#6560)
  fix: improve handling of net::ERR_ABORTED errors in URL fetching (RooCodeInc#6635)
  Add swift files to fallback list (RooCodeInc#6724)
  Fix: Resolve Memory Leak in ChatView Virtual Scrolling Implementation (RooCodeInc#6697)
  Update CHANGELOG.md
  Changeset version bump (RooCodeInc#6738)
  Stop making types private (RooCodeInc#6737)
  Delete bad changeset (RooCodeInc#6736)
  Revert "Changesets config tweak (RooCodeInc#6733)" (RooCodeInc#6735)
  feat: add OpenAI GPT OSS model to Cerebras providers (RooCodeInc#6734)
  Changesets config tweak (RooCodeInc#6733)
  v3.25.7 (RooCodeInc#6730)
  feat: add GPT-OSS 120b and 20b models to Groq provider (RooCodeInc#6732)
  feat: clean up task list in HistoryPreview and History components (RooCodeInc#6687)
  feat: add support for Claude Opus 4.1 (claude-opus-4-1-20250805) (RooCodeInc#6728)
  Revert "Extension bridge (RooCodeInc#6677)" (RooCodeInc#6729)
  Redesigned Task Header (RooCodeInc#6561)
  feat: code indexing support multiple folder similar with task history (RooCodeInc#6204)
  fix: prevent MCP server creation when setting is disabled (RooCodeInc#6613)
  Add the fireworks AI provider (RooCodeInc#6652)
  Extension bridge (RooCodeInc#6677)
  fix: prevent empty mode names from being saved (fixes RooCodeInc#5766) (RooCodeInc#5767)
  Bump @roo-code/types to v1.44.0 (RooCodeInc#6675)
  feat(ui): Make mode selection dropdowns responsive (RooCodeInc#6422)
  Add Z AI provider (RooCodeInc#6657)
  use assistantMessageParser class instead of parseAssistantMessage (RooCodeInc#5341)
  style: update highlightLayer style and align to textarea (RooCodeInc#6648)
  Remove 'Initial Checkpoint' terminology, use 'Checkpoint' consistently (RooCodeInc#6643)
  Use @roo-code/cloud from npm (RooCodeInc#6611)
  Bump @roo-code/types to v1.43.0 (RooCodeInc#6640)
  Changing checkpoint timing and ensuring checkpoints work (RooCodeInc#6359)
  feat: conditionally include reminder section based on todo list config (RooCodeInc#6411)
  Fix the UI for approving chained commands (RooCodeInc#6623)
  Bump @roo-code/types to v1.42.0 (RooCodeInc#6610)
  Task and TaskProvider event emitter cleanup + a few new events (RooCodeInc#6606)
  Changeset version bump (RooCodeInc#6579)
  Update contributors list (RooCodeInc#6506)
  Release v3.25.6 (RooCodeInc#6578)
  feat: set horizon-beta model max tokens to 32k for OpenRouter (RooCodeInc#6577)
  chore: bump @roo-code/types to v1.41.0 (RooCodeInc#6568)
  Cloud: support syncing provider profiles from the cloud (RooCodeInc#6540)
  Changeset version bump (RooCodeInc#6565)
  Release v3.25.5 (RooCodeInc#6564)
  Add Qwen 3 Coder from Cerebras (RooCodeInc#6562)
  fix: Fix VB.NET indexing by implementing fallback chunking system (RooCodeInc#6552)
  More tolerant search/replace match (RooCodeInc#6537)
  Clean up the auto-approve UI (RooCodeInc#6538)
  fix: linter not applied to locales/*/README.md (RooCodeInc#6477)
  Revert "Migrate evals database when deploying roo-code-website" (RooCodeInc#6525)
  Phase 1 website updates (RooCodeInc#6085)
  Cloud service cleanup callbacks / move to events (RooCodeInc#6519)
  Add Cerebras as a provider (RooCodeInc#6392)
  fix: handle Qdrant deletion errors gracefully to prevent indexing interruption (RooCodeInc#6296)
  Add auto-approved cost limits (RooCodeInc#6484)
  fix: LM Studio model context length (RooCodeInc#5075) (RooCodeInc#6183)
  fix: restore message sending when clicking save button (RooCodeInc#6487)
  Handle more variations of chaining and subshell command validation (RooCodeInc#6486)
  fix: improve Claude Code ENOENT error handling with installation guidance (RooCodeInc#5867)
  Skip interpolation for non-existent slash commands (RooCodeInc#6475)
  Changeset version bump (RooCodeInc#6474)
  Release v3.25.4 (RooCodeInc#6473)
  Revert experiments with nightly marketplace config (RooCodeInc#6472)
  feat: set horizon-alpha model max tokens to 32k for OpenRouter (RooCodeInc#6470)
  fix: Remove misleading task resumption message (RooCodeInc#5851)
  chore(deps): update dependency lint-staged to v16.1.2 (RooCodeInc#4965)
  fix(deps): update dependency recharts to v2.15.4 (RooCodeInc#4971)
  Fix: Kill button for execute_command tool (RooCodeInc#6457)
  feat: add zai-org/GLM-4.5-FP8 model to Chutes AI provider (RooCodeInc#6441)
  Update contributors list (RooCodeInc#6360)
  chore(deps): update dependency @changesets/cli to v2.29.5 (RooCodeInc#4936)
  Migrate evals database when deploying roo-code-website (RooCodeInc#6146)
  Miscellaneous cleanup (RooCodeInc#6453)
  feat: add symlink support for AGENTS.md file loading (RooCodeInc#6326)
  feat: diagnose nightly freeze by disabling contributes (RooCodeInc#6450)
  fix: resolve navigator global error by updating mammoth and bluebird dependencies (RooCodeInc#6363)
  Add pattern to support Databricks /invocations endpoints (RooCodeInc#6317)
  feat: enhance token counting by extracting text from messages using VSCode LM API (RooCodeInc#6424)
  feat: Add Task History Context to Prompt Enhancement (RooCodeInc#6343)
  Support new LLM provider: Doubao (RooCodeInc#6345)
  fix: Use separate changelog for nightly builds to prevent marketplace freezing (RooCodeInc#6449)
  feat: auto-refresh marketplace data when organization settings change (RooCodeInc#6446)
  feat: add SambaNova provider integration (RooCodeInc#6188)
  Changeset version bump (RooCodeInc#6438)
  chore: add changeset for v3.25.3 (RooCodeInc#6435)
  docs: clarify apply_diff tool descriptions to emphasize surgical edits (RooCodeInc#6278)
  fix(chat): Prevent input clearing when clicking chat buttons (RooCodeInc#6222)
  Remove event types mention from PR reviewer rules (RooCodeInc#6428)
  Update the auto-translate prompt (RooCodeInc#6430)
  Hide Gemini checkboxes on the welcome view (RooCodeInc#6415)
  Remove "(prev Roo Cline)" from extension title in all languages (RooCodeInc#6426)
  feat: add translation check action to pull_request.opened event (RooCodeInc#6393)
  Allow queueing images (RooCodeInc#6414)
  Add docs link for slash commands (RooCodeInc#6409)
  Update PR reviewer rules and mode configuration (RooCodeInc#6391)
  feat: increase Claude Code default max output tokens to 16k (RooCodeInc#6312)
  Changeset version bump (RooCodeInc#6390)
  Release v3.25.2 (RooCodeInc#6389)
  Fix zap hover (RooCodeInc#6388)
  fix: show diff view before approval when PREVENT_FOCUS_DISRUPTION is disabled (RooCodeInc#6386)
  Bump types to 1.40.0 (RooCodeInc#6387)
  Cloud: add organization MCP controls (RooCodeInc#6378)
  Changeset version bump (RooCodeInc#6385)
  Release v3.25.1 (RooCodeInc#6384)
  feat: add zai-org/GLM-4.5-Air model to Chutes AI provider (RooCodeInc#6377)
  Improvements to subshell validation (RooCodeInc#6379)
  docs: update docs extractor mode configuration and rules (RooCodeInc#6373)
  Changeset version bump (RooCodeInc#6362)
  Update contributors list (RooCodeInc#6302)
  fix: exclude rules-{slug} folder from mode export paths (RooCodeInc#6186)
  chore: add changeset for v3.25.0 (RooCodeInc#6358)
  feat: make PR reviewer rules generic (RooCodeInc#6357)
  Remove duplicated assignment (RooCodeInc#6355)
  fix(environment): Filter out non-text tab inputs (RooCodeInc#6350)
  Add .roomotes.yml (RooCodeInc#6346)
  Better command highlighting (RooCodeInc#6336)
  Command argument hints and change release engineer to a command (RooCodeInc#6333)
  Ensure form-data >= 4.0.4 (RooCodeInc#6332)
  feat(tools): add image support to read_file tool (RooCodeInc#5172)
  feat: Add experimental setting to prevent editor focus disruption (RooCodeInc#6214)
  feat: make task mode sticky to task (RooCodeInc#6177)
  feat: add ESC key handling for modes, API provider, and indexing settings popovers (RooCodeInc#6175)
  Parse mentions from all user inputs (RooCodeInc#6331)
  Support inserting mentions after a slash command (RooCodeInc#6327)
  feat: Update PR reviewer mode to use todo lists and GitHub CLI (RooCodeInc#6328)
  Restore PR reviewer (RooCodeInc#6324)
  Fix slash command highlighting (RooCodeInc#6325)
  fix: empty README.vscode.md to test marketplace freezing issue (RooCodeInc#6315)
  Add support for slash command frontmatter descriptions (RooCodeInc#6314)
  feat(mode-writer): add validation and cohesion checking for mode creation (RooCodeInc#6313)
  fix: normalize Windows paths to forward slashes in mode export (RooCodeInc#6308)
  Improve issue-writer mode initialization workflow (RooCodeInc#6311)
  Add a UI for managing slash commands (RooCodeInc#6286)
  feat: add prompt caching support for LiteLLM (RooCodeInc#5791) (RooCodeInc#6074)
  fix: remove demo GIF from VS Code README to prevent marketplace freezing (RooCodeInc#6305)
  fix: hide Test ErrorBoundary button in production mode (RooCodeInc#6216)
  Fix keyboard shortcuts for non-QWERTY layouts (RooCodeInc#6162)
  Revert "fix: optimize README for VS Code marketplace to prevent UI freezing" (RooCodeInc#6303)
  fix: optimize README for VS Code marketplace to prevent UI freezing (RooCodeInc#6275)
  Feat: Adding Gemini tools - URL Context and Grounding with Google Search (RooCodeInc#5959)
  feat: Add support for message queueing (RooCodeInc#6167)
  Update issue writer rules and workflow configurations (RooCodeInc#6230)
  feat: sync API config selector style with mode selector from PR RooCodeInc#6140 (RooCodeInc#6148)
  feat: Add search functionality to mode selector popup and reorganize layout (RooCodeInc#6140)
  Support for custom slash commands (RooCodeInc#6263)
  fix: prevent scrollbar flickering in chat view during content streaming (RooCodeInc#6266)
  test: update list-files test for fixed hidden files bug (RooCodeInc#6261)
  fix: add text wrapping to command patterns in Manage Command Permissions (RooCodeInc#6255)
  # fix: list_files recursive mode now works for dot directories (RooCodeInc#5176)
  fix: restore working settings link in command permissions tooltip (RooCodeInc#6253)
  feat: add markdown table rendering support (RooCodeInc#6252)
  Changeset version bump (RooCodeInc#6239)
  Kick off release (RooCodeInc#6238)
  Update contributors list (RooCodeInc#6110)
  Delete .changeset/kind-horses-sniff.md
  chore: add changeset for v3.24.0 (RooCodeInc#6237)
  Clean up some of the hugging face provider settings (RooCodeInc#6236)
  refactor: consolidate HuggingFace models API into providers/fetchers (RooCodeInc#6228)
  fix: add error message when no workspace folder is open for code indexing (RooCodeInc#6227)
  Hugging Face provider: add more details (RooCodeInc#6190)
  fix(chat): Cancel auto-approve timer when editing follow-up suggestion (RooCodeInc#6226)
  fix: prevent duplicate command patterns by trimming full command (RooCodeInc#6224)
  fix: restore list styles for markdown lists in chat interface (RooCodeInc#6095)
  feat: Add terminal command permissions UI to chat interface (RooCodeInc#5480) (RooCodeInc#5798)
  fix: respect maxReadFileLine setting for file mentions to prevent context exhaustion (RooCodeInc#6073)
  Add support for bedrock api keys (RooCodeInc#6132)
  Fix Ollama API URL normalization by removing trailing slashes (RooCodeInc#6079)
  fix: allow auto-approve checkbox to be toggled at any time (RooCodeInc#6061)
  feat: add efficiency warning for single SEARCH/REPLACE blocks in apply_diff (RooCodeInc#6055)
  Add type for allowing org members to view all tasks (RooCodeInc#6193)
  Expose default modes in @roo-code/types (RooCodeInc#6184)
  feat: add Google Analytics tag to marketing website (RooCodeInc#6179)
  fix: Fix Hugging Face provider setup not transitioning from welcome view (RooCodeInc#6173)
  feat: add confirmation dialog and proper cleanup for marketplace mode removal (RooCodeInc#6136)
  feat: add support for Agent Rules standard via AGENTS.md (RooCodeInc#5966) (RooCodeInc#5969)
  Update next.config.ts
  Fix/website logo theme persistence (RooCodeInc#6040)
  basic hugging face provider (RooCodeInc#6134)
  feat: Add settings to control diagnostic messages (RooCodeInc#5524) (RooCodeInc#5582)
  Changeset version bump (RooCodeInc#6131)
  chore: add changeset for v3.23.19 (RooCodeInc#6130)
  Roo Code Cloud Waitlist CTAs (RooCodeInc#6104)
  Smarter auto-deny (RooCodeInc#6123)
  Split commands on newlines (RooCodeInc#6121)
  Changeset version bump (RooCodeInc#6111)
  Update contributors list (RooCodeInc#5699)
  chore: add changeset for v3.23.18 (RooCodeInc#6109)
  debug: Add ErrorBoundary component for better error handling (RooCodeInc#5085)
  fix: resolve 'Bad substitution' error in command parsing (RooCodeInc#5743)
  Fix todo list toggle not working (RooCodeInc#6103)
  Use SIGKILL for command execution timeouts in the "execa" variant (RooCodeInc#6071)
  Changeset version bump (RooCodeInc#6092)
  Release v3.23.17 (RooCodeInc#6091)
  feat: add merge-resolver mode for intelligent conflict resolution (RooCodeInc#6090)
  fix: add Git installation check for checkpoints feature (RooCodeInc#3109) (RooCodeInc#5920)
  feat: add Qwen/Qwen3-235B-A22B-Instruct-2507 model to Chutes AI provider (RooCodeInc#6052)
  feat: add llama-4-maverick model to Vertex AI provider (RooCodeInc#5808) (RooCodeInc#6023)
  docs: clarify when to use update_todo_list tool (RooCodeInc#5926)
  fix: add case sensitivity mention to suggested fixes in apply_diff error message (RooCodeInc#6076)
  Add jump icon for newly created files (RooCodeInc#5738)
  Fix evals; broken by RooCodeInc#5865 (RooCodeInc#6065)
  Bugfix: Cloud: be more specific about session error codes (RooCodeInc#6051)
  feat: add moonshot provider (RooCodeInc#6046)
  Add todo list tool enable checkbox to provider advanced settings (RooCodeInc#6032)
  fix: add bedrock to ANTHROPIC_STYLE_PROVIDERS and restore vertex Claude model checking (RooCodeInc#6019)
  Update the max_tokens fallback logic in the sliding window (RooCodeInc#5993)
  fix: sort symlinked rules files by symlink names, not target names (RooCodeInc#5903)
  fix: properly distinguish between user cancellations and API failures (RooCodeInc#6025)
  fix: resolve global mode export not including rules files (RooCodeInc#5834) (RooCodeInc#5837)
  fix: add run parameter to vitest command in rules (RooCodeInc#5991)
  feat: auto-omit MCP content when no servers are configured (RooCodeInc#5889)
  fix: move context condensing prompt to Prompts section (RooCodeInc#4924) (RooCodeInc#5279)
  feat: add configurable timeout for evals (5-10 min) (RooCodeInc#5865)
  fix: enable export, share, and copy buttons during API operations (RooCodeInc#5324) (RooCodeInc#5849)
  fix: add character limit to prevent terminal output context explosion (RooCodeInc#5777)
  feat: Add Mistral embedding provider (RooCodeInc#5932) (RooCodeInc#5946)
  Changeset version bump (RooCodeInc#5953)
  Release v3.23.16 (RooCodeInc#5952)
  feat: enhance release engineer mode to include issue numbers and reporters in changelog (RooCodeInc#5940)
  feat: add batch limiting to code indexer (RooCodeInc#5891)
  feat: add global rate limiting for OpenAI-compatible embeddings (RooCodeInc#5854)
  feat: mark non-English translation files as linguist-generated (RooCodeInc#5943)
  Fix Docker port conflicts for evals services (RooCodeInc#5909)
  Changeset version bump (RooCodeInc#5935)
  chore: add changeset for v3.23.15 patch release (RooCodeInc#5934)
  Added YouTube to website footer (RooCodeInc#5929)
  Add command timeout allowlist with IPC support (RooCodeInc#5910)
  feat: add configurable delay for Go diagnostics to prevent premature error reporting (RooCodeInc#5863)
  feat: Add Issue Investigator mode and enhance Issue Writer mode (RooCodeInc#5913)
  Prevent completion with open todos (RooCodeInc#5716)
  feat: move marketplace icon from overflow menu to top navigation (RooCodeInc#5864)
  feat: Add description and whenToUse fields to custom modes in .roomodes (RooCodeInc#5862)
  fix: detect Claude models by name for API protocol selection (RooCodeInc#5840)
  Fix/issue fixer pr template (RooCodeInc#5839)
  Changeset version bump (RooCodeInc#5836)
  Log API-initiated tasks to a tmp directory (RooCodeInc#5833)
  refactor: remove orchestrator modes and update GitHub CLI usage (RooCodeInc#5832)
  Changeset version bump (RooCodeInc#5829)
  v3.23.13 (RooCodeInc#5827)
  Allow command execution timeout to be set via IPC task execution (RooCodeInc#5825)
  feat: Update Ollama UI to use text inputs (RooCodeInc#5818)
  Message edit/delete overhaul (RooCodeInc#5538)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request lgtm This PR has been approved by a maintainer PR - Needs Review size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Use react-error-boundary to isolate errors

5 participants