Route first-run guidance through the unified infrastructure source picker and align setup, tour, dashboard, and empty-state copy with the source-strategy model.
The ToastContainer was only rendered inside the authenticated app shell,
making all toast notifications invisible during the first-run setup wizard.
Users clicking "Create Account" with an invalid password saw no feedback
at all — just silent 400 errors in the browser console.
- Move ToastContainer outside the needsAuth conditional so it renders
unconditionally, including during setup
- Add client-side password length validation (>= 12 chars) in SecurityStep
to catch the most common case before hitting the server
- Fix WelcomeStep to check response.ok after bootstrap token validation
so the wizard won't advance with an invalid token
Related to #1173
Replace gradient backgrounds and buttons with solid colors for a
cleaner, more consistent appearance:
- Login page backgrounds and buttons
- FirstRunSetup background
- SetupWizard backgrounds and all step buttons
- Also update FeaturesStep to reference 'Settings → AI' instead of
'Settings → Pulse Assistant'
Removed Connect and Features steps that were adding friction without much value.
The wizard now focuses on:
1. Welcome - introduction and bootstrap token entry
2. Security - credential setup
3. Complete - shows install command and connected agents
Agent polling now happens in CompleteStep instead of relying on WebSockets
which aren't available during the pre-login setup phase.
- Fixed unused variables in wizard components
- Fixed invalid aiEnabled field in FeaturesStep (AI uses separate API)
- Added AI endpoints section to API.md
- New SetupWizard component with 5-step flow:
1. Welcome: Bootstrap token unlock, platform showcase
2. Security: Admin account + API token creation
3. Connect: Multi-platform infrastructure (Proxmox, Docker, K8s)
4. Features: AI and auto-updates toggles
5. Complete: Credentials display with copy/download
- Replaced FirstRunSetup with SetupWizard in Login.tsx
- Added Install Update button to UpdatesSettingsPanel
- Enhanced UpdatesSettingsPanel with update plan integration
- Added UpdateConfirmationModal to Settings for inline updates
Positions Pulse as a unified infrastructure monitoring platform,
not just a Proxmox-specific tool.