- Enhanced the Spacedrive macOS app by updating various asset files, including icons and images, to improve visual consistency and user experience.
- Refactored file management components to streamline operations and enhance performance, ensuring better handling of file queries and unique location management.
- Improved the overall structure of the app's asset management, facilitating easier updates and maintenance in the future.
- Added functionality to manage development window configurations, allowing dynamic opening of windows based on user preferences.
- Enhanced `SharedAppState` to support setting and retrieving development window configurations.
- Updated `DaemonConnector` to handle new library statistics updates, improving the management of library data.
- Introduced logging for library statistics updates to provide better insights into library performance.
- Added development controls in `BrowserView` for easier window management during development.
- Updated `SpacedriveApp` to implement multiple window groups, including a main companion window, browser window, icon showcase, and inspector, each with custom title bars and shared state management.
- Introduced `NativeTrafficLights` and `CustomTitleBar` components to enhance window appearance and functionality, integrating native macOS traffic lights seamlessly.
- Refactored `AppDelegate` to initialize app state and manage window configurations based on development settings.
- Enhanced `SharedAppState` to support dynamic window opening based on user preferences and development configurations.
- Added new `BrowserView` and associated components for improved file browsing experience, including sidebar navigation and content display.
- Updated `SpacedriveColors` to reflect the use of native macOS colors for traffic lights, simplifying color management across the app.
- Introduced a new `LibraryCard` and `EmptyLibraryCard` components for improved library selection UI in the macOS app.
- Updated `LibrarySelector` to display current library information and allow users to switch libraries through a new button.
- Enhanced `MenuBarManager` to dynamically update the libraries menu based on available libraries and current selection.
- Refactored `DaemonConnector` to handle library-related events and refresh library statistics accordingly.
- Improved `LibraryInfo` structure to include optional statistics, enhancing data representation for libraries.
- Updated various UI components to utilize new library statistics, providing users with better insights into their libraries.
- Refactored the `ConnectivityCard` component to utilize the new `SpacedriveColors` for text and background colors, enhancing visual consistency across the UI.
- Adjusted color definitions in `SpacedriveColors` to provide a more cohesive design, including updates to primary, secondary, and tertiary background colors.
- Improved the layout and spacing in `JobRowView` and `JobMonitorView` for better user experience.
- Introduced a new `SettingsContentView` section for displaying the `ConnectivityCard`, integrating service status into the settings interface.
- Deleted the On-Demand State Computation task and its associated documentation as it is no longer relevant.
- Removed the `Resourceful` trait and its implementations from various job types, streamlining job management.
- Eliminated the `EntryStateService` and related state management logic, simplifying the service architecture.
- Updated the `JobManager` and job-related components to reflect the removal of resource tracking functionality.
- Adjusted the whitepaper to remove references to the On-Demand State Computation section, ensuring consistency in documentation.
- 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.
- Renamed and reorganized API structures for better clarity, merging related functionalities into cohesive groups (e.g., `CoreAPI`, `VolumesAPI`, `TagsAPI`, `MediaAPI`, `FilesAPI`, `JobsAPI`).
- Updated method signatures to align with new action and query formats, ensuring consistency across the API.
- Enhanced JSON handling by implementing a custom `JSONValue` type for improved serialization and deserialization.
- Refactored job-related methods to utilize the updated action context, enhancing the overall job management experience.
- Replaced `JsonValue` with `JSONValue` across multiple files for improved JSON handling consistency.
- Enhanced `JobInfo` structure to support optional `actionInput` and `context` properties, allowing for more flexible job action context management.
- Updated job action handling in `JobModels.swift` to utilize new computed properties for better clarity in action descriptions.
- Refactored `SpacedriveAPI` to align with the new JSON structure, ensuring all API methods correctly handle the updated types.
- Improved Codable conformance for `JSONValue`, facilitating seamless JSON serialization and deserialization.
- Added a new `ConnectivityCard` SwiftUI component to display daemon connectivity and service status, improving user interface for monitoring services.
- Enhanced `JobInfo` structure to include action context fields, allowing for richer job information and better tracking of job actions.
- Updated `JobRowView` to utilize the new `displayName` property for jobs, providing clearer context in the job list.
- Refactored `JobManager` to support action context during job dispatching, improving job management capabilities.
- Introduced new computed properties in `JobInfo` for better job name and context information display, enhancing user experience in job monitoring.
- 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.
- Removed unnecessary DispatchQueue.main.async calls in DaemonConnector for setting the current library ID, simplifying the code.
- Added debug logging in RpcServer to track method execution and incoming requests, improving traceability.
- Updated SpacedriveClient to log outgoing query requests, enhancing visibility into API interactions.
- Deleted the obsolete generate_client.sh script, cleaning up the Swift client package.
- Introduced a new `CliConfig` struct for managing CLI-specific configurations, including the current library ID.
- Added methods to load, save, set, and clear the current library ID within the CLI context.
- Updated the `Context` struct to integrate `CliConfig`, ensuring library ID management is consistent across the application.
- Enhanced command implementations to utilize the new CLI configuration features, improving user experience and functionality.
- Updated the Swift API code generation to utilize specific input and output type names for actions and queries, improving accuracy in generated code.
- Refactored the `OperationTypeInfo` and `QueryTypeInfo` traits to include `input_type_name` and `output_type_name`, enhancing type clarity.
- Added debug logging for type name extraction to facilitate easier troubleshooting and verification of type mappings.
- Modified the Swift client structure to reflect changes in action and query method signatures, ensuring consistency across the API.
- Added a new `LibrarySelector` SwiftUI component to display and manage the current library selection.
- Integrated the component with the `SharedAppState` to reflect the current library and available libraries.
- Enhanced the `DaemonConnector` to load and manage libraries, including switching and refreshing libraries.
- Updated the `JobMonitorView` to include the `LibrarySelector`, improving the user interface for library management.
- Added `library_id` field to the `Context` struct to manage library-specific operations.
- Introduced `with_library_id` and `set_library_id` methods for setting the library ID in the `Context`.
- Updated various command implementations to utilize the new library ID handling, improving the accuracy of library-related queries.
- Refactored query and action calls to use input structs instead of query structs, enhancing type safety and clarity across the application.
- Improved error handling and response deserialization in query execution macros, ensuring robust interaction with the core API.
- Introduced a new function to automatically generate Swift API code based on extracted types, improving the integration between Rust and Swift.
- Enhanced the build process to check for the existence of necessary directories and handle errors gracefully during API code generation.
- Updated the Swift client structure to include newly generated API methods, ensuring comprehensive coverage of available operations.
- Refactored type extraction logic to support the new API generation, improving clarity and organization in the generated Swift code.
- Refactored the Swift type generation process to include Codable conformance for SpacedriveApi, CoreAction, LibraryAction, CoreQuery, and LibraryQuery, improving serialization and deserialization capabilities.
- Removed unused parameters from the `generate_swift_api_code` function to streamline the code.
- Deleted the obsolete `test_api_structure.rs` file, cleaning up the project structure.
- Updated generated Swift code to ensure consistency and clarity in type definitions.
- Introduced a new function `create_spacedrive_api_structure` to generate a comprehensive API structure for better type extraction.
- Refactored the Swift type generation process to utilize the new API structure, improving the clarity and organization of generated code.
- Added detailed logging for API structure summary, enhancing visibility into the generated types and their organization.
- Created a new file `test_api_structure.rs` for testing the API structure generation, ensuring robustness and correctness in type extraction.
- Added `OperationScope` and `QueryScope` enums to categorize operations and queries as Core or Library.
- Updated registration macros to implement scope determination, improving type extraction accuracy.
- Modified `OperationTypeInfo` and `QueryTypeInfo` traits to include scope information in metadata.
- Enhanced logging in tests to display operation and query scopes, facilitating better debugging and verification.
- Updated the Swift type generation process to utilize a new rspc-inspired type extraction system, allowing for automatic discovery of operations and queries.
- Improved the output format to include detailed information about discovered operations and queries, enhancing usability and verification.
- Refactored the main function to streamline type registration and generation, ensuring comprehensive coverage of the Spacedrive API.
- Updated generated Swift code header to reflect the new extraction methodology, maintaining clarity for future developers.
- Created a new `infra/api` module to centralize API operations and enhance session management.
- Implemented `ApiDispatcher` to streamline operation execution with built-in authentication and authorization.
- Updated query and action signatures to accept `SessionContext`, improving context handling across the application.
- Added `Type` derive macro to various structs for better type safety and integration with Specta.
- Documented the design and migration path for the new API structure, ensuring clarity for future development.
- Introduced consistent Input/Output patterns for all queries, improving architectural clarity.
- Created dedicated input structs for each query to separate API concerns from execution logic.
- Updated query implementations to utilize new traits, ensuring better type safety and integration with Specta.
- Enhanced registration macros to support the new query structure, facilitating automatic type extraction for Swift generation.
- Documented the refactor plan and its benefits for future development and maintenance.
- Introduced a trait-based type extraction system to automatically generate Input/Output types for registered operations and queries.
- Enhanced registration macros to implement the OperationTypeInfo and QueryTypeInfo traits, facilitating compile-time type discovery.
- Added new modules for type extraction and testing, ensuring comprehensive coverage and validation of the type extraction functionality.
- Documented the successful implementation and provided evidence of automatic trait implementations through compilation errors.
- Added `Type` derive macro to several structs and enums across file operations to improve type safety and integration with Specta.
- Reorganized module imports in `mod.rs` for better clarity and structure.
- Introduced a new documentation file on dynamic type generation for the Swift client, detailing the implementation of type-safe API generation techniques.
- Implemented pauseJob and resumeJob methods in DaemonConnector to manage job states.
- Updated SharedAppState to handle new pause and resume actions.
- Introduced JobActionButton in JobRowView for user interaction to pause or resume jobs.
- Enhanced launch configuration in VSCode for debugging Spacedrive applications.
- Deleted .gitignore, build scripts, and other obsolete files to clean up the project structure.
- Removed the Package.swift file and associated Swift files, focusing on essential components for the Spacedrive Companion app.
- Updated the main application structure to enhance clarity and maintainability.
- Simplified the overall codebase by eliminating unused components and improving organization.
- Added a warning suppression directive in the Rust CLI main file to reduce noise during compilation.
- Deleted several Swift files related to job management and UI components, streamlining the codebase and focusing on essential functionality.
- Updated the main application structure to enhance window management and user experience.
- Improved the organization of action context handling in the Rust core, facilitating better job dispatching with action context awareness.
- Removed manual logging to a debug file in favor of direct console output for job list fetching and library retrieval, improving clarity during debugging.
- Updated the Swift type definitions for various enums to conform to Codable, enhancing serialization capabilities and type safety across the codebase.
- Streamlined the generated Swift types by removing unnecessary imports and ensuring consistency with the latest Rust core changes.
- Removed obsolete TypeScript client files including `generate_client.sh` and `jest.config.js` to streamline the project.
- Updated `Cargo.toml` and `package.json` to reflect new dependencies and license changes, enhancing compatibility and maintainability.
- Refactored TypeScript client methods for improved type safety and clarity, including the introduction of a new `generate-types` script for type generation.
- Enhanced README documentation to provide clearer usage instructions and examples for the TypeScript client.
- Updated type definitions and event handling to align with the latest Rust core changes, ensuring consistency across the codebase.
- Modified the Swift type generation script to include a new RustDuration struct for decoding Rust Duration format, enhancing type safety.
- Updated the generated Swift types to reflect changes in duration handling and improved documentation.
- Removed obsolete test files related to enum variants and event decoding, streamlining the codebase and focusing on relevant functionality.
- Updated the DaemonConnector to utilize a new type-safe Event enum, improving clarity and maintainability.
- Refactored job event handling to use structured data types for job progress and completion, enhancing real-time tracking.
- Removed the obsolete generate_event_samples.rs file to streamline the codebase.
- Enhanced serialization and deserialization processes for various data structures to ensure compatibility with the Rust daemon output.
- Updated Swift type generation to reflect changes in event structure and improve type safety.
- Removed manual type definitions in favor of generated types from SpacedriveClient, enhancing type safety.
- Refactored event handling in DaemonConnector to utilize a new type-safe Event enum for better clarity and maintainability.
- Updated job management logic to align with the new event structure, improving real-time job tracking and state management.
- Enhanced serialization and deserialization processes for various data structures to ensure compatibility with the Rust daemon output.
- Removed obsolete schema generation binary and updated Cargo.toml to reflect changes in dependencies and project structure.
- Removed the `codegen` module and its associated files to streamline the codebase.
- Introduced a new binary for generating Swift types using Specta, enhancing type safety and integration.
- Updated various data structures to utilize the `specta` crate for type generation.
- Refactored existing types to remove `JsonSchema` derives in favor of `specta::Type`, improving compatibility with the new generation system.
- Enhanced the `Cargo.toml` to exclude unnecessary crates and improve workspace organization.
- Introduced new data structures for library and job information to align with the Rust daemon output.
- Implemented real-time job tracking by fetching the current job list and subscribing to job events.
- Enhanced event handling to manage job states (started, progress, completed, failed, paused, resumed) effectively.
- Improved logging for connection status and job events to aid in debugging and user experience.
- Updated JobInfo model to allow mutable properties for better state management during job updates.
- Enhanced the `Event` enum documentation for clarity on its purpose.
- Modified the Swift client generation script to create event samples for enum generation.
- Updated the Swift client to utilize the new `EventElement` type for event handling.
- Improved error handling and logging in the event subscription process.
- Refactored the types generated for Swift to align with the new event structure.
- Renamed `common_types` to `core_types` in `UnifiedSchema` for clarity.
- Updated schema extraction methods to reflect the new naming convention.
- Enhanced the `register_schema_type` macro for better type registration in schema generation.
- Added `JsonSchema` derives to various structs to support schema extraction.
- Improved logging in `generate_schemas` to provide accurate output details.
- Updated documentation to reflect changes in schema structure and type handling.
- Added `schemars` dependency to facilitate JSON Schema generation.
- Introduced a new `generate_schemas` binary for extracting and writing unified JSON schemas.
- Enhanced existing modules to support schema generation, including updates to `build.rs` for change detection.
- Updated various data structures with `JsonSchema` derives to enable schema extraction.
- Created comprehensive documentation for the client generation system design, detailing architecture and usage.
- Added TypeScript and Swift client generation scripts, ensuring type-safe access to the Spacedrive daemon API.
- Added a new SwiftUI application to monitor Spacedrive daemon jobs in real-time.
- Implemented job status tracking with visual indicators for running, completed, failed, and paused jobs.
- Included build and run scripts for easy setup and execution.
- Created a README with detailed instructions on building, running, and using the application.
- Added integration with the Spacedrive daemon via Unix domain socket for real-time updates.
- Introduced a translucent window design for a seamless macOS experience.
- Added a new `persistence_complete_tx` channel to facilitate signaling when job state persistence is complete.
- Updated `JobExecutor` and `JobManager` to manage the persistence completion channel, ensuring proper signaling during job execution and state management.
- Enhanced the `ChangeDetector` to include a cache for file existence checks, improving performance and accuracy in detecting changes.
- Refactored related methods to streamline job state handling and improve logging for persistence operations.
- Introduced a new `built_at` field in the `CoreStatus` struct to capture the build timestamp.
- Updated the `Cargo.toml` to include the `chrono` crate for handling date and time.
- Emitted the build timestamp during the build process in `build.rs`.
- Enhanced the CLI output to display the build timestamp alongside the core version and data directory.
- Enhanced logging for job state serialization and deserialization, providing clearer insights during pause and resume processes.
- Updated job handling logic to ensure state is saved effectively, improving robustness in job management.
- Refactored the `ChangeDetector` to include accurate size information for entries, aiding in distinguishing between genuine moves and duplicate content.
- Introduced new methods for checking file content equivalence, enhancing change detection accuracy.
- Removed redundant checkpoint logic in indexing phases, streamlining state management during job execution.
- Introduced new methods for moving entries and updating them within existing transactions, improving consistency and performance.
- Refactored the `move_entry` function to handle transactions more effectively, allowing for rollback on errors.
- Added `bulk_move_entries` method to facilitate moving multiple entries in a single transaction, optimizing batch processing.
- Updated the job handling logic to ensure state is created early and improved interruption handling during processing phases.
- Enhanced logging for better visibility into job states and transaction management.
- Introduced two new benchmark recipes: `desktop_complex.yaml` and `desktop_extreme.yaml`.
- `desktop_complex.yaml` simulates a realistic desktop environment with 500k files and 8 levels of directory nesting.
- `desktop_extreme.yaml` targets power users with 1M files and 12 levels, featuring a comprehensive file type coverage and realistic size distribution.
- Updated documentation to include details about the new benchmark recipes and their intended use cases.
- Introduced a new `core/benchmarks` module to facilitate performance testing and benchmarking.
- Updated `Cargo.toml` to include the new benchmarks module in the workspace.
- Refactored job handling in the `JobManager` and `JobExecutor` to support job resumption, enhancing the ability to recover from interruptions.
- Improved logging throughout the job lifecycle to provide better visibility into job states and transitions.
- Added integration tests for job pause/resume functionality, ensuring robustness in job management.
- Updated `Cargo.toml` for the CLI to include `comfy-table` for improved output formatting.
- Enhanced the daemon's shutdown process to provide clearer logging during shutdown initiation and completion.
- Refactored the logo display function to use a colored ASCII representation, improving visual appeal.
- Removed unnecessary CLI dependency on `clap` in the core, simplifying the dependency structure.
- Updated the CLI to construct the daemon command with a specific path and pass necessary arguments such as data directory and instance name.
- Enhanced foreground mode to provide better logging and error handling during daemon execution.
- Refactored the daemon to calculate instance-specific data directories and socket paths, ensuring proper isolation for multiple instances.
- Improved overall user experience by clarifying daemon operation status and error messages.
- Updated the `LibraryCreateAction` to automatically set the newly created library as the current library in the session context.
- Introduced a new function `load_existing_locations` in the `LocationWatcher` to load and add existing library locations from the database to the watcher, improving the initialization process.
- Enhanced error handling and logging for loading locations, ensuring better visibility into potential issues during the loading process.
- Eliminated the `--enable-networking` flag from the `start` and `restart` commands in the CLI, simplifying the command structure.
- Updated related documentation to reflect the removal of the networking option, ensuring consistency across usage examples.
- Adjusted the daemon to always enable networking, streamlining the startup process for users.
- Added a new function `validate_instance_name` to ensure instance names are secure and conform to specified criteria, preventing path traversal attacks.
- Updated the CLI and daemon to utilize the new validation function when processing instance names.
- Refactored the `RpcServer` to replace the `CoreInstanceManager` with a direct `Core` instance, simplifying the architecture.
- Removed the `instance.rs` file as its functionality has been integrated into the main daemon logic.