- Add show_paired flag to device listing (CLI arg and input) - Extend
LibraryDeviceInfo with is_paired and is_connected; include Paired
devices in library listing when requested - Add Devices group to UI
(DevicesGroup) and hook into SpaceGroup - Extend device queries/types to
support show_paired and paired devices - Refactor Dockerfile to
multi-stage Bun + Rust builds; reuse web assets - Remove obsolete
core/ops/entries/mod.rs
- Added `include_descendants` option to event filters, allowing recursive path matching for resource events.
- Updated `affects_path` method to support descendant matching, improving event handling accuracy.
- Refactored subscription logic to utilize the new filtering capabilities, ensuring only relevant events are processed.
- Introduced tests for event filtering to validate exact vs. recursive matching, enhancing reliability of event-driven updates.
- Updated related components to leverage the new filtering options, improving overall performance and user experience.
- Introduced a new `unique_bytes` field in the volume model to track deduplicated content size.
- Implemented a volume refresh action to recalculate unique bytes for all volumes owned by the device, emitting a cache refresh event to invalidate frontend caches.
- Updated the storage overview component to display unique bytes and other volume statistics.
- Enhanced the event system to handle cache invalidation events, ensuring real-time updates across the application.
- Added necessary migrations and database updates to support the new volume tracking features.
- Refactored the event monitoring logic in the CLI to improve readability and maintainability.
- Updated the event summarization function to enhance formatting and clarity of event messages.
- Introduced a dedicated log streaming mechanism in the core, separating log handling from event processing.
- Enhanced the RPC server to support real-time log subscriptions, allowing for more efficient log message delivery.
- Cleaned up legacy log event handling, ensuring a clearer distinction between events and logs in the system.
- Introduced a new Events domain for monitoring events in real-time, allowing users to filter events by type, library ID, job ID, and device ID.
- Updated the CLI to include an Events command, enabling users to access the new monitoring features.
- Enhanced the Cargo.lock and related modules to support the new functionality, ensuring seamless integration with existing systems.
- Added necessary arguments and command handling for the Events command in the CLI.
- Introduced a new field `unique_content_count` in `LibraryStatistics` to track the number of unique content identities.
- Updated various components to calculate and display unique content count, enhancing library statistics output.
- Modified the CLI and interface to reflect the new unique content metric, improving user insights into library data.
- Adjusted serialization and API responses to include the unique content count for better data consistency across the system.
This commit introduces comprehensive metrics collection for the sync service. It includes tracking state transitions, operation counts, data volumes, performance indicators, and error events. The changes also add a new CLI command to view sync metrics and integrate metrics into the sync service's core functionality.
Co-authored-by: ijamespine <ijamespine@me.com>
Replace confusing RegisterOnly action with clearer ShareLocalLibrary and JoinRemoteLibrary actions. Add placeholder for future MergeLibraries.
- Remove RegisterOnly from LibrarySyncAction enum
- Add ShareLocalLibrary (share your library to remote device)
- Add JoinRemoteLibrary (join existing remote library)
- Add MergeLibraries stub for future implementation
- Update CLI with three-option menu instead of two
- Simplify CLI arg parsing for new actions
The new UX is clearer: users choose to either share their library or join a remote one, instead of the ambiguous "register only" concept.
- Introduced VolumeCmd for handling cloud volume operations in the CLI.
- Implemented VolumeAddCloudArgs and VolumeRemoveCloudArgs for adding and removing cloud storage volumes.
- Created VolumeAddCloudAction and VolumeRemoveCloudAction for managing cloud volume actions.
- Updated directory listing and file query operations to support cloud paths.
- Enhanced volume backend integration to accommodate cloud storage services.
- Marked the `leader` argument in `SetupArgs` as deprecated, clarifying its usage.
- Introduced a `backfill_manager` to the `SyncService`, enabling automatic orchestration of initial sync processes.
- Enhanced the `run_sync_loop` method to manage backfill attempts and periodic maintenance tasks, improving overall sync reliability.
- Updated the `MockTransportPeer` to support request/response handling for backfill operations, ensuring seamless data retrieval during synchronization.
- Implemented `validate_and_fix_library` method in the Context struct to ensure the current library selection is valid.
- If the stored library ID is not found, the method selects the first available library.
- Updated the main execution flow to call this new method, enhancing library management during command execution.
- Introduced `index verify` command to perform comprehensive integrity checks on the Spacedrive index.
- Implemented functionality to compare filesystem state with database entries, reporting discrepancies such as missing files, stale entries, and metadata mismatches.
- Added detailed output options for verification results, including a summary report of findings.
- Created associated input and output types for verification actions, enhancing the overall integrity management of the indexing system.
- Documented usage and examples in the CLI documentation for user guidance.
- Moved query-related traits and structures from `cqrs` to `infra/query` for better symmetry with actions.
- Updated import paths across various modules to reflect the new structure, ensuring consistent access to `CoreQuery` and `LibraryQuery`.
- Introduced new `infra/wire` module for handling wire protocol and type extraction, enhancing code organization and discoverability.
- Cleaned up obsolete references to the old `cqrs` module, improving maintainability.
- Added QR code generation for remote pairing, allowing users to scan codes for easier device connection.
- Updated CLI to include QR code display and manual entry options for pairing.
- Enhanced PairingCoordinator to handle QR code JSON, including NodeId and relay URL for improved connectivity.
- Implemented camera permission handling in iOS for QR code scanning functionality.
- Refactored networking service to support relay-based pairing, ensuring reliable connections across different networks.
- Added tests for relay-only pairing scenarios to validate functionality and reliability.
- Introduced three new markdown files: CLI_LIBRARY_SYNC_COMPLETE.md, IMPLEMENTATION_COMPLETE.md, and LIBRARY_SYNC_SETUP_IMPLEMENTATION.md for comprehensive documentation.
- Updated various CLI domain modules to improve argument handling and output formatting.
- Enhanced device, index, job, library, location, network, and search modules for better integration and user experience.
- Refactored code across multiple domains to improve maintainability and clarity.
- Introduced `DevicesCmd` for managing device operations within the CLI, allowing users to list devices from the library database.
- Implemented `DevicesListArgs` to support detailed device information retrieval, including offline status and capabilities.
- Updated the command handling logic to integrate device operations seamlessly with existing commands.
- Refactored device-related queries and outputs to improve data handling and presentation in the CLI.
- Enhanced the overall structure of device management code for better maintainability and clarity.
- Introduced `FileListArgs` struct to handle directory listing arguments, including path, limit, hidden files inclusion, and sort order.
- Enhanced `FileCmd` enum to support a new `List` command for listing directory contents.
- Implemented `list_directory` function to query and display directory contents, integrating sorting and filtering options.
- Updated `run` function to handle the new directory listing command, providing a user-friendly output format with a table display.
- Improved error handling for invalid sort options during directory listing.
- Introduced a `format_bytes` function in the CLI to improve byte size formatting for better readability in output.
- Updated the `run_client_command` function to display library sizes using the new formatting function, enhancing user experience.
- Added a new test target in `Package.swift` for improved testing capabilities of the Spacedrive macOS app.
- Refactored various SwiftUI components to improve code clarity and maintainability, including adjustments to view modifiers and layout.
- Enhanced the `ConnectivityCard` and `JobRowView` components with better state management and UI improvements for a more cohesive user experience.
- Improved logging and error handling in the `DaemonConnector` and `InspectorViewModel` for better traceability and debugging.
- Implemented functionality to retrieve file information using a new `FileInfoArgs` struct and `FileCmd::Info` command in the CLI.
- Enhanced the `run_client_command` function to initialize the device ID from a `device.json` file if it exists, improving device management.
- Updated the `FileCmd` enum to include the new `Info` command for better command handling in the file domain.