Skip to content

After a crash, Studio's start-up questions come one at a time instead of overlapping - #1341

Merged
ccoventry merged 2 commits into
devfrom
fix/one-startup-prompt-at-a-time
Nov 7, 2026
Merged

ccoventry merged 2 commits into
devfrom
fix/one-startup-prompt-at-a-time

Conversation

@ccoventry

Copy link
Copy Markdown
Owner

Release note: Fixed: after a crash, Studio's start-up questions (recover the render batch, capture the rest) come one at a time instead of on top of each other.

What happened

After the PC froze mid-batch, the next start showed Render Batch Interrupted and "Capture the rest?" at once, one over the other.

"Capture the rest?" (batch_resume.js) already waited for an open dialog, but only for a themedConfirm one. Render Batch Interrupted is the app's own .modal window, shown by render_pane.js, so it didn't count.

What changes

  • isAnyDialogOpen() in themed_confirm.js: a themedConfirm dialog, or any .modal window on screen.
  • batch_resume.js waits for it instead of isThemedConfirmOpen.
  • checkRenderRecoveryOnStartup waits for it too before showing its window, so the order doesn't matter: whichever comes second waits.

Both poll every 500 ms while they wait, as batch_resume.js already did.

Test done

  • dialog_open.test.js (3): a shown window, all hidden, no page.
  • batch_resume.test.js and themed_confirm.test.js unchanged and passing; npm run test:unit (1,421 passed), eslint (no errors), e2e render-studio.spec.js and app-boot.spec.js (74 passed).

Not tested: a real crash recovery in Studio, where both prompts come up at start.

Your test

Next time Studio starts after a batch or render batch was cut short: the two questions come one after the other.

🤖 Generated with Claude Code

… rest?" wait for any open dialog

isAnyDialogOpen (themed_confirm.js) sees the themed confirm and any shown
.modal window. batch_resume.js waited only for a themed confirm, so after a
crash it opened on top of Render Batch Interrupted; it and the render
recovery prompt now both wait for any dialog on screen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ccoventry

Copy link
Copy Markdown
Owner Author

Tested in a real Studio window (tauri dev from a throwaway worktree with #1340 and #1341 merged, its own port, app-data folder and web view profile, driven over CDP; the user's settings.json hash unchanged after):

#1340, boot watchdog

  • Normal start: [boot] Studio's page started in 332 ms in the activity log, no banner.
  • src/players_ui.js held forever, deadline set to 3 s: ...didn't finish starting in 3 s (235 of its scripts loaded): reloading it once, the page reloaded, then ...after a reload either ...: restart Studio and the restart banner. No further reloads.
  • Request let go: the start finished, the banner went, and the log said started after a reload, which cleared the marker.

#1341, start-up prompts

  • A cut-short render batch seeded in the test app data: Render Batch Interrupted showed at start.
  • "Capture the rest?" asked while it was open (batch_resume.js's offer, the real module and dialogs): 2.5 s later still not shown, the render window still up.
  • Discard on the render window: "Capture the rest?" came up within 1.5 s. Not now started nothing.

@ccoventry
ccoventry merged commit 8b94687 into dev Nov 7, 2026
9 checks passed
@ccoventry
ccoventry deleted the fix/one-startup-prompt-at-a-time branch November 7, 2026 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant