fix(intro): reliable first-visit cinematic — audible oomph, no splash hijack on deep routes, e2e suite #91

Merged
lfg2025 merged 1 commits from intro-reliability-video-perf into main 2026-07-15 14:29:24 +00:00
Owner

Three first-visit bugs caught by a new Playwright suite (5 tests, real Chrome, demo stack):

  • Dashboard entrance oomph was always silent — the login→dashboard route change closes the AudioContext (stopAllAudio) and playDashboardLoadOomph only fetched the dead context; it now recreates one on the login click's sticky activation.
  • Direct /login load hijacked into the splash — App.vue read route.path before the router resolved the initial navigation, so deep-route boots looked like root boots; the splash decision now reads window.location.pathname.
  • Replayed intros ran mute + intro shortcut exits skipped the finale — enableCinematicSounds override, archy_onboarding_finale armed on both exits.

Also from this branch (efd1ae41): splash always honors App's decision; intro video re-encoded 3x lighter with detached

Verified: 5/5 e2e, 673/673 unit, vue-tsc clean.

🤖 Generated with Claude Code

Three first-visit bugs caught by a new Playwright suite (5 tests, real Chrome, demo stack): - **Dashboard entrance oomph was always silent** — the login→dashboard route change closes the AudioContext (stopAllAudio) and playDashboardLoadOomph only fetched the dead context; it now recreates one on the login click's sticky activation. - **Direct /login load hijacked into the splash** — App.vue read route.path before the router resolved the initial navigation, so deep-route boots looked like root boots; the splash decision now reads window.location.pathname. - **Replayed intros ran mute + intro shortcut exits skipped the finale** — enableCinematicSounds override, archy_onboarding_finale armed on both exits. Also from this branch (efd1ae41): splash always honors App's decision; intro video re-encoded 3x lighter with detached <video> warm-up. Verified: 5/5 e2e, 673/673 unit, vue-tsc clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
lfg2025 added 1 commit 2026-07-15 14:28:53 +00:00
Three first-visit-experience bugs, all caught by the new e2e suite
(e2e/intro-experience.spec.ts — 5 tests against the demo stack on real
Chrome, instrumenting HTMLMediaElement/WebAudio/MutationObserver since
headless can't hear or see the cinematic):

- playDashboardLoadOomph was always silent: the login→dashboard route
  change closes the AudioContext (stopAllAudio), and the oomph only
  fetched the dead context. It now recreates one, riding the login
  click's sticky user activation.
- A direct /login load in the demo hijacked into the splash: App.vue
  read route.path before the router resolved the initial navigation, so
  every deep-route boot looked like a root boot. The splash decision now
  reads window.location.pathname.
- Replayed intros ran mute (enableCinematicSounds override) and the
  intro's shortcut exits skipped the dashboard finale (flag now armed on
  both demo and login exits).

Verified: 5/5 e2e, 673/673 unit, vue-tsc clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lfg2025 merged commit 48d5fd0045 into main 2026-07-15 14:29:24 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lfg2025/archy#91
No description provided.