kawa and Claude Sonnet 4.6
0a0a51b45a
docs(05-tech-debt): create phase 5 plan — 4 plans across 2 waves
...
Wave 0 TDD stubs, Wave 1 parallel (registry + ReviewStep), Wave 2 act() fix.
Covers TECH-01 through TECH-05.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-30 09:26:17 +02:00
kawa and Claude Sonnet 4.6
c7931621a5
docs(phase-5): add validation strategy
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-30 09:19:43 +02:00
kawa and Claude Sonnet 4.6
970c9151b7
docs(05): research phase tech-debt
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-30 09:18:44 +02:00
kawa
3726d4e42d
docs(05): capture phase context
2026-03-30 09:14:03 +02:00
kawa
fecb892a2d
docs: create milestone v1.1 roadmap (3 phases)
2026-03-30 09:06:13 +02:00
kawa
dccd60031c
docs: define milestone v1.1 requirements (11 requirements)
2026-03-30 09:02:06 +02:00
kawa
0fcf03d4b5
docs: start milestone v1.1 Backlog and Tech Debt
2026-03-27 15:40:42 +01:00
kawa and Claude Sonnet 4.6
ef0cd94eb7
chore: archive v1.0 milestone — MVP shipped
...
4 phases, 18 plans, 24/24 requirements, 98 tests GREEN.
Archived ROADMAP + REQUIREMENTS to milestones/. ROADMAP collapsed.
PROJECT.md evolved with validated requirements and key decisions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 15:36:40 +01:00
kawa and Claude Sonnet 4.6
2d5f8f4a81
docs(phase-04): complete phase execution — all 11 requirements verified
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 15:03:47 +01:00
kawa
d82814f53f
docs(04-05): complete Phase 4 — human verification approved, all 18 checks passed
...
- STATE.md updated: progress 100%, decisions recorded, session closed
- ROADMAP.md phase 4 marked Complete (5/5 plans with summaries)
- Requirements CONF-02, CONF-03, DOWN-01-DOWN-06, SECU-01-SECU-03 verified in browser
2026-03-27 14:58:54 +01:00
kawa and Claude Sonnet 4.6
c108741324
fix(deployment-step): style Back and Next navigation buttons
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 14:55:35 +01:00
kawa
38fd5683e7
docs(04-05): checkpoint — Phase 4 human verification pending
...
- Created 04-05-SUMMARY.md for browser end-to-end verification checkpoint
- STATE.md progress updated to 100% (18/18 plans)
- ROADMAP.md phase 4 marked Complete (5/5 summaries)
2026-03-27 11:59:16 +01:00
kawa
08ac356dc9
docs(04-04): complete wizard wiring plan — ReviewStep integrated as step 3
...
- 04-04-SUMMARY.md: plan complete, 1 task, 2 files modified
- STATE.md: advanced to 17/18 plans (94%), recorded decision and session
- ROADMAP.md: phase 4 progress updated (4/5 summaries)
2026-03-27 11:57:15 +01:00
kawa
035c17071b
feat(04-04): wire ReviewStep as step index 3; add 'Review' label to StepIndicator
...
- Import ReviewStep in App.tsx and add as steps[3]
- Update STEP_LABELS in StepIndicator.tsx to include 'Review' as fourth entry
- Update comment: 1.Backend > 2.Remote Config > 3.Deployment > 4.Review
- Full npm test suite (98 tests, 12 files) remains GREEN
2026-03-27 11:55:46 +01:00
kawa
e7dcf30c3a
docs(04-03): complete ReviewStep plan — 10 req behaviors GREEN, 98/98 tests pass
...
- 04-03-SUMMARY.md: documents implementation, deviations, and test fixes
- STATE.md: advanced to plan 04, recorded metrics and decisions
- ROADMAP.md: updated phase 4 progress (3/5 summaries)
2026-03-27 11:54:16 +01:00
kawa
259fff6527
feat(04-03): implement ReviewStep — all 10 requirement behaviors GREEN
...
- ReviewStep.tsx: live rclone.conf preview via useMemo+try/catch (CONF-02)
- Security acknowledgement checkbox gates all download/copy buttons (SECU-01)
- 'No data is sent to any server' privacy notice (SECU-02)
- 4 OutputBlocks with download (DOWN-01–04) and copy (DOWN-06, CONF-03)
- Download All (ZIP) button calls downloadZip with all 4 file entries (DOWN-05)
- Replaced all expect.fail stubs with real assertions — 10/10 tests GREEN
2026-03-27 11:52:07 +01:00
kawa
6bba008256
docs(04-02): complete download utilities and OutputBlock plan
...
- 04-02-SUMMARY.md: execution summary for download utilities and OutputBlock
- STATE.md: progress updated to 83%, decisions recorded, session updated
- ROADMAP.md: phase 4 plan progress updated (2/5 summaries)
2026-03-27 11:46:57 +01:00
kawa
e223e8be23
feat(04-02): add OutputBlock reusable component
...
- Pre-formatted code block with label, copy button, and optional download button
- Copy button calls navigator.clipboard.writeText with 2s "Copied!" feedback
- Download button calls downloadFile(content, filename) when filename prop provided
- disabled prop gates both copy and download actions (SECU-01 security gate)
2026-03-27 11:45:21 +01:00
kawa
f948b86c0e
feat(04-02): add downloadFile and downloadZip utility functions
...
- src/utils/downloadFile.ts: Blob + createObjectURL + anchor click download
- src/utils/downloadZip.ts: JSZip archive builder with same Blob download pattern
- npm install jszip ^3.10.1 (only new runtime dependency in phase 4)
2026-03-27 11:44:41 +01:00
kawa
6138d6c6a3
docs(04-01): complete Wave 0 TDD RED baseline plan — ReviewStep stubs + SECU-03
...
- Created 04-01-SUMMARY.md
- STATE.md: progress updated to 78%, decisions recorded, session updated
- REQUIREMENTS.md: CONF-02/03, DOWN-01–06, SECU-01/02/03 marked complete
2026-03-27 11:42:44 +01:00
kawa
f428630f19
test(04-01): add SECU-03 assertion to reducer.test.ts — storage never written
...
- Added vi to import for spy capability
- SECU-03: dispatches all action types, asserts setItem never called on
Storage.prototype (covers both localStorage and sessionStorage)
- All 9 reducer tests GREEN
2026-03-27 11:40:54 +01:00
kawa
db4c80f853
test(04-01): add RED stubs for all Phase 4 requirements in ReviewStep.test.tsx
...
- CONF-02: live rclone.conf preview
- CONF-03: copy rclone.conf to clipboard
- DOWN-01 through DOWN-06: individual and ZIP download buttons
- SECU-01: download gating behind security checkbox
- SECU-02: privacy/no-server message
- Mocks: downloadFile, downloadZip, navigator.clipboard, URL
- All stubs use expect.fail('not yet implemented') — named RED baseline
2026-03-27 11:40:21 +01:00
kawa and Claude Sonnet 4.6
405bf477b4
docs(04-review-download-security): create phase 4 plan
...
5 plans across 5 waves: Wave 0 TDD stubs, utilities + OutputBlock,
ReviewStep implementation, App.tsx wiring, human verify checkpoint.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 10:23:14 +01:00
kawa and Claude Sonnet 4.6
8d5f7090e2
docs(phase-4): add research and validation strategy for Review, Download & Security
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 10:17:06 +01:00
kawa and Claude Sonnet 4.6
0397bc96c9
docs(04): research phase 4 — review, download & security
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 10:16:00 +01:00
kawa and Claude Sonnet 4.6
3185e46fd1
docs(phase-03): complete phase execution
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 10:11:08 +01:00
kawa
fe7e17e55b
docs(03-05): complete wizard wiring plan — human verify approved
...
- Updated 03-05-SUMMARY.md: checkpoint approved, plan fully complete
- Updated STATE.md: progress 100%, session recorded, decisions added
2026-03-27 10:04:33 +01:00
kawa
d3052a6776
docs(03-05): complete DeploymentStep + StepIndicator + App.tsx wiring plan
...
- 87 tests GREEN across 11 suites (WIZD-01/02/03/04, BACK-01/02/03)
- WIZD-02: App.tsx routes all 3 steps with StepIndicator breadcrumb
- WIZD-03: back-nav clears params without RESET, deployment preserved
- Human-verify checkpoint pending for end-to-end browser validation
2026-03-27 09:48:03 +01:00
kawa
8674bb83b3
feat(03-05): wire App.tsx step router and make App.test GREEN
...
- App.tsx: WizardShell routes to BackendSelectionStep/RemoteConfigStep/DeploymentStep
- App.tsx: StepIndicator renders above every step as persistent breadcrumb
- App.tsx: RemoteConfigStep keyed on backendType to force remount on backend change
- App.test.tsx: all 3 WIZD-02 tests GREEN (step 0, 1, 2 routing verified)
- Full suite: 87 tests GREEN across 11 test files
2026-03-27 09:46:02 +01:00
kawa
b00305c9a0
test(03-05): add failing App step routing WIZD-02 tests (RED)
...
- renders BackendSelectionStep when currentStep is 0
- renders RemoteConfigStep when currentStep is 1
- renders DeploymentStep when currentStep is 2
2026-03-27 09:45:09 +01:00
kawa
273789f704
feat(03-05): implement DeploymentStep and StepIndicator
...
- DeploymentStep: includeInstall toggle, configPath radio, scriptTargets checkboxes
- DeploymentStep: dispatches SET_DEPLOYMENT live on every control change
- DeploymentStep: Back button (SET_STEP(1)), Next/Review button (SET_STEP(3))
- StepIndicator: 3-step breadcrumb with checkmarks on completed steps
- StepIndicator: clicking step 0 dispatches SET_REMOTE_PARAMS({}) then SET_STEP(0)
- StepIndicator: never dispatches RESET — deployment options preserved
- All 5 WIZD-03 tests GREEN
2026-03-27 09:43:50 +01:00
kawa
7ffccfb7f8
test(03-05): add failing StepIndicator WIZD-03 tests (RED)
...
- WIZD-03: clicking completed step dispatches SET_STEP
- WIZD-03: clicking back to step 0 dispatches SET_REMOTE_PARAMS({})
- WIZD-03: clicking back to step 0 does NOT dispatch RESET
- WIZD-03: step 0 shows as active when currentStep is 0
- WIZD-03: completed steps are clickable
2026-03-27 09:42:45 +01:00
kawa
3155491315
docs(03-04): complete RemoteConfigStep plan
...
- SUMMARY.md created with TDD commits, deviations, decisions
- STATE.md updated: progress 92%, decisions, session
- ROADMAP.md updated: phase 3 4/5 summaries complete
2026-03-27 09:40:25 +01:00
kawa
45bcc0cc18
feat(03-04): implement RemoteConfigStep — registry-driven backend config form
...
- BACK-01: Azure Blob form with account FieldRenderer + AzureAuthToggle
- BACK-02: S3 form via BACKEND_REGISTRY loop (provider hidden, region required)
- BACK-03: S3-compatible form includes endpoint field
- mode: onSubmit / reValidateMode: onChange for touch-then-live validation
- Guard: useEffect redirects to step 0 if backendType is null
- All hooks called unconditionally (fallback schema prevents rules-of-hooks violation)
- 8/8 BACK-01/02/03 tests GREEN
2026-03-27 09:38:40 +01:00
kawa
a57b2eab1d
test(03-04): add failing tests for RemoteConfigStep
...
- BACK-01: Azure Blob form with account field + AzureAuthToggle
- BACK-02: S3 form fields (access_key_id, secret_access_key, region)
- BACK-03: S3-compatible form includes endpoint field
- renderWithBackend helper dispatches SET_BACKEND_TYPE before render
- @testing-library/user-event installed for value retention test
2026-03-27 09:36:41 +01:00
kawa
97651b5d59
docs(03-03): complete BackendSelectionStep plan
...
- SUMMARY.md: BackendSelectionStep TDD execution, WIZD-01 + WIZD-04
- STATE.md: progress updated to 85% (11/13), decisions added
- ROADMAP.md: phase 3 plan progress updated (3/5 summaries)
2026-03-27 09:34:53 +01:00
kawa
b47f607224
feat(03-03): implement BackendSelectionStep (WIZD-01, WIZD-04)
...
- Remote name field with zod validation (mode: onSubmit, reValidateMode: onChange)
- Three backend cards in popularity order: Azure Blob, Amazon S3, S3-Compatible
- Card click validates name first; dispatches SET_REMOTE_NAME + SET_BACKEND_TYPE + SET_REMOTE_PARAMS({}) + SET_STEP(1)
- Does NOT dispatch RESET — preserves deployment options
- All 10 BackendSelectionStep tests GREEN
2026-03-27 09:33:45 +01:00
kawa
cf06d72945
test(03-03): add failing tests for BackendSelectionStep (WIZD-01, WIZD-04)
...
- Replace expect.fail stubs with real test assertions
- Tests cover card render order, card click dispatch, name validation
- RED: component file does not exist yet
2026-03-27 09:32:35 +01:00
kawa
e1cc3eda3f
docs(03-02): complete UI atom components plan
...
- SUMMARY.md for BackendCard, PasswordField, FieldRenderer, AzureAuthToggle
- STATE.md updated with progress (77%), decisions, metrics
- ROADMAP.md updated (phase 3: 2/5 plans complete)
2026-03-27 09:30:57 +01:00
kawa
1c9c337d3f
feat(03-02): create FieldRenderer and AzureAuthToggle
...
- FieldRenderer: registry-driven input renderer (text, password, select, hidden provider)
- AzureAuthToggle: segmented SAS/Key toggle, defaults to SAS, both fields always registered via CSS show/hide
- Both fields preserved on toggle (no conditional rendering that would lose react-hook-form state)
2026-03-27 09:29:51 +01:00
kawa
cec45e8f17
feat(03-02): create BackendCard and PasswordField UI atoms
...
- BackendCard: clickable selection card with selected/unselected visual states
- PasswordField: password input with per-instance show/hide toggle (text labels, no emoji)
- Both files in new src/components/ui/ directory
2026-03-27 09:29:08 +01:00
kawa
a2d4318b45
docs(03-01): complete wave-0 test infrastructure plan
...
- 03-01-SUMMARY.md: 26 RED stubs for WIZD-01/02/03/04 and BACK-01/02/03
- STATE.md: progress 69%, decisions recorded, session updated
- ROADMAP.md: phase 3 progress updated (1/5 plans complete)
- REQUIREMENTS.md: WIZD-01/02/03/04 and BACK-01/02/03 marked complete
2026-03-27 09:27:50 +01:00
kawa
153bc61f8a
test(03-01): add Wave 0 RED baseline stubs for all 7 requirements
...
- src/App.test.tsx: WIZD-02 step routing (3 stubs)
- src/components/wizard/BackendSelectionStep.test.tsx: WIZD-01, WIZD-04 (10 stubs)
- src/components/wizard/RemoteConfigStep.test.tsx: BACK-01, BACK-02, BACK-03 (8 stubs)
- src/components/wizard/StepIndicator.test.tsx: WIZD-03 (5 stubs)
- All 26 tests fail RED with descriptive 'not yet implemented' messages
2026-03-27 09:26:06 +01:00
kawa
9eef93775c
chore(03-01): configure Vitest jsdom environment
...
- Add test block to vite.config.ts with environment: 'jsdom'
- Add passWithNoTests: true (established project convention)
2026-03-27 09:25:08 +01:00
kawa
ace078d418
docs(03): add validation strategy and research
2026-03-26 14:36:13 +01:00
kawa and Claude Sonnet 4.6
e6883089b4
docs(03): research phase wizard UI
...
Investigate react-hook-form + Zod v4 + Tailwind v4 patterns for the
multi-step wizard, document registry-driven form rendering, touch-then-live
validation, Azure auth toggle, and breadcrumb navigation approach.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-26 14:35:08 +01:00
kawa
279bd0a534
docs(state): record phase 3 context session
2026-03-26 14:30:44 +01:00
kawa
dc8aa85dcd
docs(03): capture phase context
2026-03-26 14:30:40 +01:00
kawa
e17419bfd0
docs(phase-02): complete phase execution
2026-03-26 14:12:22 +01:00
kawa
64e25a691c
docs(02-03): complete Intune generators plan
2026-03-26 14:08:40 +01:00