Commit Graph

84 Commits

Author SHA1 Message Date
Jamie Pine
5ec4a31abb Update CI workflow and enhance core features
- Changed the CI workflow to run tests on self-hosted runners for better performance and flexibility.
- Updated the test execution condition to trigger on push events and specific pull requests.
- Consolidated test execution to run all tests in the workspace instead of a single test.
- Modified the default features in Cargo.toml for the server and core applications to include "heif" and "ffmpeg" for enhanced media support.
- Added metrics collection capabilities to the SyncProtocolHandler for improved monitoring of sync operations.
- Refactored sync tests to streamline setup and improve clarity in test scenarios.
2025-12-18 03:02:54 -08:00
Jamie Pine
7d7849d9ac Update tasks and fix server context 2025-12-16 22:45:43 -08:00
Jamie Pine
d7a400d4d0 fix windows CI 2025-12-15 06:37:37 -08:00
Jamie Pine
0b93a60895 Refactor: Improve event unsubscription handling in useClient and App components
This update modifies the unsubscription logic in both the useClient and App components to utilize promises for better handling of asynchronous cleanup. This change enhances the reliability of resource management during component unmounting.
2025-12-15 05:46:59 -08:00
Cursor Agent
29d79ee9e7 feat: Add auto-switch for synced libraries
This commit introduces an auto-switch feature for libraries created via sync. Users can now configure whether to automatically switch to a newly synced library. This involves updates to the preferences store, event handling in mobile and tauri apps, and modifications to the core library event system to include a `LibraryCreationSource` enum.

Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-15 08:45:40 +00:00
Jamie Pine
828b296adb Update Tauri build script to ensure it continues on failure and add macOS check in entitlement fix script 2025-12-14 21:56:52 -08:00
Jamie Pine
6d680fa028 Update Tauri configuration and styles; refactor components for improved readability and consistency. Adjusted CSS styles and Tailwind configurations, and made minor code formatting changes across various files. 2025-12-14 21:47:16 -08:00
Jamie Pine
0ab4f96fda Update macOS entitlements and post-build script 2025-12-12 18:08:33 -08:00
Jamie Pine
832428c8ac Wire up daemon for Tauri bundler validation 2025-12-12 16:23:39 -08:00
Jamie Pine
dc690ac217 Fix macOS build and update framework path
- Conditionally compile the macOS Command import
- Use Spacedrive.framework directly under native_deps instead of
  Frameworks/Spacedrive.framework
2025-12-10 23:14:54 -08:00
Jamie Pine
af43ed76bd Update Tauri config, GitHub action, and Cargo.lock 2025-12-10 22:12:18 -08:00
Jamie Pine
12ddcce940 Run Clippy only on Linux runners
Limit CI clippy to Linux runners Refactor daemon_target path
construction in build.rs to a multi-line format for readability
2025-12-10 20:48:03 -08:00
Jamie Pine
9981ee76d2 Update TS configs and add typecheck script 2025-12-10 20:44:52 -08:00
Jamie Pine
1b36735935 Merge branch 'main' of https://github.com/spacedriveapp/spacedrive 2025-12-10 19:19:23 -08:00
Jamie Pine
25e86e754d remove external bin for now, tauri wont bundle with daemon in release
mode until this is solved, but you can use the CLI. this unblocks
compile.
2025-12-10 19:18:52 -08:00
Lynx
0386633ff4 lazily improve apple platforms icon 2025-12-10 18:02:48 -08:00
Jamie Pine
522b213f64 Update iOS Podfile.lock deps and guard daemon copy 2025-12-10 17:51:42 -08:00
Jamie Pine
b5ec591322 Always copy daemon to target path 2025-12-10 17:46:47 -08:00
Jamie Pine
cdfae75f8a fix tauri 2025-12-10 17:42:02 -08:00
Jamie Pine
00c98bde24 cargo fmt 2025-12-10 15:27:26 -08:00
Jamie Pine
ccb5909ebd Update CI and release workflows, add TypeScript support, and refactor code for clarity
- Standardized quotes in CI and release workflow files for consistency.
- Introduced TypeScript job in CI workflow to check for file changes and run type checks.
- Refactored function signatures in the macOS Tauri library for improved readability.
- Updated Tauri configuration for release build commands and include external daemon binary.
- Enhanced artifact handling in release workflow for better organization and clarity.
2025-12-10 15:21:01 -08:00
Jamie Pine
651e9bae46 Refactor and improve code clarity across multiple files
- Simplified the timeout handling in `is_daemon_running` for better readability.
- Updated type definitions in the macOS Tauri library for clarity.
- Reformatted JSON configuration for better structure and readability.
- Changed function signatures in `files.rs` and `server.rs` to use `Path` instead of `PathBuf` for consistency.
- Enhanced error handling and argument passing in various functions for improved clarity.
- Added `#[allow(dead_code)]` annotations to unused functions in several modules to suppress warnings.
- Improved the display string methods in `volume.rs` and `pairing/types.rs` for better performance and clarity.
2025-12-10 15:08:46 -08:00
Jamie Pine
0717d8dd0a Refactor code for improved clarity and performance
- Updated argument passing in various commands to use a more concise syntax.
- Simplified iteration in the ConstantTimeEqNull implementation for better readability.
- Enhanced file path checks in EventFilters for temporary and system files.
- Added `#[must_use]` attribute to functions in FrameDecoder to indicate their importance.
- Replaced `or_insert_with` with `or_default` for cleaner code in phase summary generation.
2025-12-10 14:43:17 -08:00
Jamie Pine
a91c76c147 Rust fmt + fix CI xtask command 2025-12-10 14:09:46 -08:00
Jamie Pine
4525eda7de Update CI and release workflows to include native dependency setup and adjust CLI binary build features
- Added a step to set up native dependencies using `cargo xtask setup` in both CI and release workflows.
- Updated the build commands for CLI binaries to include `heif` and `ffmpeg` features, ensuring the binaries are built with the necessary capabilities.
- Modified `Cargo.toml` files for `sd-cli`, `sd-server`, and `tauri` to define `heif` and `ffmpeg` features separately, improving modularity and clarity in dependency management.
2025-12-10 14:05:24 -08:00
Jamie Pine
6e2b45d10b Update symlink path for Spacedrive.framework in tauri configuration
- Changed the path for Spacedrive.framework to include the "Frameworks" directory, ensuring alignment with the expected structure for macOS native dependencies.
2025-12-10 09:07:01 -08:00
Jamie Pine
2770a7a8a9 fix volume display name and disable react-scan 2025-12-09 19:16:13 -08:00
Jamie Pine
05554b2919 Update App component and Explorer views for improved performance and usability
- Refactored the App component to enhance readability and maintainability, including adjustments to route handling and client initialization.
- Introduced QuickPreviewSyncer and QuickPreviewController components in the Explorer to optimize rendering and selection handling.
- Enhanced Column and ListView components with memoization to prevent unnecessary re-renders, improving performance during file selection and navigation.
- Updated event handling in the useNormalizedQuery hook to streamline query management and improve type safety.
- Adjusted various components to ensure consistent styling and behavior across the application.
2025-12-09 19:03:51 -08:00
Jamie Pine
591c7461a4 Add misc UI and ephemeral watching (wip) 2025-12-09 06:05:51 -08:00
Jamie Pine
b029004a24 Comment out startup sound in App component and update sound files for copy operations 2025-12-09 00:05:35 -08:00
Jamie Pine
337a284e96 Enhance file operation handling and add sound effects
- Introduced a new File Operation Modal for interactive file copy/move operations with conflict resolution options.
- Integrated sound effects for file operations, including copy and startup sounds.
- Updated the Explorer component to utilize the new modal for drag-and-drop file operations.
- Refactored job management hooks to unify job data handling and improve performance.
- Enhanced documentation for the File Operation Modal and sound effects integration.
2025-12-08 21:15:00 -08:00
Jamie Pine
cf400865f4 Introduce ephemeral index cache and status API
- Add a complete ephemeral indexing subsystem
  - core/src/ops/core/ephemeral_status with input/output and query types
  - core/src/ops/indexing/ephemeral with arena, cache, registry,
    index_cache, types
  - expose EphemeralIndexCache and EphemeralIndex through core modules
  - EphemeralIndexCache supports
    get/insert/create_for_indexing/mark_indexing_complete eviction and
    stats
- Implement EphemeralIndex data structures for memory-efficient storage
  - NodeArena, NameCache, NameRegistry, and related types
- Add EphemeralIndex status API
  - EphemeralCacheStatusInput and EphemeralCacheStatusQuery
  - EphemeralCacheStatus with per-index details
- Wire ephemeral indexing into the indexing flow
  - Change default Ephemeral Indexer behavior to shallow mode
  - Align code to EphemeralIndex usage across the codebase
- Enhance content kind detection in UI
  - Add getContentKind(file) helper (prefers content_identity.kind, then
    content_kind)
  - Use getContentKind in Explorer utilities and UI components
- Invalidate directory listings when location index_mode changes
  - Add useLocationChangeInvalidation to trigger refetches for ephemeral
    vs persistent indexing transitions
- Misc refactors and formatting to accommodate the new modules and APIs
2025-12-07 19:55:34 -08:00
Jamie Pine
76fa4203d1 Add Windows support for daemon service management
Implements scheduled task-based daemon persistence on Windows using Task Scheduler. This provides the same auto-start functionality available on macOS (LaunchAgent) and Linux (systemd).

Windows implementation:
- Uses schtasks to create/delete/query scheduled tasks
- Task runs at user logon with no elevation required
- Properly handles task creation, starting, and cleanup
- XML-based task configuration with proper settings
2025-12-04 18:34:30 -08:00
Jamie Pine
73b057e506 Fix daemon connection and service installation error handling
- Clear subscriptions map when connection pool resets to prevent stale subscription IDs after daemon restart
- Revert checkbox state when install/uninstall operations fail to keep UI in sync with actual state
- Return errors when launchctl/systemctl commands fail during service installation instead of silently continuing
- Add proper error checking for all systemctl commands on Linux
2025-12-04 18:25:51 -08:00
Jamie Pine
59d6f0d47e Add daemon service management commands 2025-12-04 18:10:24 -08:00
Jamie Pine
a3fdbf7c1e Make daemon starting state fully reactive
Adds daemon-starting event emission from Rust when the daemon starts, eliminating timeout-based logic. The starting state now accurately tracks the actual daemon startup process through events.

- Rust emits daemon-starting event when start command is called
- Platform API listens to daemon-starting events
- Hook preserves isChecking state during polling until daemon connects
- No more timeouts, everything is event-driven
2025-12-04 17:02:55 -08:00
Jamie Pine
3b605ee78d Add daemon disconnected screen with auto-reconnect
Adds a full-screen overlay when the daemon disconnects with:
- Real-time connection status indicator in top-right
- Explanation of what the daemon is and why it's required
- Restart button with background mode checkbox
- CLI commands reference panel with copy buttons
- Automatic app reload when daemon reconnects

The overlay uses reactive status polling and event-based detection to ensure accurate connection state tracking. When the daemon comes back online, the app automatically reloads to sync state.
2025-12-04 16:47:27 -08:00
Yukeey
4f607a603b apps/cli/src/domains/update/mod.rs
apps/tauri/scripts/dev-with-daemon.ts
bun.lock
core/src/ops/indexing/entry.rs
core/src/volume/backend/local.rs
core/src/volume/fs/ntfs.rs
core/src/volume/fs/refs.rs
core/src/volume/platform/window.rs
2025-12-04 21:43:18 +01:00
Jamie Pine
363bd39ffc Add cloud path handling for thumbnail generation
- Introduce is_cloud_path and to_backend_path helpers - Handle cloud vs
local paths in thumbnail generation - Download cloud files to a temp
file via the volume backend - Use backend-relative paths and clean up
the temp file after use - Slightly adjust dev-scAN comment block to
delay initialization (still disabled)
2025-12-03 18:36:48 -08:00
Jamie Pine
40d05fcec8 feat: add cloud credential entity and migration 2025-12-03 18:00:43 -08:00
Jamie Pine
cab3d4da18 cargo format 2025-12-03 15:56:27 -08:00
Jamie Pine
e5cb6baaba feat: update cloud credential management 2025-12-03 15:55:04 -08:00
Gedeon Sainrival
f01a2994f1 Fix build issues on Linux
Managed to successfully build on Linux, updated xtask to resolve errors,
and fixed interface not loading properly when using Tauri GUI.
2025-12-02 13:17:28 -05:00
Jamie Pine
9becfa1e7d Switch IPC to TCP sockets across daemon and client 2025-12-01 17:49:36 -08:00
Jamie Pine
e127a5aa0b Fix database migration to handle existing library.db files 2025-12-01 14:57:55 -08:00
Jamie Pine
f268acf57a Add name and cmd to ShellScopeEntryAllowedArg 2025-12-01 13:18:41 -08:00
Jamie Pine
0506f9a45a Update version to 2.0.0-pre.1 2025-12-01 12:45:10 -08:00
Jamie Pine
01ec19d352 Bump version to 2.0.0-pre 2025-12-01 12:41:57 -08:00
Jamie Pine
ec91994408 Refactor ListView to use table-based row rendering with useTable hook 2025-12-01 11:48:07 -08:00
Jamie Pine
0e5e9827d1 Add native drag and drop and update submodules 2025-11-28 06:57:00 -08:00