docs(06-03): complete new backends UI wiring plan

- SUMMARY.md: all 7 backends wired in RemoteConfigStep, human-verified
- STATE.md: progress updated to 100%, decision and metrics recorded
- ROADMAP.md: phase 6 marked Complete (4/4 plans)
This commit is contained in:
2026-03-31 08:59:26 +02:00
parent 09adff0e67
commit 31a6d00a67
3 changed files with 135 additions and 5 deletions
+2 -2
View File
@@ -24,7 +24,7 @@ Full phase details: [.planning/milestones/v1.0-ROADMAP.md](milestones/v1.0-ROADM
**Milestone Goal:** Ship all deferred tech debt and backlog features from v1.0 — scriptTargets filtering, UX consistency fixes, registry-driven backend list, 4 new backends, field validation, and contextual tooltips. **Milestone Goal:** Ship all deferred tech debt and backlog features from v1.0 — scriptTargets filtering, UX consistency fixes, registry-driven backend list, 4 new backends, field validation, and contextual tooltips.
- [x] **Phase 5: Tech Debt** - Fix all deferred v1.0 issues (scriptTargets filtering, Back button, registry-driven UI, dead export, test warnings) (completed 2026-03-30) - [x] **Phase 5: Tech Debt** - Fix all deferred v1.0 issues (scriptTargets filtering, Back button, registry-driven UI, dead export, test warnings) (completed 2026-03-30)
- [ ] **Phase 6: New Backends** - Add OneDrive, SFTP, Google Cloud Storage, and Backblaze B2 to the backend registry and wizard - [x] **Phase 6: New Backends** - Add OneDrive, SFTP, Google Cloud Storage, and Backblaze B2 to the backend registry and wizard (completed 2026-03-31)
- [ ] **Phase 7: Validation & UX Polish** - Add field-level format validation and contextual tooltips across all backends - [ ] **Phase 7: Validation & UX Polish** - Add field-level format validation and contextual tooltips across all backends
## Phase Details ## Phase Details
@@ -85,5 +85,5 @@ Plans:
| 3. Wizard UI | v1.0 | 5/5 | Complete | 2026-03-27 | | 3. Wizard UI | v1.0 | 5/5 | Complete | 2026-03-27 |
| 4. Review, Download & Security | v1.0 | 5/5 | Complete | 2026-03-27 | | 4. Review, Download & Security | v1.0 | 5/5 | Complete | 2026-03-27 |
| 5. Tech Debt | 4/4 | Complete | 2026-03-30 | - | | 5. Tech Debt | 4/4 | Complete | 2026-03-30 | - |
| 6. New Backends | 3/4 | In Progress| | - | | 6. New Backends | 4/4 | Complete | 2026-03-31 | - |
| 7. Validation & UX Polish | v1.1 | 0/TBD | Not started | - | | 7. Validation & UX Polish | v1.1 | 0/TBD | Not started | - |
+21 -3
View File
@@ -1,3 +1,19 @@
---
gsd_state_version: 1.0
milestone: v1.1
milestone_name: Backlog & Tech Debt
status: planning
stopped_at: Completed 06-new-backends 06-03-PLAN.md
last_updated: "2026-03-31T06:58:48.939Z"
last_activity: 2026-03-27 — v1.1 roadmap created, 11 requirements mapped across 3 phases
progress:
total_phases: 3
completed_phases: 2
total_plans: 8
completed_plans: 8
percent: 100
---
--- ---
gsd_state_version: 1.0 gsd_state_version: 1.0
milestone: v1.1 milestone: v1.1
@@ -7,7 +23,7 @@ stopped_at: Completed 06-new-backends 06-02-PLAN.md
last_updated: "2026-03-30T16:15:00Z" last_updated: "2026-03-30T16:15:00Z"
last_activity: 2026-03-27 — v1.1 roadmap created, 11 requirements mapped across 3 phases last_activity: 2026-03-27 — v1.1 roadmap created, 11 requirements mapped across 3 phases
progress: progress:
total_phases: 3 [██████████] 100%
completed_phases: 1 completed_phases: 1
total_plans: 8 total_plans: 8
completed_plans: 7 completed_plans: 7
@@ -71,6 +87,7 @@ Progress: [░░░░░░░░░░] 0% (v1.1)
| Phase 06-new-backends P00 | 5min | 3 tasks | 3 files | | Phase 06-new-backends P00 | 5min | 3 tasks | 3 files |
| Phase 06-new-backends P01 | 5min | 2 tasks | 3 files | | Phase 06-new-backends P01 | 5min | 2 tasks | 3 files |
| Phase 06-new-backends P02 | 4min | 2 tasks | 4 files | | Phase 06-new-backends P02 | 4min | 2 tasks | 4 files |
| Phase 06-new-backends P03 | 10min | 2 tasks | 1 files |
## Accumulated Context ## Accumulated Context
@@ -97,6 +114,7 @@ Recent decisions affecting v1.1 work:
- [Phase 06-new-backends]: OneDrive uses paste-based OAuth token (JSON token field), GCS uses service_account_credentials (paste JSON), B2 uses account + key — all follow stateless browser-paste pattern - [Phase 06-new-backends]: OneDrive uses paste-based OAuth token (JSON token field), GCS uses service_account_credentials (paste JSON), B2 uses account + key — all follow stateless browser-paste pattern
- [Phase 06-new-backends]: SftpAuthToggle follows AzureAuthToggle CSS-hidden pattern: both pass and key_pem always registered with react-hook-form, tab visibility via div.block/div.hidden - [Phase 06-new-backends]: SftpAuthToggle follows AzureAuthToggle CSS-hidden pattern: both pass and key_pem always registered with react-hook-form, tab visibility via div.block/div.hidden
- [Phase 06-new-backends]: RCLONE_TYPE_MAP and BACKEND_SCHEMAS extended for all 7 backends in plan 02 (not just sftp) to fix failing onedrive/gcs/b2 test assertions - [Phase 06-new-backends]: RCLONE_TYPE_MAP and BACKEND_SCHEMAS extended for all 7 backends in plan 02 (not just sftp) to fix failing onedrive/gcs/b2 test assertions
- [Phase 06-new-backends]: Three-branch ternary in RemoteConfigStep (azureblob/sftp/else) keeps custom logic minimal; OneDrive/GCS/B2 render entirely via registry loop
### Pending Todos ### Pending Todos
@@ -111,6 +129,6 @@ None yet.
## Session Continuity ## Session Continuity
Last session: 2026-03-30T16:15:00Z Last session: 2026-03-31T06:58:48.937Z
Stopped at: Completed 06-new-backends 06-02-PLAN.md Stopped at: Completed 06-new-backends 06-03-PLAN.md
Resume file: None Resume file: None
@@ -0,0 +1,112 @@
---
phase: 06-new-backends
plan: "03"
subsystem: ui
tags: [react, wizard, rclone, sftp, onedrive, gcs, b2, vitest]
# Dependency graph
requires:
- phase: 06-new-backends/06-01
provides: OneDrive, GCS, B2 registry entries and schemas
- phase: 06-new-backends/06-02
provides: SFTP registry entry, SftpAuthToggle component, RCLONE_TYPE_MAP and BACKEND_SCHEMAS extended for all 7 backends
provides:
- RemoteConfigStep.tsx extended to handle all 7 BackendType values
- SFTP branch with SftpAuthToggle (CSS-hidden password/private-key toggle)
- OneDrive/GCS/B2 rendered via registry loop (no custom branch needed)
- All four new backends visually verified in wizard UI by user
affects:
- 07-validation-ux — RemoteConfigStep is the primary config form; any field-level validation work targets these same fields
# Tech tracking
tech-stack:
added: []
patterns:
- Three-branch JSX ternary in RemoteConfigStep (azureblob → sftp → registry loop)
- Auth toggle subcomponent pattern (SftpAuthToggle mirrors AzureAuthToggle)
key-files:
created: []
modified:
- src/components/wizard/RemoteConfigStep.tsx
key-decisions:
- "Three-branch ternary: azureblob (AzureAuthToggle), sftp (SftpAuthToggle), all others (registry loop) — minimal custom branching, maximal registry reuse"
- "OneDrive/GCS/B2 render entirely via registry loop with zero custom JSX branches — registry is the single source of truth"
patterns-established:
- "New auth-toggle pattern: import toggle component, add named branch in ternary, render host/user via FieldRenderer then toggle for pass/key fields"
- "Registry-loop default: any new backend that doesn't need a custom auth toggle is automatically handled by the else branch"
requirements-completed:
- BACK-01
- BACK-02
- BACK-03
- BACK-04
# Metrics
duration: ~10min
completed: 2026-03-30
---
# Phase 06 Plan 03: New Backends UI Wiring Summary
**RemoteConfigStep extended to all 7 backends via three-branch ternary — SFTP uses SftpAuthToggle, OneDrive/GCS/B2 render via registry loop, human-verified in running app**
## Performance
- **Duration:** ~10 min
- **Started:** 2026-03-30T16:15:00Z
- **Completed:** 2026-03-30T16:25:00Z
- **Tasks:** 2 (1 auto + 1 human-verify)
- **Files modified:** 1
## Accomplishments
- Extended `backendLabel` record to cover all 7 BackendType values (onedrive, sftp, gcs, b2 added)
- Added SFTP branch in JSX ternary: renders host + user via FieldRenderer, then SftpAuthToggle for pass/key_pem toggle
- OneDrive, GCS, and B2 render through the existing registry loop — no new custom branches
- Full Vitest suite green, zero TypeScript errors confirmed
- All four new backends visually verified in the wizard UI by the user
## Task Commits
Each task was committed atomically:
1. **Task 1: Extend RemoteConfigStep.tsx — backendLabel + sftp branch + all four new backends** - `09adff0` (feat)
2. **Task 2: Human verify all four new backends in the wizard UI** - human-approved (no code commit)
**Plan metadata:** (this docs commit — see below)
## Files Created/Modified
- `src/components/wizard/RemoteConfigStep.tsx` - Extended to handle all 7 backends; SFTP branch with SftpAuthToggle; backendLabel exhaustive over all BackendType values
## Decisions Made
- Three-branch ternary (azureblob / sftp / else) keeps custom logic minimal: only backends with non-standard auth flows get their own branch
- OneDrive, GCS, and B2 required zero custom JSX because their fields are all standard input/password/select types fully covered by FieldRenderer and the registry loop
## Deviations from Plan
None - plan executed exactly as written.
## Issues Encountered
None.
## User Setup Required
None - no external service configuration required.
## Next Phase Readiness
- All 7 backends are now wired end-to-end: registry → schema → rclone-conf → wizard UI
- Phase 7 (Validation & UX Polish) can target any field in any of the 7 backends — the UI layer is complete
- No blockers for Phase 7
---
*Phase: 06-new-backends*
*Completed: 2026-03-30*