Skip to content

fix(desktop): quiet gate for workspace switches instead of boot splash#1449

Merged
wesbillman merged 1 commit into
mainfrom
brain/workspace-switch-flash
Jul 2, 2026
Merged

fix(desktop): quiet gate for workspace switches instead of boot splash#1449
wesbillman merged 1 commit into
mainfrom
brain/workspace-switch-flash

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Problem

With the workspace rail, every workspace switch flashed the full cold-boot splash — "Setting up your workspace..." with its character-rise animation replaying from zero — for the brief moment apply_workspace runs. Fast switches got a jarring full-screen blast.

Fix

App.tsx latches once the composite workspace key deviates from its cold-boot value. From then on, loading phases are in-app switches and render a new quiet WorkspaceSwitchGate: plain themed background, spinner only if the switch takes >300ms. Typical switches are now just a brief neutral blink.

Unchanged:

  • Cold boot still shows the splash.
  • First-run onboarding still shows OnboardingLoadingGate.
  • The remount/clean-slate contract for workspace singletons is untouched — only the gate rendered during the wait changes.

Testing

  • New e2e regression test in workspace-rail.spec.ts: slows apply_workspace via a new applyWorkspaceDelayMs mock knob, asserts cold boot shows the splash, then asserts a switch shows the quiet gate and the splash never reappears.
  • just desktop-typecheck, just desktop-check green.
  • Full smoke suite: 342 passed; 3 failures (channels.spec.ts:867, scroll-history.spec.ts:288, timeline-no-shift.spec.ts:205) are scroll-timing specs that fail identically on unmodified main (verified by stashing this change and rerunning) — pre-existing flakes, unrelated.

Switching workspaces via the rail replayed the full cold-boot splash
("Setting up your workspace..." with its rise animation) for the brief
moment apply_workspace runs, making every switch jarring. Latch once the
workspace key deviates from its cold-boot value and render a quiet gate
(plain background, spinner only after 300ms) for switches. Cold boot and
first-run onboarding keep the existing splash.

Adds an applyWorkspaceDelayMs mock knob so the e2e test can observe the
gate deterministically.

Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman wesbillman merged commit b779a3e into main Jul 2, 2026
25 checks passed
@wesbillman wesbillman deleted the brain/workspace-switch-flash branch July 2, 2026 14:46
wpfleger96 added a commit that referenced this pull request Jul 2, 2026
readiness.rs grew by 1 line (cargo fmt reformatted two long closures
inline after rebase). tauri.ts grew by 26 lines from PRs that landed
on main (#1452, #1416, #1449 and others) between our prior base and
this rebase tip (e42dae3).

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
wpfleger96 added a commit that referenced this pull request Jul 2, 2026
…into HEAD

* origin/paul/nip-am-agent-turn-metrics:
  fix(profile): consolidate agent profile runtime metadata (#1451)
  fix(desktop): simplify workspace rail badges (#1462)
  perf(desktop): instant channel switching — non-blocking first paint, persisted snapshots (#1452)
  perf(relay): bounded-concurrency multi-filter query execution (S2) (#1457)
  fix(desktop): classify timeline prepends so history loads don't bump unread (#1416)
  fix(desktop): quiet gate for workspace switches instead of boot splash (#1449)
  fix(read-path): reach complete threads, dense-second timelines, and all people in the GUI (#1418)
  E1+E3: reduce relay ingest/fan-out DB round trips; ack p99 −7–16%, fd p99 −6–28%, p999 tails −29–53% vs PR #1453 tip (#1454)
  perf(relay): defer post-commit dispatch and avoid verify clone (#1453)
  fix(relay): include git hook tools in runtime image (#1326)
  feat(chart): per-pod emptyDir git scratch when persistence disabled (multi-replica HA) (#1450)
  fix(relay): remove media bearer-token auth (#1444)
  fix(desktop): stop search shortcut from hijacking the sidebar (#1447)

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
wpfleger96 added a commit that referenced this pull request Jul 2, 2026
readiness.rs grew by 1 line (cargo fmt reformatted two long closures
inline after rebase). tauri.ts grew by 26 lines from PRs that landed
on main (#1452, #1416, #1449 and others) between our prior base and
this rebase tip (e42dae3).

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
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