Skip to content

Conversation

@jamiepine
Copy link
Member

Closes #(issue)

- Introduced a new File Operation Modal for interactive file copy/move operations with conflict resolution options.
- Integrated sound effects for file operations, including copy and startup sounds.
- Updated the Explorer component to utilize the new modal for drag-and-drop file operations.
- Refactored job management hooks to unify job data handling and improve performance.
- Enhanced documentation for the File Operation Modal and sound effects integration.
- Marked subproject commits as dirty for api, ios, macos, and workbench.
- Updated content identity UUID generation to be globally deterministic from content_hash only, enabling cross-device and cross-library deduplication.
- Refactored related documentation to reflect changes in UUID generation logic.
- Added new default group creation for Devices and Tags in LibraryManager.
- Improved keyboard navigation and selection handling in Explorer component.
- Updated the Column component to support multiple file selection and improved type safety.
- Refactored file selection handling to utilize global selection context, allowing for better management of selected files.
- Added drag-and-drop functionality for file items using the DnD Kit.
- Improved keyboard navigation to ensure selected files remain visible during interactions.
- Updated documentation to reflect changes in type safety and file selection requirements.
@jamiepine jamiepine requested review from a team December 9, 2025 14:06
@cursor
Copy link

cursor bot commented Dec 9, 2025

PR Summary

Adds a file copy/move modal with drag-and-drop and sidebar reordering, introduces ephemeral watcher/job handling and globally deterministic content UUIDs, and improves copy conflict handling and event filtering.

  • UI:
    • File operations: New modal for copy/move with conflict resolution (overwrite/rename/skip) and progress; drag-and-drop from explorer to locations/groups/folders; multi-file drag; sounds for actions.
    • Spaces sidebar: Reorder groups/items (sortable), insert at space/group, new Devices/Tags groups wiring.
    • Explorer: Grid virtualization, improved Column/List navigation/selection, folder drop targets, refined DnD previews.
  • File Copy Backend:
    • Adds Skip resolution and per-file rename/skip/overwrite handling; smarter destination path resolution; FastCopy delegates directories; options plumbed through actions/jobs.
  • Jobs:
    • Introduces DynJob::should_persist and ephemeral jobs that skip DB/event emission; manager logs/behavior updated accordingly.
  • Watcher/Events:
    • Context includes location_watcher; ephemeral indexing auto-registers shallow watches; metrics track ephemeral watches; skip locations with IndexMode::None.
    • Event filtering checks alternate_paths; platform handlers process ephemeral paths; tests cover ephemeral watcher flow.
  • Indexing/Content:
    • ContentIdentity UUIDs now globally deterministic from content_hash only; storage/linking updated; docs revised.
  • Libraries/Spaces:
    • Create default Devices and Tags space groups; adjust group order; API accepts optional group_id for item reordering.
  • SDK/Docs/Infra:
    • TS types for new enums/queries (core.ephemeral_status, FileConflictResolution::Skip); indexing docs expanded; Tailwind/font tweaks; minor package/config updates.

Written by Cursor Bugbot for commit 591c746. Configure here.

@jamiepine jamiepine merged commit f9116ed into main Dec 9, 2025
3 of 8 checks passed
@jamiepine jamiepine deleted the file-copy-ui branch December 9, 2025 14:25
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.

2 participants