Skip to content

feat: first-run setup wizard - #4

Merged
JiLiZART merged 3 commits into
mainfrom
feat-introduce-tour
Oct 12, 2026
Merged

JiLiZART merged 3 commits into
mainfrom
feat-introduce-tour

Conversation

@JiLiZART

Copy link
Copy Markdown
Contributor

First run now offers where the vault comes from, instead of only offering to create one.

  • Shared UI — a wizard (packages/ui/src/components/setup-wizard.tsx) driven by a host-supplied SetupBackend; the old SetupView is its create step. Hosts declare what they can offer, so the wizard renders only choices that can complete.
  • Import adopts — the chosen file becomes this device's vault and its passphrase becomes this device's passphrase. New AppVault::adopt_blob + adopt_vault command on desktop, ExtensionVaultService.adoptBlob in the extension. Both refuse once a vault exists; import_blob still merges for the Settings path.
  • Desktop — after the vault exists, an optional step turns on the bridge and shows a pairing code. Skipping leaves the bridge off.
  • Extension — a third starting point pairs with the desktop and picks client or sync, so the mode is chosen rather than defaulting silently. Nothing is written unless pairing succeeds.
  • Also carries the changeset.yml exemption for the release PR (see openspec/changes/fix-release-pr-flow/), which is why the check currently fails on chore: Release 0.1.1 #3.

Planning artifacts: openspec/changes/add-first-run-setup-wizard/.

Verified: cargo test 79 pass, pnpm -r test 188 pass, pnpm -r typecheck clean, i18n catalogs in sync. cargo clippy -D warnings fails only on the pre-existing time_sync.rs:83 drift.

Not verified headlessly: the desktop tray/popup run-through and the end-to-end pairing across both wizards.

@github-actions

Copy link
Copy Markdown

✅ Changeset detected

.changeset/first_run_setup_wizard.md

---
default: minor
---

# First-run setup wizard

A fresh install now asks where your vault should come from instead of only
offering to create one: start a new vault, import a vault file you exported
elsewhere, or — in the extension — use the vault in the desktop app. Importing
on first run adopts the file, so the passphrase that opens it unlocks this
device too. After creating a vault the desktop app offers to turn on the browser
bridge and show a pairing code.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
2fau a23d46c Commit Preview URL

Branch Preview URL
Sep 20 2026, 06:53 PM

@JiLiZART
JiLiZART merged commit 43e00bc into main Oct 12, 2026
6 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.

1 participant