fix(studio): restore sandbox snapshots in background - #1075
Closed
zakahan wants to merge 1 commit into
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Opening a sandbox agent list currently waits for all eligible snapshots to resume. A slow or unrestorable snapshot can block the list, and repeated visits trigger expensive retries.
This change returns ready sessions without waiting for restores, runs restores in service-owned background tasks, and refreshes the existing cards only while recovery is active. The page and new-chat picker show lightweight recovery and paused-recovery notices. Failed snapshots cool down for 5 and 30 minutes, then stop automatic attempts after three failures. Tasks are deduplicated per snapshot and logical session, limited to three concurrent restores per service, and cancelled at shutdown. Explicit
autoResumeSnapshots=falseis preserved by the client.Session and snapshot discovery remain synchronous. Recovery state is in memory: it resets on restart and is not shared across replicas. The PR includes matching packaged WebUI assets.
Validation after rebasing onto upstream main (
43ce9786):