231 Commits

Author SHA1 Message Date
Jamie Pine
8d751b0713 feat: enhance event filtering and subscription management
- 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.
2025-11-20 04:38:01 -08:00
Jamie Pine
ef25390441 feat: add unique bytes tracking and cache refresh functionality for volumes
- 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.
2025-11-17 23:37:48 -08:00
Jamie Pine
8305d7d235 feat: working sync test, sick log analyzer, cleanup 2025-11-16 01:53:35 -08:00
Jamie Pine
ddcefe2495 docs 2025-11-14 21:40:49 -08:00
James Pine
f7d7468bce remove submodules 2025-11-14 21:31:21 -08:00
Jamie Pine
9182b1f1ff fix: improve sync partner retrieval 2025-10-20 15:34:59 -07:00
Jamie Pine
dcc4dc4fc1 pairing 2025-10-18 10:33:20 -07:00
Jamie Pine
e07c28c484 (chore): update tasks 2025-10-14 20:39:56 -07:00
Jamie Pine
83dbf88c47 refactor: improve sidebar functionality and code organization 2025-10-14 03:36:48 -07:00
Jamie Pine
566d9c6a6a feat: add VolumeEvent enum and implement ApfsContainer 2025-10-14 03:00:50 -07:00
Jamie Pine
c8e598b602 Add cloud variant to SdPath 2025-10-13 03:07:13 -07:00
Jamie Pine
d4700e4c43 docs 2025-10-12 23:10:05 -07:00
Jamie Pine
0cd4dad7e8 docs 2025-10-12 03:30:22 -07:00
Jamie Pine
fa32c67906 docs 2025-10-11 23:57:48 -07:00
Jamie Pine
a33ee63361 cleanup 2025-10-11 19:28:52 -07:00
Jamie Pine
92af932058 design docs moved to submodule 2025-10-11 11:13:37 -07:00
Jamie Pine
35ac1f214f sorting docs 2025-10-11 11:11:25 -07:00
Jamie Pine
efef06af63 add dates to docs 2025-10-11 11:07:42 -07:00
Jamie Pine
1a3c644092 move docs 2025-10-11 10:53:27 -07:00
Jamie Pine
f5e3465b75 move docs 2025-10-11 10:53:17 -07:00
Jamie Pine
63397de4f5 yes 2025-10-11 10:49:32 -07:00
Jamie Pine
284f709932 cleanup 2025-10-11 09:13:17 -07:00
Jamie Pine
68afdb9c51 cleanup 2025-10-11 09:00:58 -07:00
Jamie Pine
94a52dd2df cleanup 2025-10-11 08:48:11 -07:00
Jamie Pine
c77121aff8 The Spacedrive Collection 2025-10-11 07:16:16 -07:00
Jamie Pine
a5c9717dcb modularize photos extension and fix all errors 2025-10-11 05:32:47 -07:00
Jamie Pine
37772b7e2c docs: Remove Agent Manager Design Document and Update Whitepaper
- 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.
2025-10-11 01:21:36 -07:00
Jamie Pine
eb06c0a5cb feat: Introduce Spacedrive SDK API Reference and core modules
- 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.
2025-10-11 00:58:24 -07:00
Jamie Pine
8eefce6bf0 docs: Clean up whitespace in SDK specification
- Removed unnecessary blank lines in the SDK specification document to improve readability and maintain consistency in formatting.
2025-10-10 21:22:09 -07:00
Jamie Pine
9096eefca9 docs 2025-10-10 21:22:02 -07:00
Jamie Pine
492a3124d4 docs: Update SDK specification with new primitives and memory query API
- 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.
2025-10-10 19:03:58 -07:00
Jamie Pine
df716ad0b3 docs: Update MEMO2.md with latest insights on Spacedrive V2 launch and extension strategy
- 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.
2025-10-10 18:16:21 -07:00
Jamie Pine
a1ec44cff2 docs: Refine MEMO2.md for Spacedrive V2 with updated business model and extension details
- 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.
2025-10-10 06:31:07 -07:00
Jamie Pine
e3f81c976b docs: Revise extension lineup and investor memo for Spacedrive V2 launch
- 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.
2025-10-10 06:27:17 -07:00
Jamie Pine
44fd259f12 docs: Add Extension Lineup Ideas for November 2025 Launch
- 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.
2025-10-10 04:00:02 -07:00
Jamie Pine
50d4ac1199 refactor: Remove entries module and update investor memo for clarity
- 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.
2025-10-10 03:12:20 -07:00
Jamie Pine
1302a4099b docs: Update MEMO2.md with Spacedrive V2 launch insights and platform advantages
- 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.
2025-10-10 01:30:35 -07:00
Jamie Pine
9a74e0bbf6 docs: Revise investor memo for Spacedrive V2 launch and platform enhancements
- 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.
2025-10-10 01:19:32 -07:00
Jamie Pine
a6d32bf2c7 docs: Update MEMO.md with Spacedrive V2 launch details and SDK enhancements
- 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.
2025-10-10 00:06:44 -07:00
Jamie Pine
6266c5f081 feat: Deprecate leader device argument and enhance sync service with backfill manager
- 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.
2025-10-10 00:06:36 -07:00
Jamie Pine
8c868b41c7 refactor: Enhance entry and tag models for improved JSON deserialization and sync capabilities
- 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.
2025-10-09 16:42:17 -07:00
Jamie Pine
8b1476af5d feat: Introduce automatic foreign key mapping for syncable models
- 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.
2025-10-09 15:01:31 -07:00
Jamie Pine
28e3ee443d feat: Enhance sync functionality by adding sync fields to devices and implementing migration
- 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.
2025-10-09 08:48:23 -07:00
Jamie Pine
10110fd710 feat: Implement automatic dependency resolution for syncable models
- 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.
2025-10-09 07:28:45 -07:00
Jamie Pine
0db006107e refactor: Update job macro references to improve consistency
- 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.
2025-10-09 04:08:32 -07:00
Jamie Pine
f8ad1c5d16 cleanup docs 2025-10-09 03:56:26 -07:00
Jamie Pine
2bac0d3226 feat: Integrate WASM extension system into Spacedrive
- 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.
2025-10-09 01:34:04 -07:00
Jamie Pine
4ade103d38 feat: Complete implementation of leaderless hybrid sync system
- 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.
2025-10-09 00:03:27 -07:00
Jamie Pine
a738a21e04 docs 2025-10-08 22:10:29 -07:00
Jamie Pine
70b7fc53a6 feat: Implement state and shared change application for location and tag models
- 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.
2025-10-08 20:22:14 -07:00