fix: add webview heartbeat monitoring for gray screen detection and recovery #10738
+149
−0
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 attempts to address Issue #10737 by implementing a webview heartbeat monitoring system.
Problem
Users report that the Roo Code panel occasionally turns completely gray during long-running tasks with auto-approval enabled ("brrrr mode"). The panel becomes unresponsive while the extension continues working in the background.
Solution
Implements a ping-pong heartbeat system to detect when the webview becomes unresponsive and provide auto-recovery options:
Changes
ping/pongmessage types to ExtensionMessage and WebviewMessageTesting
Feedback and guidance are welcome.
Important
Adds heartbeat monitoring to detect and recover from unresponsive webviews by sending periodic "ping" messages and expecting "pong" responses.
ClineProviderto detect unresponsive webviews by sending "ping" messages every 5 seconds and expecting "pong" responses.ExtensionMessageandWebviewMessage.webviewMessageHandlerto reset the heartbeat timer.ExtensionStateContextProviderby sending "pong" back.ClineProviderwhen a new session begins.webviewMessageHandlerto handle "pong" messages and reset the heartbeat timer.This description was created by
for 122d28f. You can customize this summary. It will automatically update as commits are pushed.