docs(30-02): complete hardware detection UI + 3-step wizard plan
- SUMMARY.md for 30-02 (hardware API client, ModeSelector, HardwareSummaryStep, wizard refactor) - STATE.md updated with position, decisions, and session info - ROADMAP.md updated with phase 30 plan progress - REQUIREMENTS.md: ONBD-07 marked complete
This commit is contained in:
parent
28a1d1aa5e
commit
3886756e03
4 changed files with 92 additions and 13 deletions
|
|
@ -13,7 +13,7 @@
|
||||||
- [ ] **ONBD-04**: User can skip any onboarding step without blocking subsequent steps
|
- [ ] **ONBD-04**: User can skip any onboarding step without blocking subsequent steps
|
||||||
- [ ] **ONBD-05**: User sees summary screen showing configured providers and agent-model pairings
|
- [ ] **ONBD-05**: User sees summary screen showing configured providers and agent-model pairings
|
||||||
- [ ] **ONBD-06**: User can go from summary screen directly into chat with one click
|
- [ ] **ONBD-06**: User can go from summary screen directly into chat with one click
|
||||||
- [ ] **ONBD-07**: Local AI framed as privacy premium ("runs entirely on your machine, no accounts, works offline")
|
- [x] **ONBD-07**: Local AI framed as privacy premium ("runs entirely on your machine, no accounts, works offline")
|
||||||
|
|
||||||
### Cloud Providers
|
### Cloud Providers
|
||||||
|
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
| ONBD-01 | Phase 30 | Complete |
|
| ONBD-01 | Phase 30 | Complete |
|
||||||
| ONBD-02 | Phase 30 | Complete |
|
| ONBD-02 | Phase 30 | Complete |
|
||||||
| ONBD-03 | Phase 30 | Complete |
|
| ONBD-03 | Phase 30 | Complete |
|
||||||
| ONBD-07 | Phase 30 | Pending |
|
| ONBD-07 | Phase 30 | Complete |
|
||||||
| CLOUD-01 | Phase 31 | Pending |
|
| CLOUD-01 | Phase 31 | Pending |
|
||||||
| CLOUD-02 | Phase 31 | Pending |
|
| CLOUD-02 | Phase 31 | Pending |
|
||||||
| CLOUD-03 | Phase 31 | Pending |
|
| CLOUD-03 | Phase 31 | Pending |
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ Plans:
|
||||||
|
|
||||||
## Phases
|
## Phases
|
||||||
|
|
||||||
- [ ] **Phase 30: Hardware Detection + Mode Selection** — Unauthenticated hardware probe, Apple Silicon unified memory handling, model recommendation database, and mode selector that gates all assistant-specific features
|
- [x] **Phase 30: Hardware Detection + Mode Selection** — Unauthenticated hardware probe, Apple Silicon unified memory handling, model recommendation database, and mode selector that gates all assistant-specific features (completed 2026-04-02)
|
||||||
- [ ] **Phase 31: Puter.js Zero-Config Cloud** — Server-proxied Puter.js adapter with full cost tracking, Google OAuth PKCE tier, and subscription auto-detection; no API keys required for zero-config path
|
- [ ] **Phase 31: Puter.js Zero-Config Cloud** — Server-proxied Puter.js adapter with full cost tracking, Google OAuth PKCE tier, and subscription auto-detection; no API keys required for zero-config path
|
||||||
- [ ] **Phase 32: Multi-Step Onboarding Wizard** — Assemble all provider tiers and hardware data into a skippable multi-step wizard; summary screen routes directly into chat
|
- [ ] **Phase 32: Multi-Step Onboarding Wizard** — Assemble all provider tiers and hardware data into a skippable multi-step wizard; summary screen routes directly into chat
|
||||||
- [ ] **Phase 33: Persistent Memory + Personal Assistant Mode** — File-backed memory with write-time sanitization, PersonalAssistantPage, conversation handoff to PM agent
|
- [ ] **Phase 33: Persistent Memory + Personal Assistant Mode** — File-backed memory with write-time sanitization, PersonalAssistantPage, conversation handoff to PM agent
|
||||||
|
|
@ -112,7 +112,7 @@ Plans:
|
||||||
|
|
||||||
Plans:
|
Plans:
|
||||||
- [x] 30-01-PLAN.md — Hardware service, nexus-settings service, model catalog extension, routes, and tests
|
- [x] 30-01-PLAN.md — Hardware service, nexus-settings service, model catalog extension, routes, and tests
|
||||||
- [ ] 30-02-PLAN.md — ModeSelector, HardwareSummaryStep, useHardwareInfo hook, multi-step wizard wiring
|
- [x] 30-02-PLAN.md — ModeSelector, HardwareSummaryStep, useHardwareInfo hook, multi-step wizard wiring
|
||||||
|
|
||||||
### Phase 31: Puter.js Zero-Config Cloud
|
### Phase 31: Puter.js Zero-Config Cloud
|
||||||
**Goal**: Users without Ollama installed can reach working AI in one click via Puter.js — all calls server-proxied, tokens server-stored, cost tracked; Google OAuth and subscription auto-detection round out the provider tier
|
**Goal**: Users without Ollama installed can reach working AI in one click via Puter.js — all calls server-proxied, tokens server-stored, cost tracked; Google OAuth and subscription auto-detection round out the provider tier
|
||||||
|
|
@ -215,7 +215,7 @@ All 21 v1.5 requirements are mapped to exactly one phase. No orphans.
|
||||||
| 27. Hermes Adapter | v1.4 | 1/1 | Complete | 2026-04-02 |
|
| 27. Hermes Adapter | v1.4 | 1/1 | Complete | 2026-04-02 |
|
||||||
| 28. Ollama Integration & Agent Surface | v1.4 | 3/3 | Complete | 2026-04-02 |
|
| 28. Ollama Integration & Agent Surface | v1.4 | 3/3 | Complete | 2026-04-02 |
|
||||||
| 29. Default Provider & End-to-End | v1.4 | 2/2 | Complete | 2026-04-02 |
|
| 29. Default Provider & End-to-End | v1.4 | 2/2 | Complete | 2026-04-02 |
|
||||||
| 30. Hardware Detection + Mode Selection | v1.5 | 1/2 | In Progress| |
|
| 30. Hardware Detection + Mode Selection | v1.5 | 2/2 | Complete | 2026-04-02 |
|
||||||
| 31. Puter.js Zero-Config Cloud | v1.5 | 0/TBD | Not started | - |
|
| 31. Puter.js Zero-Config Cloud | v1.5 | 0/TBD | Not started | - |
|
||||||
| 32. Multi-Step Onboarding Wizard | v1.5 | 0/TBD | Not started | - |
|
| 32. Multi-Step Onboarding Wizard | v1.5 | 0/TBD | Not started | - |
|
||||||
| 33. Persistent Memory + Personal Assistant Mode | v1.5 | 0/TBD | Not started | - |
|
| 33. Persistent Memory + Personal Assistant Mode | v1.5 | 0/TBD | Not started | - |
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,15 @@
|
||||||
gsd_state_version: 1.0
|
gsd_state_version: 1.0
|
||||||
milestone: v1.5
|
milestone: v1.5
|
||||||
milestone_name: Smart Onboarding + Personal AI Assistant
|
milestone_name: Smart Onboarding + Personal AI Assistant
|
||||||
status: executing
|
status: verifying
|
||||||
stopped_at: Completed 30-hardware-detection-mode-selection/30-01-PLAN.md
|
stopped_at: "Checkpoint: Completed 30-hardware-detection-mode-selection/30-02 Tasks 1-2, awaiting human-verify on Task 3"
|
||||||
last_updated: "2026-04-02T23:24:05.319Z"
|
last_updated: "2026-04-02T23:30:20.647Z"
|
||||||
last_activity: 2026-04-02
|
last_activity: 2026-04-02
|
||||||
progress:
|
progress:
|
||||||
total_phases: 6
|
total_phases: 6
|
||||||
completed_phases: 0
|
completed_phases: 1
|
||||||
total_plans: 2
|
total_plans: 2
|
||||||
completed_plans: 1
|
completed_plans: 2
|
||||||
percent: 0
|
percent: 0
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ See: .planning/PROJECT.md (updated 2026-04-02)
|
||||||
|
|
||||||
Phase: 30 (hardware-detection-mode-selection) — EXECUTING
|
Phase: 30 (hardware-detection-mode-selection) — EXECUTING
|
||||||
Plan: 2 of 2
|
Plan: 2 of 2
|
||||||
Status: Ready to execute
|
Status: Phase complete — ready for verification
|
||||||
Last activity: 2026-04-02
|
Last activity: 2026-04-02
|
||||||
|
|
||||||
Progress: [__________] 0%
|
Progress: [__________] 0%
|
||||||
|
|
@ -53,6 +53,7 @@ Progress: [__________] 0%
|
||||||
|
|
||||||
*Updated after each plan completion*
|
*Updated after each plan completion*
|
||||||
| Phase 30-hardware-detection-mode-selection P01 | 15 | 2 tasks | 8 files |
|
| Phase 30-hardware-detection-mode-selection P01 | 15 | 2 tasks | 8 files |
|
||||||
|
| Phase 30-hardware-detection-mode-selection P02 | 15 | 2 tasks | 6 files |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
|
|
@ -70,6 +71,8 @@ Key constraints for v1.5 (established at roadmap):
|
||||||
- Google OAuth cloud tier: include but flag policy risk (Gemini CLI abuse detection issue #21866)
|
- Google OAuth cloud tier: include but flag policy risk (Gemini CLI abuse detection issue #21866)
|
||||||
- Skip-all minimum valid state: one working agent with a valid provider must be created when user skips all steps
|
- Skip-all minimum valid state: one working agent with a valid provider must be created when user skips all steps
|
||||||
- [Phase 30-hardware-detection-mode-selection]: Hardware routes mounted before api Router to bypass boardMutationGuard; Apple Silicon detection via process.platform + cpuModel.startsWith('Apple') without calling si.graphics(); Promise.race 3s timeout on GPU probe for cpu_only fallback
|
- [Phase 30-hardware-detection-mode-selection]: Hardware routes mounted before api Router to bypass boardMutationGuard; Apple Silicon detection via process.platform + cpuModel.startsWith('Apple') without calling si.graphics(); Promise.race 3s timeout on GPU probe for cpu_only fallback
|
||||||
|
- [Phase 30-hardware-detection-mode-selection]: Hardware probe is non-blocking — wizard step 1 always has an enabled Continue button regardless of probe outcome
|
||||||
|
- [Phase 30-hardware-detection-mode-selection]: Mode save on wizard completion is non-blocking — wrapped in try/catch, defaults to 'both' on failure
|
||||||
|
|
||||||
### Pending Todos
|
### Pending Todos
|
||||||
|
|
||||||
|
|
@ -84,6 +87,6 @@ None yet.
|
||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-04-02T23:24:05.316Z
|
Last session: 2026-04-02T23:30:20.643Z
|
||||||
Stopped at: Completed 30-hardware-detection-mode-selection/30-01-PLAN.md
|
Stopped at: Checkpoint: Completed 30-hardware-detection-mode-selection/30-02 Tasks 1-2, awaiting human-verify on Task 3
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
---
|
||||||
|
phase: 30-hardware-detection-mode-selection
|
||||||
|
plan: "02"
|
||||||
|
subsystem: ui
|
||||||
|
tags: [onboarding, hardware-detection, mode-selection, react-query, wizard]
|
||||||
|
dependency_graph:
|
||||||
|
requires: ["30-01"]
|
||||||
|
provides: ["hardware-api-client", "mode-selector-ui", "hardware-summary-ui", "3-step-wizard"]
|
||||||
|
affects: ["ui/src/components/NexusOnboardingWizard.tsx"]
|
||||||
|
tech_stack:
|
||||||
|
added: []
|
||||||
|
patterns: ["useQuery for hardware probe", "multi-step wizard with step state", "non-blocking hardware probe"]
|
||||||
|
key_files:
|
||||||
|
created:
|
||||||
|
- ui/src/api/hardware.ts
|
||||||
|
- ui/src/hooks/useHardwareInfo.ts
|
||||||
|
- ui/src/components/onboarding/ModeSelector.tsx
|
||||||
|
- ui/src/components/onboarding/HardwareSummaryStep.tsx
|
||||||
|
modified:
|
||||||
|
- ui/src/components/NexusOnboardingWizard.tsx
|
||||||
|
- ui/src/lib/queryKeys.ts
|
||||||
|
decisions:
|
||||||
|
- "Hardware probe is non-blocking — wizard step 1 always has an enabled Continue button regardless of probe outcome"
|
||||||
|
- "Mode save on wizard completion is wrapped in try/catch — failure is silent, defaults to 'both'"
|
||||||
|
- "Pre-existing AgentConfigForm.tsx TypeScript error is out-of-scope; documented here for awareness"
|
||||||
|
metrics:
|
||||||
|
duration: 15
|
||||||
|
completed_date: "2026-04-02"
|
||||||
|
tasks_completed: 2
|
||||||
|
files_changed: 6
|
||||||
|
---
|
||||||
|
|
||||||
|
# Phase 30 Plan 02: Hardware Detection UI + 3-Step Wizard Summary
|
||||||
|
|
||||||
|
**One-liner:** Three-step onboarding wizard with hardware probe display (GPU/Apple Silicon/CPU-only), three-card mode selector, and settings persistence via PATCH /api/nexus/settings.
|
||||||
|
|
||||||
|
## What Was Built
|
||||||
|
|
||||||
|
### Task 1: API client, hook, ModeSelector, and HardwareSummaryStep
|
||||||
|
- `ui/src/api/hardware.ts` — typed fetch wrappers: `fetchHardwareInfo`, `fetchNexusSettings`, `updateNexusSettings`, plus `HardwareInfo`, `HardwareTier`, `NexusMode`, `NexusSettings` types (local copy — not imported from server)
|
||||||
|
- `ui/src/hooks/useHardwareInfo.ts` — `useHardwareInfo(enabled)` hook wrapping `useQuery` with 5-minute staleTime and retry: 1
|
||||||
|
- `ui/src/lib/queryKeys.ts` — added `hardware: { info: ["hardware", "info"] as const }` key
|
||||||
|
- `ui/src/components/onboarding/ModeSelector.tsx` — three vertical cards with `border-primary bg-primary/5` selected state; modes: Personal AI Assistant, Project Builder, Both (recommended)
|
||||||
|
- `ui/src/components/onboarding/HardwareSummaryStep.tsx` — skeleton loading (3 rows), error state (non-destructive copy), and success state with tier-appropriate labels (Unified memory for Apple Silicon, GPU VRAM for GPU tier, System RAM for CPU-only), plus privacy frame for local AI tiers
|
||||||
|
|
||||||
|
### Task 2: Wire multi-step wizard
|
||||||
|
- `ui/src/components/NexusOnboardingWizard.tsx` refactored from single-step to 3-step wizard
|
||||||
|
- Step indicator `Step {step} of 3` shown above content
|
||||||
|
- Step 1: hardware detection heading changes from "Detecting your hardware..." to "Your hardware" when probe resolves; HardwareSummaryStep displayed; Continue always enabled
|
||||||
|
- Step 2: ModeSelector with "both" pre-selected; Continue and Back buttons
|
||||||
|
- Step 3: existing root directory form preserved; Back button added; Get Started submit
|
||||||
|
- `updateNexusSettings({ mode: selectedMode })` called after company creation, before navigate — wrapped in try/catch (non-blocking)
|
||||||
|
- Reset effect expanded to also reset `step` to 1 and `selectedMode` to "both" on wizard close
|
||||||
|
|
||||||
|
## Checkpoint: Awaiting Visual Verification
|
||||||
|
|
||||||
|
Task 3 is a `checkpoint:human-verify` — see PLAN.md for how-to-verify steps.
|
||||||
|
|
||||||
|
## Deviations from Plan
|
||||||
|
|
||||||
|
None — plan executed exactly as written.
|
||||||
|
|
||||||
|
## Known Stubs
|
||||||
|
|
||||||
|
None — all data paths are wired. `useHardwareInfo` fetches from `/api/system/providers` (implemented in 30-01). `updateNexusSettings` PATCHes `/api/nexus/settings` (implemented in 30-01).
|
||||||
|
|
||||||
|
## Self-Check: PASSED
|
||||||
|
|
||||||
|
Files created/modified:
|
||||||
|
- FOUND: /opt/nexus/ui/src/api/hardware.ts
|
||||||
|
- FOUND: /opt/nexus/ui/src/hooks/useHardwareInfo.ts
|
||||||
|
- FOUND: /opt/nexus/ui/src/components/onboarding/ModeSelector.tsx
|
||||||
|
- FOUND: /opt/nexus/ui/src/components/onboarding/HardwareSummaryStep.tsx
|
||||||
|
- FOUND: /opt/nexus/ui/src/components/NexusOnboardingWizard.tsx
|
||||||
|
|
||||||
|
Commits: f4423546, e1bdb9a8
|
||||||
Loading…
Add table
Reference in a new issue