3.8 KiB
| gsd_state_version | milestone | milestone_name | status | stopped_at | last_updated | last_activity | progress | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0 | v1.5 | Smart Onboarding + Personal AI Assistant | verifying | Completed 30-hardware-detection-mode-selection/30-02 (all 3 tasks, human-verify approved) | 2026-04-03T00:00:09.253Z | 2026-04-03 |
|
Project State
Project Reference
See: .planning/PROJECT.md (updated 2026-04-02)
Core value: A fresh onboard asks for ONE thing (root directory), auto-creates PM + Engineer agents, and drops you in the dashboard. Current focus: Phase 30 — hardware-detection-mode-selection
Current Position
Phase: 31 Plan: Not started Status: Phase complete — human verification approved 2026-04-02 Last activity: 2026-04-03
Progress: [__________] 0%
Performance Metrics
Velocity:
- Total plans completed: 0 (v1.5)
- Average duration: -
- Total execution time: 0 hours
By Phase:
| Phase | Plans | Total | Avg/Plan |
|---|---|---|---|
| - | - | - | - |
Recent Trend:
- Last 5 plans: none yet (v1.5)
- Trend: -
Updated after each plan completion | 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
Decisions
Decisions are logged in PROJECT.md Key Decisions table. Key constraints for v1.5 (established at roadmap):
- No DB schema changes — all state in existing JSONB fields (
instance_settings.general) and file-backed JSON (data/memory/<companyId>.json) - Puter.js is server-proxied adapter only —
@heyputer/puter.jsbrowser import is for auth popup only; all AI calls viaPOST /api/puter-proxy/chat - OAuth tokens (Google, Puter) stored server-side via
secretService— never in localStorage - Memory sanitization blocklist applied at write time, not retrieval time
- Apple Silicon: use
os.freemem()× 0.75 for VRAM estimate; label as "unified memory" not "VRAM"; usesysteminformationv5 (not v6) - Unauthenticated
GET /system/providersendpoint required for pre-auth hardware probe - 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
- [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
None yet.
Blockers/Concerns
- [Phase 31] Puter.js Node.js server-side streaming API surface unverified — confirm
stream: trueworks server-side before designingputerProxyService; plan-phase should include a research spike - [Phase 31] Puter.js ToS on server-side request relaying unverified — attribute costs to user's Puter account in all UI copy as mitigation
- [Phase 33] Chat route injection point needs codebase inspection — confirm correct hook location in
server/src/services/chat.tsduring plan-phase - [Phase 34] smart-whisper Apple Silicon acceleration claim unverified on Mac Mini M4 — fall back to
tiny.enifbase.enacceleration not confirmed on device
Session Continuity
Last session: 2026-04-02T23:54:51.280Z Stopped at: Completed 30-hardware-detection-mode-selection/30-02 (all 3 tasks, human-verify approved) Resume file: None