Commit Graph

488 Commits

Author SHA1 Message Date
Jamie Pine
def6060b5a Update file name display to include extensions in Explorer components
- Modified Title, ColumnItem, FileCard, TableRow, and MediaViewItem components to conditionally render file extensions alongside file names, enhancing clarity for users.
- Ensured consistent display of file information across different views in the Explorer interface.
2025-12-10 09:44:55 -08:00
Jamie Pine
7f3eee3848 Enhance FileOperationModal and introduce FileStack component
- Updated FileOperationModal to fetch and display file information for both source and destination, improving user experience.
- Added FileStack component to visually represent multiple files stacked with rotation, enhancing the file selection interface.
- Refactored source and destination file displays to conditionally render file thumbnails or icons based on availability.
- Improved layout and styling for better clarity and consistency in file operations.
2025-12-10 09:23:00 -08:00
Jamie Pine
d8984a0688 Enhance FileOperationModal with keyboard shortcuts and improved UI
- Added keyboard shortcuts for file operations: Copy (⌘1), Move (⌘2), Skip (S), Keep both (K), and Overwrite (O).
- Improved the visual layout to clearly display source and destination files with an arrow indicator.
- Updated operation type selection buttons to include icons and shortcut hints for better user experience.
- Refactored conflict resolution options to display keyboard shortcuts alongside labels for clarity.
- Introduced a utility function to extract file names from paths for better display in the modal.
2025-12-10 09:06:49 -08:00
Jamie Pine
64a5894997 Refactor volume management and enhance asset handling
- Updated volume-related structures and database entities to improve indexing and retrieval efficiency.
- Enhanced migration scripts to support new indexing statistics for volumes.
- Refactored asset imports and SVG handling across various components for better organization and performance.
- Improved file operation modals and explorer components for a more intuitive user experience.
- Streamlined QuickPreview and video player components to optimize rendering and interaction.
2025-12-10 09:00:44 -08:00
Jamie Pine
4d9dfbd922 Refactor VolumeBar component styles for improved clarity and consistency
- Updated CSS classes in the VolumeBar component to enhance visual consistency and clarity.
- Simplified hover effects and adjusted background styles for unique and duplicate byte displays.
- Improved comments for better understanding of the visual elements in the component.
2025-12-09 22:01:13 -08:00
Jamie Pine
3f98961b44 Refactor file query handling to improve database lookup and fallback mechanisms
- Enhanced the `FileByIdQuery` and `FileByPathQuery` implementations to first check the database for file entries, ensuring accurate retrieval as the primary source of truth.
- Introduced a fallback mechanism to utilize an ephemeral index if the file is not found in the database, improving resilience and performance.
- Updated the logic for processing content identities, media data, and sidecars, ensuring efficient data loading and handling.
- Added context-aware comments to clarify the purpose of key code sections, enhancing maintainability and readability.
2025-12-09 21:42:02 -08:00
Jamie Pine
2770a7a8a9 fix volume display name and disable react-scan 2025-12-09 19:16:13 -08:00
Jamie Pine
c139aa938f Refactor ColumnView component to improve internal navigation handling
- Replaced internal navigation tracking with a ref for clearSelection to prevent unnecessary re-renders.
- Simplified the logic for initializing the column stack on external navigation changes.
- Updated file selection handling to manage column navigation without affecting currentPath, enhancing performance and usability.
2025-12-09 19:09:50 -08:00
Jamie Pine
05554b2919 Update App component and Explorer views for improved performance and usability
- Refactored the App component to enhance readability and maintainability, including adjustments to route handling and client initialization.
- Introduced QuickPreviewSyncer and QuickPreviewController components in the Explorer to optimize rendering and selection handling.
- Enhanced Column and ListView components with memoization to prevent unnecessary re-renders, improving performance during file selection and navigation.
- Updated event handling in the useNormalizedQuery hook to streamline query management and improve type safety.
- Adjusted various components to ensure consistent styling and behavior across the application.
2025-12-09 19:03:51 -08:00
Jamie Pine
38136ab5a7 Enhance filesystem watching and integrate new sound effects
- Introduced a new filesystem watcher service, replacing the previous location watcher with a more robust and platform-agnostic implementation.
- Updated the core context to include the new filesystem watcher and refactored related services for better integration.
- Added support for ephemeral event handling, allowing real-time updates for non-persistent locations.
- Integrated new sound effects for pairing operations in the UI, enhancing user experience during device pairing.
- Updated the File Operation Modal to support both copy and move operations with improved conflict resolution options.
- Refactored related components to ensure consistency and improved performance across the application.
2025-12-09 15:19:27 -08:00
Jamie Pine
591c7461a4 Add misc UI and ephemeral watching (wip) 2025-12-09 06:05:51 -08:00
Jamie Pine
bf1962e5ad Enhance file selection and navigation 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.
2025-12-08 23:13:23 -08:00
Jamie Pine
5659e85c09 Update subproject commits and enhance content identity UUID generation
- 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.
2025-12-08 22:52:28 -08:00
Jamie Pine
337a284e96 Enhance file operation handling and add sound effects
- 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.
2025-12-08 21:15:00 -08:00
Jamie Pine
3739b3f34f Enhance ephemeral indexing and add filesystem watching support
- Updated `EphemeralIndex` to preserve explicitly browsed subdirectories during re-indexing, preventing loss of user navigation context.
- Modified `clear_directory_children` to return the count of cleared entries and a list of deleted browsed directories.
- Introduced `EphemeralIndexCache` enhancements to support filesystem watching, allowing paths to be monitored for changes.
- Added methods for registering, unregistering, and checking watched paths, improving the responsiveness of the indexing system.
- Updated documentation and tests to reflect new functionality and ensure reliability.
2025-12-08 00:38:04 -08:00
Jamie Pine
ed0fa209b4 Improve comments 2025-12-07 22:23:57 -08:00
Jamie Pine
c3517a554e Preserve ephemeral UUIDs during indexing
- Remove TTL-based ephemeral cache and switch to a permanent in-memory
  cache.
- Reuse ephemeral UUIDs when creating persistent entries to preserve
  continuity of user data.
- Populate ephemeral UUIDs during the processing phase and expose
  get_ephemeral_uuid in the indexer state.
- Remove the location invalidation hook and related UI usage.
2025-12-07 21:03:51 -08:00
Jamie Pine
cf400865f4 Introduce ephemeral index cache and status API
- Add a complete ephemeral indexing subsystem
  - core/src/ops/core/ephemeral_status with input/output and query types
  - core/src/ops/indexing/ephemeral with arena, cache, registry,
    index_cache, types
  - expose EphemeralIndexCache and EphemeralIndex through core modules
  - EphemeralIndexCache supports
    get/insert/create_for_indexing/mark_indexing_complete eviction and
    stats
- Implement EphemeralIndex data structures for memory-efficient storage
  - NodeArena, NameCache, NameRegistry, and related types
- Add EphemeralIndex status API
  - EphemeralCacheStatusInput and EphemeralCacheStatusQuery
  - EphemeralCacheStatus with per-index details
- Wire ephemeral indexing into the indexing flow
  - Change default Ephemeral Indexer behavior to shallow mode
  - Align code to EphemeralIndex usage across the codebase
- Enhance content kind detection in UI
  - Add getContentKind(file) helper (prefers content_identity.kind, then
    content_kind)
  - Use getContentKind in Explorer utilities and UI components
- Invalidate directory listings when location index_mode changes
  - Add useLocationChangeInvalidation to trigger refetches for ephemeral
    vs persistent indexing transitions
- Misc refactors and formatting to accommodate the new modules and APIs
2025-12-07 19:55:34 -08:00
Jamie Pine
d1392607ad chore: add default locations with IndexMode::None 2025-12-06 20:50:07 -08:00
Jamie Pine
97e3bb590a fix: update QuickPreview and Explorer sync 2025-12-06 20:50:07 -08:00
Jamie Pine
0e932defdc feat: add icons and indexing indicator to PathBar 2025-12-06 20:50:06 -08:00
Jamie Pine
0c7c5e05f2 fix: fix logCallback and setCurrentLibrary 2025-12-06 16:46:02 -08:00
Jamie Pine
17abcc4221 feat: update ExplorerView and Info.plist 2025-12-06 16:46:02 -08:00
Jamie Pine
b4024c860e Mobile app in React Native
+ validation support for Actions
2025-12-05 15:16:41 -08:00
Jamie Pine
8ef08e584d Merge branch 'daemon-disconnected-screen' of https://github.com/spacedriveapp/spacedrive into daemon-disconnected-screen 2025-12-04 18:26:28 -08:00
Jamie Pine
73b057e506 Fix daemon connection and service installation error handling
- Clear subscriptions map when connection pool resets to prevent stale subscription IDs after daemon restart
- Revert checkbox state when install/uninstall operations fail to keep UI in sync with actual state
- Return errors when launchctl/systemctl commands fail during service installation instead of silently continuing
- Add proper error checking for all systemctl commands on Linux
2025-12-04 18:25:51 -08:00
Cursor Agent
d847415e84 Refactor: Consolidate daemon status listener cleanup
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-05 02:22:26 +00:00
Jamie Pine
59d6f0d47e Add daemon service management commands 2025-12-04 18:10:24 -08:00
Jamie Pine
a3fdbf7c1e Make daemon starting state fully reactive
Adds daemon-starting event emission from Rust when the daemon starts, eliminating timeout-based logic. The starting state now accurately tracks the actual daemon startup process through events.

- Rust emits daemon-starting event when start command is called
- Platform API listens to daemon-starting events
- Hook preserves isChecking state during polling until daemon connects
- No more timeouts, everything is event-driven
2025-12-04 17:02:55 -08:00
Jamie Pine
3b605ee78d Add daemon disconnected screen with auto-reconnect
Adds a full-screen overlay when the daemon disconnects with:
- Real-time connection status indicator in top-right
- Explanation of what the daemon is and why it's required
- Restart button with background mode checkbox
- CLI commands reference panel with copy buttons
- Automatic app reload when daemon reconnects

The overlay uses reactive status polling and event-based detection to ensure accurate connection state tracking. When the daemon comes back online, the app automatically reloads to sync state.
2025-12-04 16:47:27 -08:00
Jamie Pine
40d05fcec8 feat: add cloud credential entity and migration 2025-12-03 18:00:43 -08:00
Jamie Pine
e5cb6baaba feat: update cloud credential management 2025-12-03 15:55:04 -08:00
Cursor Agent
58f2819553 Refactor: Invalidate libraries list with correct query key
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-02 23:14:50 +00:00
Cursor Agent
40459427f3 feat: Handle LibraryCreated event for modal closing
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-02 22:53:07 +00:00
Cursor Agent
5661b79a9a feat: Add Create Library modal and functionality
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-02 22:47:16 +00:00
Jamie Pine
4785592002 Merge pull request #2893 from gedeondoescode/linux-build
Fix build issues on Linux
2025-12-02 14:39:08 -08:00
Jamie Pine
cdc770c802 Revert "Fix tailwind config and add sass dependency"
This reverts commit 792d112d1c.
2025-12-02 14:29:16 -08:00
Jamie Pine
792d112d1c Fix tailwind config and add sass dependency 2025-12-02 14:26:26 -08:00
Jamie Pine
8097f5ef8a Use jobs.list and derive counts from statuses 2025-12-02 13:20:25 -08:00
Gedeon Sainrival
f01a2994f1 Fix build issues on Linux
Managed to successfully build on Linux, updated xtask to resolve errors,
and fixed interface not loading properly when using Tauri GUI.
2025-12-02 13:17:28 -05:00
Jamie Pine
518d2f4a0b Fix hook deps and memoize ListView core row model 2025-12-01 18:15:32 -08:00
Jamie Pine
9becfa1e7d Switch IPC to TCP sockets across daemon and client 2025-12-01 17:49:36 -08:00
Jamie Pine
9c8fe660d3 Remove all emojis from codebase 2025-12-01 13:33:00 -08:00
Jamie Pine
ec91994408 Refactor ListView to use table-based row rendering with useTable hook 2025-12-01 11:48:07 -08:00
Jamie Pine
142008dead Add Active Jobs API and Path Checks Plus UI Prefs 2025-12-01 10:07:31 -08:00
Jamie Pine
9acf86a9ea Add location export/import and schema changes 2025-11-30 17:27:31 -08:00
Jamie Pine
0e5e9827d1 Add native drag and drop and update submodules 2025-11-28 06:57:00 -08:00
Jamie Pine
83138f798e Emit direct virtual resources and apply tags 2025-11-27 10:05:11 -08:00
Jamie Pine
41fa50433c Add fullscreen quick preview via portal layer 2025-11-27 10:05:11 -08:00
Jamie Pine
db1dbf6655 Add Node ID field for cross-network pairing 2025-11-26 08:43:49 -08:00