Files
Ready2Blob/.planning/MILESTONES.md
T

46 lines
2.5 KiB
Markdown

# Milestones
## v1.0 MVP (Shipped: 2026-03-27)
**Phases completed:** 4 phases, 18 plans
**Timeline:** 2026-03-26 → 2026-03-27 (2 days)
**Stats:** ~2,746 LOC TypeScript/TSX, 101 files, 73 commits
**Key accomplishments:**
1. Vite 6 + React 18 + TypeScript scaffold with Tailwind v4, Vitest, and zero-error dev server
2. Backend Schema Registry as single source of truth — drives form rendering, Zod validation, and config generation for Azure Blob, S3, S3-compatible
3. 4 pure generator functions (rclone.conf, Intune install/detection, RMM script) — 61 tests, UTF-8 no-BOM, SYSTEM-context safe
4. Multi-step wizard (backend selection → config → deployment options) with full back-navigation and no data loss — 87 tests GREEN
5. Review + download + security layer — live preview, security gate, individual downloads, ZIP bundle, clipboard copy — 98 tests GREEN
6. Pure client-side: no backend, no localStorage writes, credentials never leave the browser
**Tech debt deferred to v1.1:**
- `scriptTargets` collected in DeploymentStep but ignored by ReviewStep (all output blocks render unconditionally)
- ReviewStep missing explicit Back button (UX inconsistency)
- Backend list hardcoded in BackendSelectionStep, not driven by BACKEND_REGISTRY keys
- `BackendFormValues<T>` dead export in src/schemas/index.ts
- `act()` warnings in BackendSelectionStep tests
---
## v1.1 Backlog & Tech Debt (Shipped: 2026-03-31)
**Phases completed:** 3 phases, 11 plans
**Timeline:** 2026-03-30 → 2026-03-31 (2 days)
**Stats:** 47 files changed, +7,311 / -210 lines
**Key accomplishments:**
1. Registry-driven architecture — BACKEND_REGISTRY enriched with `displayName`, `description`, `fields`; BackendSelectionStep fully data-driven via `Object.entries()`
2. 4 new cloud backends — OneDrive, SFTP (password + key auth), GCS, and Backblaze B2 added end-to-end through registry, schema, and UI
3. SftpAuthToggle component — CSS-hidden toggle for SFTP auth method (password vs SSH key), following AzureAuthToggle pattern
4. RemoteConfigStep extended for all 7 backends — registry-loop renders all fields; SFTP has dedicated branch
5. Inline field validation — `FieldDef.validate` regex rules on 3 fields; wired via `buildZodSchema().regex()`
6. Contextual tooltips (UX-01) — `FieldDef.tooltipText` rendered via ⓘ button across all field types
**Tech debt carried forward:**
- 7 browser UI verifications pending (confirmatory, not discovery)
- FieldRenderer aria inconsistency between text-branch and select-branch (cosmetic)
- Phase 7 Nyquist compliance partial
---