Skip to content

fix: boot splash never freezes with arms missing - #151

Merged
tuckcode merged 1 commit into
mainfrom
cursor/boot-splash-frozen-arms-60e9
Oct 11, 2026
Merged

tuckcode merged 1 commit into
mainfrom
cursor/boot-splash-frozen-arms-60e9

Conversation

@tuckcode

@tuckcode tuckcode commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

A Tauri/WebKit window on macOS often reports document.hidden at first paint. The splash then set --boot-motion-state: paused while the grow-in arms use animation-fill-mode: both from opacity 0. If visibilitychange never fires when the window is shown, those two arms stay invisible and the breathe pulse stays frozen.

This change keeps motion running until the page has actually been visible once. After that, a later hide can still pause. Paused and prefers-reduced-motion: reduce both drop the grow animations so the full settled logo stays on screen.

Rebased onto main after #150. Handoff note is docs/plans/handoffs/2026-10-11-0815-cursor-grok-4-6-boot-splash-arms.md only — docs/HANDOFF.md is not edited.

Mac rebuild check: launch the app; the two arms grow in and the logo pulses; with Reduce Motion on, the full logo shows still.

What changed

  • index.html no longer pauses grow-in just because the first paint is hidden.
  • visibilitychange to visible still resumes motion.
  • BootSplash.css shows the settled mark when paused or when motion is reduced.

Completion

  • QA: unit tests for hidden-at-boot, visibility resume, paused CSS, and reduced motion. Native Mac launch not run in this environment.
  • Tests/coverage: pnpm exec vitest run src/index.bootMotion.test.ts src/components/BootSplash.test.tsx — 10 passed. Frontend lane (pnpm lint && pnpm typecheck && pnpm build && coverage shards && pnpm test:mcp) passed: 88.44% lines (threshold 70%), 106 mcp tests. sh .husky/pre-push itself skipped app checks because the branch was already on the remote (empty @{push}..HEAD). Rust skipped (no src-tauri/ change).
  • Localization: none — English only (C18).
  • PostHog: no event needed because this restores existing splash motion; it does not add a user action.
  • Refactoring: none needed.
  • ADRs: none.
  • Docs: session note in docs/plans/handoffs/2026-10-11-0815-cursor-grok-4-6-boot-splash-arms.md. docs/HANDOFF.md left unchanged (docs: stop PRs from conflicting in HANDOFF.md #150).
  • Demo vault dirt: none.
  • Codacy: CLI not installed on this machine. No new Critical/High expected from CSS/HTML visibility handling.
Open in Web Open in Cursor 

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.

Run reviewer

TIP This summary will be updated as you push new changes.

@codacy-production codacy-production Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

The required automated scenarios are covered except native Mac/Tauri launch validation, so the platform-specific acceptance criterion remains unverified. No code, security, complexity, or Codacy issues were reported.

About this PR

  • Validate the splash during a native Mac/Tauri launch to confirm that the arms grow and the logo pulses as required.

Test suggestions

  • Hidden at first paint keeps boot motion running
  • Visibility change to visible resumes motion
  • A later hide pauses motion and showing the page resumes it
  • Paused CSS disables grow-in animations so all arms remain visible
  • Reduced-motion CSS disables animations while retaining the settled logo
  • Native Mac/Tauri launch confirms arms grow and logo pulses
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Native Mac/Tauri launch confirms arms grow and logo pulses

TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback

A Tauri/WebKit window often reports document.hidden at first paint.
Pausing grow-in there, with fill:both from opacity 0, left two arms
invisible if visibilitychange never fired.

Stay running until the page has been visible once. Paused and
reduced-motion states drop the grow animations so the settled mark
stays on screen.

Co-Authored-By: Cursor Grok 4.6 <noreply@cursor.com>

Co-authored-by: tuckcode <tuckcode@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/boot-splash-frozen-arms-60e9 branch from 8666819 to b645a34 Compare October 11, 2026 08:18
@tuckcode
tuckcode merged commit ecf7690 into main Oct 11, 2026
10 checks passed
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.

2 participants