- Deleted the Agent Manager Design document to streamline documentation and focus on the new extension-based agent architecture.
- Updated the whitepaper to reflect the transition to an extension-based agent architecture, detailing the capabilities of specialized AI agents implemented as WASM extensions.
- Revised sections to emphasize the event-driven processing, memory systems, and safety mechanisms of the new agent architecture.
- Enhanced clarity on the integration of agents within the VDFS and their roles in proactive file management and user assistance.
- Added a comprehensive API reference document for the Spacedrive SDK, detailing all APIs as type-checked stubs for type-checking purposes.
- Introduced new core modules including `actions`, `agent`, `ai`, `job_context`, `models`, `query`, `tasks`, and `vdfs`, each with defined structures and functionalities.
- Updated `Cargo.toml` to include new dependencies and ensure compatibility with the SDK.
- Enhanced `types.rs` to include additional error types and result types for better error handling across the SDK.
- Established a clear structure for extension development, allowing for future implementations and runtime testing.
- Expanded the SDK specification to include detailed sections on new primitives: `#[app]`, `#[model]`, and `#[agent]`.
- Introduced a comprehensive Memory Query API reference, detailing capabilities for temporal and associative memory types.
- Added custom query methods for `ChronicleMind`, enhancing functionality for retrieving related papers and summarizing recent activities.
- Removed outdated SDK_SYNTAX_FINAL.md to streamline documentation and focus on the latest design updates.
- Revised MEMO2.md to incorporate recent developments and strategic insights for the upcoming Spacedrive V2 launch.
- Clarified the integration of new extensions and their roles within the platform, emphasizing the business model focused on open-source and paid offerings.
- Enhanced projections and validation metrics to align with the November launch timeline, including user acquisition and revenue expectations.
- Streamlined descriptions to improve clarity and engagement for potential investors and stakeholders.
- Clarified the business model, emphasizing the free and open-source core with paid extensions launching in November.
- Streamlined descriptions of core VDFS primitives and their applications in various data-intensive scenarios.
- Updated projections and validation metrics for the November launch, including user acquisition targets and revenue expectations.
- Enhanced clarity on the mix of open and closed source extensions, maintaining trust through sandboxed execution and transparent permissions.
- Updated the extension lineup document to reflect new names and features for the November 2025 launch, including Chronicle (formerly Research) and Cipher (formerly Vault).
- Enhanced descriptions of each extension's capabilities, pricing, and strategic advantages, emphasizing their roles as subsystems of a data OS.
- Revised the investor memo to clarify the transition from V1 to V2, highlighting the complete VDFS architecture and the business model centered around open source and paid extensions.
- Included insights on the platform's unique value proposition and market strategy, projecting significant growth and customer acquisition plans.
- Introduced a new document outlining proposed extensions for the November 2025 launch, detailing core principles and confirmed must-have extensions.
- Included descriptions, pricing models, and market analysis for each extension: Research, CRM, Vault, and Finance.
- Provided alternative extension ideas and strategic considerations for the launch lineup.
- Recommended a final launch lineup of four extensions, emphasizing their roles as subsystems of a data OS.
- Deleted the `entries` module from the project structure to streamline operations.
- Revised the investor memo to enhance clarity and conciseness, consolidating information about Spacedrive V2's launch and its business model.
- Updated supporting materials and risk mitigation strategies to better reflect the current development and market approach.
- Revised the memo to clarify the transition from V1 to V2, emphasizing the execution failures of V1 and the improvements made in V2.
- Highlighted the development timeline and architectural refinements that enabled a production-ready launch in four months.
- Detailed the platform's unique value proposition, focusing on local-first privacy and the advantages of the Extension SDK.
- Enhanced the go-to-market strategy, including targeted customer acquisition plans and compliance certifications.
- Included validation metrics and a call to action for potential investors.
- Updated the investor memo to reflect the upcoming launch of Spacedrive V2 in November 2025, highlighting the transition from V1 to V2 and the lessons learned.
- Detailed the new architecture and features, including the introduction of three paid extensions: Finance, Notes, and CRM, along with their pricing models.
- Clarified the platform's unique value proposition, emphasizing local-first privacy and the advantages of the Extension SDK.
- Enhanced the go-to-market strategy and unit economics, projecting significant growth and outlining customer acquisition plans.
- Included supporting materials and a call to action for potential investors.
- Revised the introduction to clarify the failures of Spacedrive V1 and the responsibilities taken.
- Expanded on the Extension SDK, detailing the reduction in development complexity and providing examples of traditional vs. Spacedrive extensions.
- Updated the business model section to reflect changes in pricing and compliance certifications.
- Adjusted projections and market strategies to align with the new product offerings and compliance roadmap.
- Enhanced customer acquisition strategies and clarified the first extension launch details.
- 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.
- Refactored the entry model to extract fields from JSON instead of direct deserialization, allowing for better error handling and validation of incoming data.
- Introduced a helper function to streamline field extraction, ensuring all required fields are present before processing.
- Updated the tag model to similarly extract fields from JSON, enhancing its robustness during synchronization.
- Improved the handling of optional fields in both models, ensuring that missing data is managed gracefully.
- Removed the obsolete ENTRY_DIRECTORY_PATH_SUMMARY.md and ENTRY_PATH_SYNC_ANALYSIS.md files, consolidating documentation for clarity.
- Added a new `foreign_key_mappings` method to the Syncable trait, allowing models to declare their foreign key relationships for automatic UUID conversion during synchronization.
- Implemented the `to_sync_json` method to utilize the new FK mappings, enabling seamless conversion of local integer IDs to UUIDs before syncing.
- Updated the entry and location models to include foreign key mappings, enhancing their synchronization capabilities.
- Enhanced the `apply_state_change` method to leverage the generic mapping logic, simplifying the implementation for models with foreign keys.
- Introduced comprehensive documentation on the new FK mapping system and its usage across models.
- Added `sync_enabled` and `last_sync_at` fields to the device model to support synchronization capabilities.
- Created a migration script to update the devices table, consolidating sync-related data.
- Updated various components to ensure sync is enabled by default for new devices.
- Removed the obsolete sync partners table, streamlining the sync architecture.
- Introduced comprehensive sync integration tests to validate the new functionality and ensure robust performance.
- Added `sync_depends_on` method to the Syncable trait, allowing models to declare their dependencies for synchronization.
- Updated device, location, entry, and tag models to specify their dependencies, facilitating automatic computation of sync order.
- Enhanced backfill process to respect model dependencies, preventing foreign key violations during synchronization.
- Improved documentation to reflect the new dependency graph and its benefits for model synchronization.
- Replaced all instances of the `spacedrive_job` macro with the simplified `job` macro across documentation and code files.
- Updated related documentation to reflect the new macro name, enhancing clarity for developers.
- Ensured all examples and usage instructions are aligned with the updated macro terminology.
- Implemented a complete WASM extension framework, enabling secure, sandboxed plugins.
- Added core components including `PluginManager`, `host_functions`, and `permissions` for managing the lifecycle and security of extensions.
- Integrated Wasmer runtime for executing WASM modules, enhancing the platform's extensibility.
- Developed a demo extension showcasing the new API, significantly reducing boilerplate code and improving developer experience.
- Updated documentation to reflect the new architecture and provide guidance for extension development.
- Prepared for testing and validation of the extension system, marking a significant step towards a robust plugin ecosystem.
- Finalized the core synchronization infrastructure, enabling device-independent writes without leader checks.
- Implemented critical components including `TransactionManager`, `SyncProtocolHandler`, and `PeerSync` with enhanced broadcast capabilities.
- Achieved full message routing for state and shared changes, ensuring robust error handling and logging.
- Registered new models in the async-safe registry, facilitating state-based and log-based synchronization.
- Documented implementation progress and architecture changes, highlighting the transition to a leaderless model.
- Prepared for integration testing with remaining tasks outlined for backfill and retry queue implementation.
- Added `apply_state_change` method to the `location` model for idempotent state-based replication, allowing device-owned data to be synchronized without conflicts.
- Introduced `apply_shared_change` method in the `tag` model to handle shared resources with union merge conflict resolution, preserving tags with the same name in different contexts.
- Enhanced documentation to clarify the synchronization strategies for device-owned and shared models, including error handling and usage examples.
- Updated tests to validate the new functionality and ensure correct behavior during synchronization processes.
- Removed leadership-related components from the sync infrastructure, including `LeadershipManager` and `sync_leadership` fields across various models.
- Implemented a new peer-to-peer sync model utilizing Hybrid Logical Clocks (HLC) for shared resources and state-based sync for device-owned data.
- Updated the `Syncable` trait and related modules to reflect the new architecture, ensuring seamless integration of state and log-based synchronization.
- Introduced `PeerLog` for managing device-specific changes and `PeerSync` for handling synchronization in the leaderless environment.
- Revised documentation to outline the new sync architecture and its implications for device synchronization, emphasizing the benefits of a leaderless approach.
- Added a comprehensive checklist for removing leader-related code in the transition to a leaderless hybrid sync model.
- Documented necessary changes across core infrastructure, service layer, library management, and network protocols to facilitate the removal of leadership components.
- Updated sync documentation to reflect the new architecture, emphasizing the leaderless approach and its implications for device synchronization.
- Included migration strategies and terminology updates to ensure clarity in the transition process.
- Updated the library sync system to utilize a leaderless hybrid model, enhancing real-time synchronization of shared resources.
- Implemented state-based sync for device-owned data and log-based sync with Hybrid Logical Clocks (HLC) for shared resources.
- Revised documentation to reflect architectural changes, including the removal of leader election and the introduction of per-device sync logs.
- Enhanced conflict resolution strategies using HLC for shared metadata, ensuring deterministic merging and consistency across devices.
- Updated implementation tasks and acceptance criteria for various components to align with the new architecture.
- Introduced a comprehensive sync infrastructure, including a `Syncable` trait for models, enabling automatic logging of changes in a dedicated sync log database.
- Added `LeadershipManager` for managing leader election and lease tracking, ensuring reliable synchronization across devices.
- Implemented `TransactionManager` to handle atomic writes and sync logging, enhancing data integrity during state changes.
- Created a new `sync` module with necessary components such as `SyncLogDb`, `SyncLogEntry`, and sync protocol handlers for efficient communication between leader and follower devices.
- Developed integration tests to validate the sync functionality and ensure robust performance across various scenarios.
- 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.
- Enhanced `MacOSHandler` to query the database for inode information when handling rename events, allowing detection of renamed files even when the old path no longer exists.
- Implemented `get_inode_from_db()` method to facilitate database lookups for inode retrieval.
- Updated `handle_single_rename_event()` to utilize the new database query logic, ensuring proper event emission and entry identity preservation.
- Registered and unregistered database connections for locations in `LocationWatcher`, improving rename detection accuracy.
- Added integration tests to validate rename functionality and ensure no duplicate entries are created during renames.
- Updated `ApiDispatcher` to delegate action and query execution to `ActionManager` and `QueryManager`, respectively, improving separation of concerns.
- Refactored permission checks and action dispatching to ensure consistent handling across API calls.
- Introduced `QueryContext` for tracking query metadata, enhancing query execution with contextual information.
- Improved error handling by integrating new `QueryError` types for better clarity in query-related failures.
- Cleaned up obsolete code and updated import paths to reflect the new structure, ensuring maintainability and clarity.
- 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.
Add comprehensive design document for reorganizing API infrastructure:
- Move cqrs.rs to infra/query/ for better symmetry with actions
- Move registry, type_extraction, api_types to infra/wire/
- Improve code organization and discoverability
- Clear separation of infrastructure vs business logic
This is Option A: Full consolidation with wire/ directory for all
wire protocol and type system concerns.
- Added `session_keys` to the `Disconnected` state to preserve encryption keys for reconnection.
- Enhanced `set_device_connected` method to handle transitions from `Disconnected` to `Connected` states.
- Updated device query to include `Disconnected` devices, ensuring they remain visible in the device list.
- Improved overall device state management for seamless reconnection and stability in device connections.
- 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 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.
- 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.