Commit Graph
204 Commits
Author SHA1 Message Date
kawa d3329311e1 docs(12-02): complete FieldRenderer select dark mode fix plan
- 12-02-SUMMARY.md: select element bg-surface-container text-on-surface fix
- STATE.md: updated position and decisions
- ROADMAP.md: phase 12 progress updated
- REQUIREMENTS.md: DARK-03 marked complete
2026-04-01 14:05:23 +02:00
kawa 945f90d789 feat(12-01): style DeploymentStep form controls and ReviewStep checkbox
- DeploymentStep: include-install label uses text-on-surface, checkbox uses accent-primary
- DeploymentStep: fieldset legends use text-on-surface-container font-medium
- DeploymentStep: all radio/checkbox labels use flex gap-2 text-on-surface cursor-pointer
- DeploymentStep: all radios and checkboxes use accent-primary
- ReviewStep: security checkbox uses accent-[var(--r2b-warning)] for warning-themed accent
2026-04-01 14:05:14 +02:00
kawa f6b4070ff9 feat(12-01): add semantic token classes to all step h2 headings
- BackendSelectionStep h2: text-2xl font-bold text-on-surface mb-2
- RemoteConfigStep h2: text-2xl font-bold text-on-surface mb-2
- DeploymentStep h2: text-2xl font-bold text-on-surface mb-2
- ReviewStep h2: text-2xl font-bold text-on-surface mb-2
2026-04-01 14:04:21 +02:00
kawa 94e90e0641 feat(12-02): add bg-surface-container text-on-surface to select element in FieldRenderer
- Added bg-surface-container and text-on-surface semantic token classes to select element className
- Fixes select dropdown invisible text in dark mode (browser-applied white background)
- 204 tests pass, zero regressions
2026-04-01 14:03:57 +02:00
kawaandClaude Opus 4.6 a193a183f8 docs(12): create phase plan for dark mode visibility fixes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:00:04 +02:00
kawaandClaude Opus 4.6 94f70deb3d docs(phase-12): add research and validation strategy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:55:55 +02:00
kawaandClaude Sonnet 4.6 c5110b1c67 docs(12): research phase dark mode visibility fixes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 13:54:51 +02:00
kawaandClaude Opus 4.6 0f6e0f7a5b test(11): complete UAT - 8 passed, 0 issues
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:46:44 +02:00
kawaandClaude Opus 4.6 40a82487dd docs(phase-11): complete phase execution and verification
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:36:12 +02:00
kawa 0c27818030 docs(11-02): complete step animation and scroll-to-error plan
- Create 11-02-SUMMARY.md documenting POLISH-03 and POLISH-04 completion
- Update STATE.md: phase 11 complete, 100% progress, new decisions added
- Update ROADMAP.md: phase 11 plan progress (2/2 complete)
- Update REQUIREMENTS.md: mark POLISH-03 and POLISH-04 complete
2026-04-01 13:32:39 +02:00
kawa 90cdeda142 feat(11-02): auto-scroll to first errored field on validation failure
- BackendSelectionStep: add onInvalidSubmit scrolling to remote-name input
- BackendSelectionStep: pass onInvalidSubmit to form onSubmit and handleCardClick
- RemoteConfigStep: add FieldErrors import from react-hook-form
- RemoteConfigStep: add onInvalidSubmit scrolling to first errored field by key
- RemoteConfigStep: pass onInvalidSubmit to form onSubmit
2026-04-01 13:30:39 +02:00
kawa 8b7daa860c test(11-02): add failing tests for auto-scroll to first error on validation failure
- Add scrollIntoView mock (vi.fn()) in beforeEach to both test files
- Add POLISH-04 test in BackendSelectionStep: scrolls to remote-name on empty submit
- Add POLISH-04 test in RemoteConfigStep: scrolls to first errored field on empty submit
2026-04-01 13:29:48 +02:00
kawa 9af58bc970 feat(11-02): add step transition animation with reduced-motion guard
- Add @keyframes step-in (opacity 0->1, translateY 8px->0, 200ms ease-out) to index.css
- Register --animate-step-in token in @theme block
- Add @media prefers-reduced-motion: reduce guard disabling animation
- Add key={state.currentStep} and animate-step-in class to step wrapper in App.tsx
2026-04-01 13:28:38 +02:00
kawa 3af06493ea docs(11-01): complete mobile responsiveness and MD3 focus indicators plan
- 11-01-SUMMARY.md: execution summary for POLISH-01/POLISH-02
- STATE.md: position advanced to phase 11 plan 01 complete, decisions added
- ROADMAP.md: phase 11 progress updated (1/2 plans complete)
- REQUIREMENTS.md: POLISH-01 and POLISH-02 marked complete
2026-04-01 13:26:58 +02:00
kawa 9015db565e feat(11-01): MD3 focus-visible ring-3 indicators on all interactive elements
- md3-buttons.ts: upgrade ring-2/50 to ring-3 on all three constants (FILLED, OUTLINED, TEXT)
- BackendCard: add focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-primary
- StepIndicator: upgrade group-focus-visible completed-step circle from ring-2/50 to ring-3
- ThemeToggle: add focus-visible ring-3 with ring-inset to both selected/unselected branches
- FieldRenderer: select uses focus-visible:ring-2 (was focus:ring-2); tooltip buttons get focus-visible:ring-2 rounded
2026-04-01 13:25:00 +02:00
kawa 07f97d9f25 feat(11-01): mobile-responsive layout for wizard steps
- BackendSelectionStep: responsive grid (1-col mobile, 2-col desktop) for cards; button row stacks vertically on mobile
- BackendCard: add w-full to fill grid cell on all viewports
- RemoteConfigStep/DeploymentStep/ReviewStep: flex-col sm:flex-row button rows; w-full sm:w-auto on Back/Next buttons
- StepIndicator: add hidden sm:block to all three label spans (completed, active, future)
2026-04-01 13:23:43 +02:00
kawaandClaude Opus 4.6 e22d44d807 docs(11-polish-responsiveness): create phase plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:14:51 +02:00
kawa 4472c1294c docs(phase-11): add research and validation strategy 2026-04-01 13:10:23 +02:00
kawaandClaude Sonnet 4.6 5fb0300f80 docs(phase-11): research polish & responsiveness phase
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 13:09:13 +02:00
kawaandClaude Opus 4.6 b7ba16326f docs(phase-10): complete phase execution and verification
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:02:45 +02:00
kawa 74fa072e10 docs(10-02): complete live remote name preview plan
- Create 10-02-SUMMARY.md with task details and deviations
- Update STATE.md: add decision, session info, update progress to 100%
- Update ROADMAP.md: phase 10 marked complete (3/3 summaries)
- Update REQUIREMENTS.md: mark UX-02 complete
2026-04-01 12:58:27 +02:00
kawa 58d96cbb48 docs(10-03): complete credential-field help text plan
- Add 10-03-SUMMARY.md with full deviation documentation
- Update STATE.md: progress 97%, decisions, session
- Update ROADMAP.md: phase 10 plan progress (2/3 summaries)
- Mark UX-04 requirement complete in REQUIREMENTS.md
2026-04-01 12:56:45 +02:00
kawa fefab65371 feat(10-02): integrate RemoteNamePreview into BackendSelectionStep with tests
- Add RemoteNamePreview integration tests: empty-state [my-remote] on render
- Add live-update test: typing 'test-remote' shows [test-remote] in DOM
- Fix getByText(/required/i) ambiguity: use alert.textContent.toMatch instead
  (description paragraph now contains 'required' — Rule 1 bug fix)
- BackendSelectionStep.tsx changes already committed (watch, helpText, RemoteNamePreview)
2026-04-01 12:56:32 +02:00
kawa be788a44b7 docs(10-01): complete intro-section and step-descriptions plan
- SUMMARY.md with full execution record
- STATE.md: progress updated, 3 decisions added, session recorded
- ROADMAP.md: phase 10 progress updated (1/3 summaries)
- REQUIREMENTS.md: UX-01 and UX-03 marked complete
- deferred-items.md: pre-existing RemoteConfigStep test failures logged
2026-04-01 12:56:16 +02:00
kawa 489dfab896 feat(10-03): add tooltip tests for enriched fields; fix selector ambiguity
- Add { selector: 'input' } to getByLabelText calls where tooltip buttons
  now create aria-label matches (DEBT-01 pattern, same fix as Phase 09-03)
- Affected queries: S3 fields, S3-compatible fields, GCS fields, B2 fields,
  OneDrive drive_id, and VALID-01 validation tests
- Add 4 new UX-01 tests verifying tooltip info buttons render for:
  S3 access_key_id, S3-compatible endpoint, GCS service_account_credentials,
  B2 account (application_key_id)
- All 37 tests pass
2026-04-01 12:55:14 +02:00
kawa 356d557348 feat(10-03): enrich registry.ts with tooltipText and helpText for credential fields
- S3: access_key_id and secret_access_key get helpText + tooltipText (IAM console guidance)
- S3: region gets tooltipText (where to find in S3 console)
- S3-compatible: access_key_id, secret_access_key get helpText + tooltipText (provider-specific)
- S3-compatible: endpoint gets tooltipText (common endpoint examples for Wasabi, R2, MinIO)
- GCS: project_number gets tooltipText (numeric ID vs text project ID)
- GCS: service_account_credentials gets tooltipText (IAM console steps + doc link)
- B2: account and key get tooltipText (App Keys page, shown-once warning)
- OneDrive: drive_id gets tooltipText (rclone authorize output, b! prefix)
- SFTP host and user intentionally unchanged (self-explanatory per user decision)
- Azure Blob, OneDrive token, SFTP pass/key_pem existing text untouched
2026-04-01 12:55:05 +02:00
kawa 4b837b19a0 feat(10-01): update App.test.tsx and add step descriptions to all 4 steps
- Update App.test.tsx: add 'shows intro section on initial render' test
- Update App.test.tsx: fix 'renders BackendSelectionStep' — click Get Started first
- Add fireEvent import for click simulation
- BackendSelectionStep: add description below h2 (text-sm text-on-surface-variant)
- RemoteConfigStep: add description below h2
- DeploymentStep: add description below h2
- ReviewStep: add h2 heading + description paragraph (step was missing h2)
- All descriptions use text-sm text-on-surface-variant mt-1 mb-4
2026-04-01 12:54:16 +02:00
kawa c1d1633816 feat(10-01): add IntroSection and showIntro gate to App.tsx
- Add useState import to WizardShell
- Add showIntro local state (default true) — no persistence, resets on reload
- Add IntroSection component with action-first copy and Get Started CTA
- Copy mentions Azure Blob, S3, OneDrive, and 4 more backends
- Explains rclone.conf + deployment script generation
- Uses MD3_BTN_FILLED for CTA, MD3 tokens throughout
- When showIntro false, renders existing StepIndicator + step content unchanged
2026-04-01 12:48:53 +02:00
kawa 3c9c5fd7d8 feat(10-02): create RemoteNamePreview component with TDD
- Stateless component accepting value prop (string)
- Empty/whitespace state: shows grayed [my-remote] placeholder + guidance text
- Value state: shows [typed-value] in on-surface-variant color
- Renders only div/span elements — no form controls
- 9 tests covering empty state, value state, and element type constraints
2026-04-01 12:48:50 +02:00
kawaandClaude Opus 4.6 8078664f05 docs(10-content-clarity): create phase plan
3 plans in 1 wave covering UX-01 through UX-04: intro section,
remote name preview, step descriptions, and credential help text.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 12:43:38 +02:00
kawa 5052e9e66e docs(phase-10): add validation strategy 2026-04-01 12:38:34 +02:00
kawaandClaude Sonnet 4.6 cfc9967a28 docs(10): research phase content-clarity domain
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 12:37:26 +02:00
kawaandClaude Opus 4.6 648a17d261 docs(state): record phase 10 context session
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 12:32:34 +02:00
kawaandClaude Opus 4.6 43c83bf399 docs(10): capture phase context
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 12:32:24 +02:00
kawaandClaude Opus 4.6 12953a230c docs(phase-09): mark gap closure plans 09-04, 09-05 complete in roadmap
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:26:53 +02:00
kawaandClaude Opus 4.6 19eda65c77 docs(phase-09): re-verify after gap closure - 16/16 must-haves passed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:26:39 +02:00
kawa d173fd4455 docs(09-05): complete tooltip fix plan - hover behavior and helpTextPrefix prop
- SUMMARY.md: tooltip placement fix and hover+pin behavior documented
- STATE.md: decisions added, session updated, progress at 100%
- ROADMAP.md: Phase 9 plan 5/5 complete
2026-04-01 11:22:06 +02:00
kawa d2b6da297f test(09-05): add tooltip hover behavior tests and helpTextPrefix rendering tests
- FieldRenderer: 4 new tests for hover show/hide, click-pin, click-unpin
- TextFieldMD3: 3 new tests for helpTextPrefix with helpText, without, and prefix-only
- Import fireEvent from @testing-library/react added to FieldRenderer.test.tsx
2026-04-01 11:20:24 +02:00
kawa 23617c0422 feat(09-05): add helpTextPrefix prop and fix tooltip placement + hover behavior
- TextFieldMD3: add helpTextPrefix prop rendered inline left of helpText
- Guard changed to (helpText || helpTextPrefix) so icon renders without helpText
- FieldRenderer: move tooltip icon from above field to inline with helpText via helpTextPrefix
- FieldRenderer: add hoverTooltip state; tooltip visible on mouseEnter, dismisses on mouseLeave
- FieldRenderer: click-to-unpin clears hoverTooltip to prevent sticky tooltip after dismiss
- PasswordField: same tooltip fix as FieldRenderer text-branch
- Select-branch also gains hover support
2026-04-01 11:19:17 +02:00
kawaandClaude Opus 4.6 29aa6b9e2f docs(09-05): add tooltip fix plan and debug session
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:11:59 +02:00
kawaandClaude Opus 4.6 c848f7dd75 docs(09-05): diagnose tooltip gaps and create verified fix plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:10:58 +02:00
kawaandClaude Opus 4.6 788d90a904 fix(09): revise 09-05 plan based on checker feedback
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:09:17 +02:00
kawaandClaude Opus 4.6 f2586dbef9 docs(09): create gap closure plan for tooltip hover and icon placement
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:03:10 +02:00
kawaandClaude Opus 4.6 53678e6fb3 test(09): complete UAT - 6 passed, 1 issue
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:58:16 +02:00
kawaandClaude Opus 4.6 ba0a029366 docs(phase-09): complete phase execution — 12/12 must-haves verified
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:32:11 +02:00
kawa dad829245a docs(09-04): complete BackendSelectionStep TextFieldMD3 gap closure plan
- 09-04-SUMMARY.md: all 1 tasks documented, 179 tests green
- STATE.md: position advanced, session updated
- ROADMAP.md: Phase 9 marked 4/4 plans complete
2026-04-01 10:28:48 +02:00
kawa 123f24c57d feat(09-04): replace plain Remote name input with TextFieldMD3
- Add import { TextFieldMD3 } from '../ui/TextFieldMD3'
- Replace label+input+error block with TextFieldMD3 component
- Pass registration={register('name')}, error={errors.name}, required
- Closes COMP-01 gap: all wizard text inputs now use TextFieldMD3 floating label
2026-04-01 10:27:23 +02:00
kawaandClaude Opus 4.6 2bcfe2ef4f docs(09-04): gap closure plan for BackendSelectionStep TextFieldMD3 migration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:21:54 +02:00
kawaandClaude Opus 4.6 107a259d19 docs(09): create gap closure plan for BackendSelectionStep TextFieldMD3 migration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:19:48 +02:00
kawaandClaude Sonnet 4.6 7d5b3f7e73 docs(09-03): complete MD3 component integration plan — Phase 9 fully complete
- Create 09-03-SUMMARY.md: TextFieldMD3 integration, button hierarchy, card elevation
- Update STATE.md: Phase 9 complete, decisions captured, position advanced to Phase 10
- Update ROADMAP.md: Phase 9 marked complete (3/3 plans), progress table updated
- Update REQUIREMENTS.md: COMP-03 marked complete — all Phase 9 requirements satisfied

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 09:52:18 +02:00