- 13-01-SUMMARY.md: full execution summary with decisions, deviations, and task commits - STATE.md: updated position to phase 13 plan 01 complete, added key decisions - ROADMAP.md: 13-01 checked off, phase 13 progress 1/4 - REQUIREMENTS.md: REMOTE-01, REMOTE-02, REMOTE-06 marked complete (3/6 v1.3 requirements) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7.1 KiB
7.1 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, requirements-completed, duration, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | requirements-completed | duration | completed | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13-add-remaining-rclone-remotes | 01 | api |
|
|
|
|
|
|
|
|
|
10min | 2026-04-01 |
Phase 13 Plan 01: Registry Refactor and 18-Backend Expansion Summary
BACKEND_REGISTRY expanded from 7 to 18 backends with derived BackendType, BackendCategory, and auto-generated BACKEND_SCHEMAS — zero per-backend boilerplate for future additions
Performance
- Duration: ~10 min
- Started: 2026-04-01T16:13:00Z
- Completed: 2026-04-01T16:20:00Z
- Tasks: 2
- Files modified: 7
Accomplishments
- Registry expanded with 11 new backends: azure-files, swift, gdrive, dropbox, box, pcloud, ftp, webdav, smb, http, seafile
- BackendType now derived from
keyof typeof BACKEND_REGISTRY— adding a backend no longer requires touching a manual union type - BACKEND_SCHEMAS auto-generated from registry keys — no per-backend
buildZodSchema()call needed - RCLONE_TYPE_MAP covers all 18 backends with verified rclone type strings
- Test count grew from 63 to 266 (all green, no regressions)
Task Commits
Each task was committed atomically:
- Task 1: Refactor registry types and add all 10 new backend entries -
b8c6493(feat) - Task 2: Auto-generate BACKEND_SCHEMAS, update RCLONE_TYPE_MAP, update tests -
3010cdb(feat)
Files Created/Modified
src/schemas/registry.ts- Added BackendCategory type, BackendMeta interface, category field on all entries, 11 new backends, BackendType derived from keyofsrc/schemas/registry.test.ts- Expanded from 24 to 48 tests; covers all 18 backends, category assertions, new backend field validationsrc/schemas/index.ts- Replaced explicit BACKEND_SCHEMAS object with Object.fromEntries auto-generationsrc/schemas/index.test.ts- Added 3 auto-generation tests + 4 new backend schema smoke tests (ftp, smb, seafile, dropbox)src/generators/rclone-conf.ts- RCLONE_TYPE_MAP expanded to 18 entries, exported for test accesssrc/generators/rclone-conf.test.ts- Added RCLONE_TYPE_MAP exhaustiveness test + gdrive/ftp/smb conf output testssrc/components/wizard/BackendSelectionStep.test.tsx- Fixed /next/i button selector ambiguity (Rule 1 bug fix)
Decisions Made
- BackendType is derived from
keyof typeof BACKEND_REGISTRY— eliminates manual union maintenance at 18+ backends - The
as Record<BackendType,...>cast at the bottom of the registry was circular when BackendType derived from registry keys — removed it;as constprovides full inference - Google Drive supports both OAuth token and service account auth paths via two optional fields (
tokenandservice_account_credentials) — GdriveAuthToggle component deferred to plan 13-03 (UI work) - Registry ended up with 18 backends (plan said 17) — research doc listed
httpandseafileas separate entries making the correct count 18; test assertions updated to match reality - RCLONE_TYPE_MAP exported for direct exhaustiveness testing
Deviations from Plan
Auto-fixed Issues
1. [Rule 1 - Bug] Fixed BackendSelectionStep test broken by WebDAV "NextCloud" description
- Found during: Task 2 (full test suite run)
- Issue: Test used
getByRole('button', { name: /next/i })— matched both the WebDAV card (description contains "NextCloud") and the actual Next submit button after new backends were added - Fix: Changed to
getByRole('button', { name: 'Next' })(exact match) to target only the submit button - Files modified:
src/components/wizard/BackendSelectionStep.test.tsx - Verification: All 266 tests pass, full suite green
- Committed in:
3010cdb(Task 2 commit)
Total deviations: 1 auto-fixed (Rule 1 - bug triggered by new data) Impact on plan: Minor test fix required by our own data addition. No scope creep.
Issues Encountered
- Registry backend count was 18 not 17 — research doc included both
httpandseafileas separate entries, the "17" in the plan was a counting error. Updated test assertions and SUMMARY to reflect the actual correct count.
User Setup Required
None - no external service configuration required.
Next Phase Readiness
- Registry foundation complete — all 18 backends have entries, types are derived, schemas auto-generate
- Plan 13-02 can now proceed with BackendSelectionStep UI overhaul (category headings, search filter, backend cards for all 18)
- Plan 13-03 can proceed with RemoteConfigStep new backend config forms
- BackendType is now available as a union of 18 values wherever
import type { BackendType } from '../schemas/registry'is used
Phase: 13-add-remaining-rclone-remotes Completed: 2026-04-01