Skip to content

feat: revamp drive management and activities UI - #14

Merged
OpenCow42 merged 9 commits into
mainfrom
codex/setup-drive-management
Jul 25, 2026
Merged

feat: revamp drive management and activities UI#14
OpenCow42 merged 9 commits into
mainfrom
codex/setup-drive-management

Conversation

@OpenCow42

@OpenCow42 OpenCow42 commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace the crowded Setup list with Setup → Account → Drive navigation
  • move File Provider, sync, Finder/Files, and macOS known-folder actions into dedicated drive management screens
  • add per-drive action coordination, confirmations, stale-drive handling, animated navigation, and polished loading/error feedback
  • replace the fixed Activities list with a stable, keyset-paginated timeline
  • harden every Activities action with model-backed availability, duplicate guards, and visible failure feedback

Activities timeline

  • load 50 mixed conflict and activity entries initially and prefetch older pages near the end
  • preserve the visible event while older pages append or live database updates arrive
  • provide day grouping, compact expandable rows, paging retry states, end-of-history feedback, and Back to Latest
  • resolve File Provider item URLs only after the user selects Open in Finder or Open in Files
  • query errors and related-conflict exclusions in SQLite with composite and partial indexes
  • keep clear and full support-log export semantics independent of UI pagination
  • add a deterministic 1,000-event UI fixture and scroll performance coverage

Activities action reliability

  • keep dismissible action errors visible above loaded, empty, initial-error, and unavailable-database states
  • disable Refresh, Clear, Export, and filtering only when their model operations cannot run, with matching internal guards against rapid or programmatic calls
  • make destructive Clear exclusive with loading, Refresh, and Export while allowing the read-only Refresh and Export operations to overlap
  • reset the reader to the newest event only after Clear succeeds
  • report unavailable domains/items and rejected Files presentations through an injectable item-opening boundary
  • preserve Finder reveal/select behavior and moved/deleted feedback on macOS
  • report clipboard write failures inline and show Copied only after a successful platform write
  • preserve child action accessibility identifiers when timeline rows expand

CI and UI-test reliability

  • support the macOS SwiftUI tab representation, which exposes app tabs as radio buttons rather than tab-bar buttons
  • make text assertions work with both accessibility labels and macOS accessibility values
  • use stable timeline-entry identifiers for pagination and Back to Latest checks
  • make the unavailable-database fixture deterministic instead of falling back to the production event store
  • provide a labeled Setup error-dismissal control with a native Escape shortcut on macOS

Validation

  • all six macOS UI tests that previously failed in CI pass locally when run individually
  • the unchanged UI cases passed in the initial local macOS suite
  • the exact unsigned macOS CI build passed
  • iOS Simulator and visionOS Simulator test bundles compiled successfully
  • focused Activities unit suite passed on iOS Simulator 26.5
  • focused Activities unit suite passed on visionOS Simulator 26.5
  • focused Activities unit cases passed on macOS, including Finder-specific behavior
  • macOS app build passed
  • generic visionOS build passed
  • git diff --check passed
  • a combined local macOS UI rerun encountered an Xcode LaunchServices worker relaunch stall between tests; this was separate from assertions, and each repaired case passed in an isolated run

Documentation

  • update app/domain, conflicts, persistence, and logging documentation for the new navigation, timeline behavior, and action reliability semantics

@OpenCow42 OpenCow42 changed the title feat: add dedicated drive management UI feat: revamp drive management and activities UI Jul 25, 2026
@OpenCow42
OpenCow42 merged commit 61c4409 into main Jul 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant