Skip to content

[Website] Preserve Blueprint recovery through GitHub authentication - #4129

Merged
adamziel merged 1 commit into
trunkfrom
preserve-blueprint-recovery-github-auth
Jul 21, 2026
Merged

[Website] Preserve Blueprint recovery through GitHub authentication#4129
adamziel merged 1 commit into
trunkfrom
preserve-blueprint-recovery-github-auth

Conversation

@adamziel

@adamziel adamziel commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

An unfinished Blueprint run now records a site error before asking the user to authenticate with a private GitHub repository.

A Git authentication error normally opens only the authentication modal. That works for an ordinary Playground because authentication can resume the boot. An unfinished Blueprint run must also keep its failure state. Otherwise, dismissing the authentication modal exposes the dead loader with no error to recover from.

For these runs, bootSiteClient() stores site-boot-failed before opening GitHub authentication. The authentication modal stays on top. After it closes, the site error modal is already waiting. Normal Playgrounds keep the old behavior.

Part of #4099 which will replace the generic site error actions with explicit Blueprint recovery actions.

Testing

Run a stored Blueprint that references a private GitHub repository while signed out. Dismiss the authentication modal and confirm the site error modal appears instead of the loader.

@adamziel
adamziel force-pushed the preserve-blueprint-recovery-github-auth branch from cc2898f to 8ff4043 Compare July 21, 2026 00:23
@adamziel
adamziel marked this pull request as ready for review July 21, 2026 00:38
Base automatically changed from preserve-opfs-delete-failures to trunk July 21, 2026 00:44
@adamziel
adamziel requested review from a team and mho22 July 21, 2026 00:44
An unfinished Blueprint run may stop because a private repository needs credentials. The authentication modal temporarily owns the UI, but without recording the boot failure first, dismissing it leaves the dead loader behind. Record that failure before opening the authentication prompt so the recovery dialog can take over afterward.
@adamziel
adamziel force-pushed the preserve-blueprint-recovery-github-auth branch from 8ff4043 to f6c963a Compare July 21, 2026 00:45
@adamziel
adamziel merged commit 6bb06ef into trunk Jul 21, 2026
51 checks passed
@adamziel
adamziel deleted the preserve-blueprint-recovery-github-auth branch July 21, 2026 00:46
adamziel added a commit that referenced this pull request Jul 21, 2026
Part of #4099.

Builds on #4129.

Retrying an unfinished Blueprint run now replaces the failed Playground
before autosave pruning begins.

The retry keeps the original Playground as its return target, creates
and activates the replacement, and then removes the failed run. Only
after that succeeds does it prune old autosaves. If the failed run
cannot be removed, pruning stops instead of deleting an unrelated
Playground to make room.

Autosave pruning already handles its own deletion failures, so the
Blueprint editor no longer wraps it in a second `try/catch`. The editor
also stops claiming that the failed run will remain in Recent after
retry.

## Testing

From a stored Playground, run a Blueprint with `preferredVersions.wp`
set to `999.9`. Open the failed run in the Blueprint editor, change the
version to `latest`, and run it again. Confirm the replacement opens,
the original Playground remains, and the failed run is absent from
Recent.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment