Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENG-1963] Filesystem actions upgrade #2833

Draft
wants to merge 38 commits into
base: main
Choose a base branch
from

Conversation

jamiepine
Copy link
Member

@jamiepine jamiepine commented Dec 15, 2024

  • Implement all remaining filesystem actions into the new job system
  • Add undo support
  • Remove ephemeral API entirely
  • Refactor core into crates

Copy link

vercel bot commented Dec 15, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
spacedrive-landing ⬜️ Ignored (Inspect) Visit Preview Dec 24, 2024 0:39am
spacedrive-web ⬜️ Ignored (Inspect) Visit Preview Dec 24, 2024 0:39am

Copy link

linear bot commented Dec 15, 2024

Implements hash verification in the StreamCopyBehavior to validate successful file copies.
This ensures data integrity by comparing source and target file hashes after copying.

- Added blake3 hash verification during streaming copy operations
- Created DeleteBehavior trait for flexible file deletion strategies
- Made StreamCopyBehavior generic over DeleteBehavior for extensibility
- Implemented LocalDeleteBehavior for filesystem operations
- Added delete_on_success option to remove source after verification

Hash verification is enabled by default for stream copies but can be disabled.
The deletion behavior system is designed to support future cloud storage operations.
- Introduce reversible job system with undo capabilities
- Remove location_id coupling from job system core
- Consolidate file operations by merging mover into copier
- Update job system documentation and architecture docs
This commit restructures the core module by splitting it into smaller, more focused crates to improve modularity and maintainability. Key changes include:

- Split job-related functionality into dedicated crates:
  - job-system: Core job execution infrastructure
  - job-errors: Centralized error handling
  - file-actions: File operations (copy, delete)
  - location-scan: File identification and indexing

- Extracted core components into separate crates:
  - context
  - custom-uri
  - device (formerly node)
  - library
  - location
  - preferences
  - search
  - tag
  - volume

- Renamed crates for clarity:
  - file-path-helper -> file-helper
  - sync -> library-sync
  - heavy-lifting -> location-scan

This restructuring improves code organization, reduces coupling, and makes the codebase more maintainable.
@jamiepine jamiepine force-pushed the eng-1963-filesystem-actions-upgrade branch from be89130 to 53aa0db Compare December 20, 2024 08:34
- Move device crate functionality into new node crate
- Move API into independent crate
- Remove old job system files that were migrated to new system
- Migrate device crate to node
- Update dependencies and references to use new node crate
- Fix more import errors
- Still huge WIP, loads more errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants