From e0828677a4e833b387e899ee84c1f736bffb94f9 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Thu, 2 Apr 2026 18:11:57 -0700 Subject: [PATCH] =?UTF-8?q?feat(wizard):=20Vue=20onboarding=20wizard=20?= =?UTF-8?q?=E2=80=94=20all=207=20steps=20+=20router=20wiring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - WizardLayout.vue: full-page card, progress bar, crash-recovery via loadStatus(isCloud); auto-skips steps 1/2/5 in cloud mode - wizard.css: shared step styles (headings, banners, radio cards, chip lists, form fields, expandables, nav buttons) - Step 1 — Hardware: GPU detection, profile select, mismatch warning - Step 2 — Tier: Free/Paid/Premium radio cards - Step 3 — Resume: upload (PDF/DOCX/ODT) or manual experience builder; pre-fills identity fields from parsed resume data - Step 4 — Identity: name/email/phone/LinkedIn/career summary; full validation before saveStep - Step 5 — Inference: remote API keys vs local Ollama; advanced service-host/port expandable; soft-fail connection test - Step 6 — Search: chip-style job title + location input with comma/Enter commit; remote-only checkbox - Step 7 — Integrations: optional tile-grid (Notion/Calendar/Slack/ Discord/Drive); paid-tier badge for gated items; calls wizard.complete() on Finish - wizard.ts Pinia store: loadStatus, detectHardware, saveStep, testInference, complete; cloud auto-skip logic - wizardGuard.ts: gates all routes behind /setup until wizard_complete; redirects complete users away from /setup - router/index.ts: /setup nested route tree; unified beforeEach guard (wizard gate → setup branch → settings tier gate) - App.vue: hide AppNav + strip sidebar margin on /setup routes --- web/src/App.vue | 23 +- web/src/router/index.ts | 31 +- web/src/router/wizardGuard.ts | 35 ++ web/src/stores/appConfig.ts | 9 +- web/src/stores/wizard.ts | 279 +++++++++++++++ web/src/views/wizard/WizardHardwareStep.vue | 63 ++++ web/src/views/wizard/WizardIdentityStep.vue | 117 +++++++ web/src/views/wizard/WizardInferenceStep.vue | 169 +++++++++ .../views/wizard/WizardIntegrationsStep.vue | 160 +++++++++ web/src/views/wizard/WizardLayout.vue | 204 +++++++++++ web/src/views/wizard/WizardResumeStep.vue | 311 +++++++++++++++++ web/src/views/wizard/WizardSearchStep.vue | 232 ++++++++++++ web/src/views/wizard/WizardTierStep.vue | 68 ++++ web/src/views/wizard/wizard.css | 329 ++++++++++++++++++ 14 files changed, 2021 insertions(+), 9 deletions(-) create mode 100644 web/src/router/wizardGuard.ts create mode 100644 web/src/stores/wizard.ts create mode 100644 web/src/views/wizard/WizardHardwareStep.vue create mode 100644 web/src/views/wizard/WizardIdentityStep.vue create mode 100644 web/src/views/wizard/WizardInferenceStep.vue create mode 100644 web/src/views/wizard/WizardIntegrationsStep.vue create mode 100644 web/src/views/wizard/WizardLayout.vue create mode 100644 web/src/views/wizard/WizardResumeStep.vue create mode 100644 web/src/views/wizard/WizardSearchStep.vue create mode 100644 web/src/views/wizard/WizardTierStep.vue create mode 100644 web/src/views/wizard/wizard.css diff --git a/web/src/App.vue b/web/src/App.vue index 7bee901..b6088ce 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -1,9 +1,9 @@ diff --git a/web/src/views/wizard/WizardIdentityStep.vue b/web/src/views/wizard/WizardIdentityStep.vue new file mode 100644 index 0000000..3a46237 --- /dev/null +++ b/web/src/views/wizard/WizardIdentityStep.vue @@ -0,0 +1,117 @@ +