Files
kawaandClaude Sonnet 4.6 a26608791f chore: complete v1.3 milestone — Backend Expansion
Archives v1.3 milestone (Phase 13: 18 rclone backends), updates PROJECT.md
with all 30 validated requirements, reorganizes ROADMAP.md with all 4 milestones
in collapsed details blocks, adds v1.2 and v1.3 retrospective entries.

Also commits minor CSS token fixes in src/ (text-on-surface-container class
alignment) that were uncommitted from phase 13 execution.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 16:54:45 +02:00

4.7 KiB
Raw Permalink Blame History

Milestones

v1.3 Backend Expansion (Shipped: 2026-04-16)

Phases completed: 1 phase (13), 4 plans Timeline: 2026-04-01 (1 day) Stats: 28 files changed, +3,959 / -206 lines; total 6,055 TypeScript LOC

Key accomplishments:

  1. BACKEND_REGISTRY expanded from 7 → 18 backends; BackendType derived from keyof typeof — no manual union to maintain
  2. BACKEND_SCHEMAS auto-generated from registry via Object.fromEntries — zero per-backend boilerplate
  3. OAuthInstructions collapsible component with backend-specific rclone authorize commands (TDD, 4 tests)
  4. GdriveAuthToggle dual-auth component (OAuth token vs service account) for Google Drive
  5. BackendSelectionStep with category groups, instant search filtering, and inline SVG icons
  6. RemoteConfigStep wired for all 18 backends via renderBackendFields() switch function; backendLabel derived from registry

Archive: .planning/milestones/v1.3-ROADMAP.md, .planning/milestones/v1.3-REQUIREMENTS.md


v1.2 UI Polish & Clarity (Shipped: 2026-04-01)

Phases completed: 5 phases (812), 14 plans Timeline: 2026-03-31 → 2026-04-01 (2 days) Stats: 78 files changed, +9,908 / -287 lines

Key accomplishments:

  1. Full MD3 color token system — CSS custom properties in a single token file, all components use semantic classes (bg-surface, text-on-primary, etc.)
  2. Dark mode toggle (System/Light/Dark) — DOM class toggle pattern (not React Context), persisted in localStorage, zero FOUC
  3. TextFieldMD3 with CSS-only floating label (peer-[:not(:placeholder-shown)]), MD3 button hierarchy constants, rebuilt StepIndicator with numbered circles + checkmarks
  4. App intro section, step descriptions, remote name live config preview, and contextual help/tooltip enrichment across all 18 credential fields
  5. Mobile-responsive layout, MD3 focus-visible ring-3 indicators on all interactive elements
  6. Step fade/slide transition with prefers-reduced-motion guard; auto-scroll to first validation error
  7. Dark mode visibility fixes: semantic tokens on select, h2 headings, DeploymentStep form controls, ReviewStep security checkbox

Archive: .planning/milestones/v1.3-ROADMAP.md (includes v1.2 phases in archive)


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