feat(onboarding): one-time passphrase intro dialog on first dashboard#236
Merged
Conversation
Every new Vault install now sees a one-time, informational hidden-wallet / passphrase dialog the first time they reach the dashboard — so users with an already-initialized device (who never go through the OOB flow) still learn the feature exists and how to enable it. - New persisted setting passphrase_intro_shown, exposed via getAppSettings (AppSettings.passphraseIntroShown) + a markPassphraseIntroShown RPC. - PassphraseIntroDialog: info-only modal (reuses the hidden-wallets explainer + 'change anytime in Settings' hint, 'Got it' to dismiss). z-index below the device PIN/passphrase overlays so prompts always win. - Dashboard shows it once when settings load with passphraseIntroShown=false (skipped in watch-only); dismiss persists the flag so it never reappears. - OOB: completing the passphrase tip card marks the intro shown, so new-device users aren't educated twice.
Awaiting markPassphraseIntroShown before setStep('complete') closes a race
where the dashboard's on-mount getAppSettings read could beat the fire-and-
forget write and re-show the one-time passphrase intro to a user who just saw
it in the OOB flow. Best-effort: on RPC failure we still complete.
BitHighlander
force-pushed
the
feat/passphrase-first-run-intro
branch
from
June 9, 2026 18:38
466885a to
a299886
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Every new Vault install now sees a one-time, informational hidden-wallet / passphrase dialog the first time they reach the dashboard. This reaches the users PR #235 can't: people with an already-initialized device who never run the OOB setup flow — they still learn the feature exists and how to turn it on.
passphrase_intro_shownsetting) so it never reappears.z-indexdialog<overlay) so prompts always win.How
types.ts/index.ts:AppSettings.passphraseIntroShown(frompassphrase_intro_shown) +markPassphraseIntroShownRPC.rpc-schema.ts: method signature.PassphraseIntroDialog.tsx: new modal (purpleFaUserSecret,tutorial.cards.hiddenWallets.{title,body,settingsHint,gotIt}).Dashboard.tsx: reads the flag inrefreshFeatureFlags; renders the dialog once whenfalse(startstrueto avoid a pre-load flash); dismiss persists the flag.OobSetupWizard.tsx: marks the intro shown on passphrase-card completion.en/setup.json: addsgotIt. All new strings usedefaultValuefallbacks for untranslated locales.Dependency / ordering
Stacked on #235 (
feat/passphrase-onboarding-optin), which is stacked on #234. Includes both commits. Merge order: #234 → #235 → this. Each PR's diff narrows as its parent lands.Test plan
passphrase_intro_shownsetting) with an already-set-up device → connect → reach dashboard → ✅ intro dialog appears once. Got it → ✅ dismissed; reload/reconnect → ✅ never reappears.