Hold Home on a first launch until its conversation is in
Part of Leo's never-blank first launch frame. A cold launch recording (DEV build of the feat tip, 60 fps) showed Home arriving in pieces: the home workspace's "Start something new" title at 3049 ms, then the second column and import cards, then the header, first-run actions and message box at about 4978 ms. Home is made over several daemon replies (ensure_home, the dock's page tab, then the Chief conversation), and no launch region held it.
Change
- New launch region
.home(Home's conversation's first page).markAllReadyand the 1.5 s deadline cover it like the others. WorkspaceContentControllerholds a Home that has no pane yet until.homeis ready. A Home restored with its dock is not held, nor is any other workspace.HomeHostViewmarks.homeready when its first page is in (the same point the first-run panel stops waiting). An offline or refused owner ends that wait too, so Home shows its notice instead of staying clear.
Test
HomeLaunchRevealTests, red on the test-only head and green with the fix:
- a Home with no pane stays clear until
.home, then draws; - a normal workspace with no pane is not held;
HomeHostViewmarks.homeready once its first page is in.
No capture: this holds Home clear until its first page is in during a cold launch; a capture tour shows the settled Home, which looks the same before and after. HomeLaunchRevealTests pins the hold and release.
Agent session: huge-blue
š¤ Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Holds a first-launch Home until its conversation's first page is in, so the launch frame no longer shows Home arriving in pieces (the empty-workspace title at ~3 s, then the header and message box at ~5 s).
- Adds a
.homelaunch region thatmarkAllReadycovers like the other regions. WorkspaceContentControllerholds a Home that has no pane yet until.homeis ready; other workspaces and a Home restored with its dock are not held.HomeHostViewmarks.homeready when its first page is in, or when an offline or refused owner ends the wait so Home shows its notice instead of staying clear. A Home released before its page came no longer marks.home, so it can't reveal the Home that replaced it.- A Home held after the launch deadline has fired is not released by it;
.homewaits its own deadline from its first hold. - The startup benchmark now records
.homereveal timing.
Tests
HomeLaunchRevealTestscovers a pane-less Home staying hidden until.home, a pane-less non-Home workspace not being held,HomeHostViewmarking.homeready on first page arrival, and a later-held Home waiting its own deadline.