release(v1.7.34-alpha): re-seed onboarding cache + rotating login bg + drop re-login zoom

- useOnboarding.ts: when the backend gives a definitive answer
  (true/false, not a null retry failure), re-seed the
  neode_onboarding_complete localStorage flag accordingly. Fixes the
  case where a user clears site data on an already-onboarded node —
  OnboardingWrapper's useVideoBackground computed reads localStorage
  synchronously, so without this re-seed the intro video would fire
  again on /login even though RootRedirect correctly sent them
  straight to /login.
- OnboardingWrapper.vue: login background now rotates through
  bg-intro-1..6 on each /login mount, with the current index
  persisted to localStorage (neode_login_bg_idx) so subsequent
  logouts advance rather than repeat the same image.
- Dashboard.vue: subsequent-login branch drops the 1.2s showZoomIn
  entirely. Only the first dashboard entry after onboarding plays
  the full zoom + glitch reveal; every re-login now just fades in
  with the welcome typing (~300ms).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-04-22 05:42:52 -04:00
co-authored by Claude Opus 4.7
parent aa0677be57
commit 06feb85aa5
5 changed files with 43 additions and 9 deletions
+3 -5
View File
@@ -285,17 +285,15 @@ onMounted(() => {
loginTransition.setPendingWelcomeTyping(false)
}, 4000)
} else if (loginTransition.justLoggedIn) {
// Regular re-login — quick interface draw, no triple glitch flashes.
// Just the zoom-in for a short beat, then welcome typing fires fast.
// Regular re-login — no zoom, no glitch. Just land on the
// dashboard and kick off the welcome typing quickly.
playDashboardLoadOomph()
showZoomIn.value = true
loginTransition.setPendingWelcomeTyping(true)
loginTransition.setJustLoggedIn(false)
scheduledTimeout(() => { showZoomIn.value = false }, 1200)
scheduledTimeout(() => {
loginTransition.setStartWelcomeTyping(true)
loginTransition.setPendingWelcomeTyping(false)
}, 600)
}, 300)
}
window.addEventListener('keydown', handleKioskShortcuts)