Fix webview lockup on startup by adding loading state and retry logic #6235
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes issue #6234 where Roo Code would completely lock up on startup, showing only a scrolling bar at the top and a blank screen.
Problem
The webview was returning
nullwhendidHydrateStatewas false, resulting in a blank screen if the extension was slow to respond with the initial state. This left users with an unresponsive plugin.Solution
Testing
Fixes #6234
Important
Fixes webview lockup on startup by adding a loading screen, timeout handling, and retry logic in
App.tsx,LoadingScreen.tsx, andExtensionStateContext.tsx.App.tsx: RendersLoadingScreeninstead ofnullwhendidHydrateStateisfalse.LoadingScreen.tsx: New component with a progress ring and optional timeout message.ExtensionStateContext.tsx: Implements retry logic forwebviewDidLaunchmessage if no response in 2 seconds.App.tsx: Shows timeout message after 5 seconds if state not hydrated.App.tsx: Retries sendingwebviewDidLaunchafter 3 seconds if state not hydrated.This description was created by
for 1f0ab5e. You can customize this summary. It will automatically update as commits are pushed.