Improve project startup restore and loading experience#215
Merged
DeadWaveWave merged 5 commits intomainfrom May 1, 2026
Merged
Improve project startup restore and loading experience#215DeadWaveWave merged 5 commits intomainfrom
DeadWaveWave merged 5 commits intomainfrom
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.
💡 Change Scope
📝 What Does This PR Do?
Improves the project startup experience in three places:
This keeps startup responsive without regressing recovery semantics for restored workspaces, Spaces, and terminals.
🏗️ Large Change Spec (Required if "Large Change" is checked)
1. Context & Business Logic
Startup restore was mixing two concerns: durable workspace recovery and expensive terminal scrollback hydration. That made project open feel slower, and the shell could momentarily render an empty state before restore completed. This PR keeps recovery behavior intact while decoupling first paint from non-critical scrollback work and presenting a dedicated loading surface until the persisted shell is actually ready.
2. State Ownership & Invariants
isPersistReadyin the renderer shell remains the authoritative boot gate for whether the real app shell can render.WorkspaceEmptyStatemust only render after boot is ready and there is truly no restored/open workspace to show.3. Verification Plan & Regression Layer
tests/integration/recovery/useHydrateAppState.scrollback-ownership.spec.tsxtests/unit/app/appShellBootBoundary.spec.tsxtests/e2e/workspace-canvas.helpers.tspnpm pre-commit✅ (208 passed, 45 skipped)pnpm build, and Electron Playwright smoke for workspace search startup path.✅ Delivery & Compliance Checklist
pnpm pre-commitis completely green.CLA.md).DEVELOPMENT.mdarchitectural boundaries.📸 Screenshots / Visual Evidence
Startup loading screen updated; screenshot upload pending in PR UI.