4268 Commits

Author SHA1 Message Date
Jamie Pine
f582c0417a Disable release matrix entries for testing 2025-12-11 01:21:55 -08:00
Jamie Pine
7465a0b710 Refactor publish-artifacts workflow and TS config
- Update ignore rules: ignore node_modules and stop tracking dist
- Add bun.lock for publish-artifacts
- Comment out updater artifact name usage in code
- Add devDependencies for publish-artifacts (types/node, ncc,
  typescript)
- Simplify tsconfig by removing several strict flags
- Remove daemon build steps from release workflow
2025-12-11 00:28:01 -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
56d8b3f2ed Remove macOS and Windows builds from CI matrix 2025-12-10 21:19:21 -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
f5edcf1964 migrate to bun.lockb 2025-12-10 20:31:10 -08:00
Jamie Pine
ef6530d246 Add shared config package and update tsconfig
- Add the @sd/config package with base and app TS config and a
  package.json
- Include a base.tsconfig.json and an app.tsconfig.json for TS projects
- Update the root tsconfig to remove apps/landing and add
  packages/config
2025-12-10 20:16:35 -08:00
Jamie Pine
84d9e8c09b Set working directory for build step 2025-12-10 19:41:25 -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
b77c8e521d one fix for frozen lockfile issue is no frozen lockfile 2025-12-10 16:21:51 -08:00
Jamie Pine
8652787261 chore: regenerate bun lockfile 2025-12-10 16:08:09 -08:00
Jamie Pine
d03e277296 Update Bun version to 1.3.4 and standardize quotes in workflow files
- Changed Bun version from 'latest' to '1.3.4' in setup actions.
- Updated macOS host version from 'macos-13' to 'macos-15-intel' across multiple workflow files.
- Standardized quotes in YAML files for consistency.
2025-12-10 15:32:25 -08:00
Jamie Pine
00c98bde24 cargo fmt 2025-12-10 15:27:26 -08:00
Jamie Pine
5b1c7d5733 Update bun.lock 2025-12-10 15:26:56 -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
c85798ddcf Fix image dimension scaling documentation 2025-12-10 14:41:20 -08:00
Jamie Pine
e5b1737caf clippy moment 2025-12-10 14:27:29 -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
09d60fc7f8
Merge pull request #2904 from spacedriveapp/full-volume-ephemeral-indexing
Full volume ephemeral indexing
2025-12-10 09:46:11 -08:00
Jamie Pine
7f49e03d68 Update Spacedrive.xcscheme to use Debug build configuration for LaunchAction
- Changed the build configuration from "Release" to "Debug" in the LaunchAction section of the Spacedrive.xcscheme file, facilitating easier debugging during development.
2025-12-10 09:46:00 -08:00
Jamie Pine
def6060b5a Update file name display to include extensions in Explorer components
- Modified Title, ColumnItem, FileCard, TableRow, and MediaViewItem components to conditionally render file extensions alongside file names, enhancing clarity for users.
- Ensured consistent display of file information across different views in the Explorer interface.
2025-12-10 09:44:55 -08:00
Jamie Pine
7f3eee3848 Enhance FileOperationModal and introduce FileStack component
- Updated FileOperationModal to fetch and display file information for both source and destination, improving user experience.
- Added FileStack component to visually represent multiple files stacked with rotation, enhancing the file selection interface.
- Refactored source and destination file displays to conditionally render file thumbnails or icons based on availability.
- Improved layout and styling for better clarity and consistency in file operations.
2025-12-10 09:23:00 -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
d8984a0688 Enhance FileOperationModal with keyboard shortcuts and improved UI
- Added keyboard shortcuts for file operations: Copy (⌘1), Move (⌘2), Skip (S), Keep both (K), and Overwrite (O).
- Improved the visual layout to clearly display source and destination files with an arrow indicator.
- Updated operation type selection buttons to include icons and shortcut hints for better user experience.
- Refactored conflict resolution options to display keyboard shortcuts alongside labels for clarity.
- Introduced a utility function to extract file names from paths for better display in the modal.
2025-12-10 09:06:49 -08:00
Jamie Pine
64a5894997 Refactor volume management and enhance asset handling
- Updated volume-related structures and database entities to improve indexing and retrieval efficiency.
- Enhanced migration scripts to support new indexing statistics for volumes.
- Refactored asset imports and SVG handling across various components for better organization and performance.
- Improved file operation modals and explorer components for a more intuitive user experience.
- Streamlined QuickPreview and video player components to optimize rendering and interaction.
2025-12-10 09:00:44 -08:00
Jamie Pine
3aa608fbfc Update symlink path for Spacedrive.framework on macOS
- Adjusted the symlink creation for Spacedrive.framework to include the "Frameworks" directory, aligning with the expected structure for native dependencies.
2025-12-10 08:42:47 -08:00
Jamie Pine
4d9dfbd922 Refactor VolumeBar component styles for improved clarity and consistency
- Updated CSS classes in the VolumeBar component to enhance visual consistency and clarity.
- Simplified hover effects and adjusted background styles for unique and duplicate byte displays.
- Improved comments for better understanding of the visual elements in the component.
2025-12-09 22:01:13 -08:00
Jamie Pine
124ee9bdb0
Merge pull request #2903 from spacedriveapp/better-fs-events
Refactor filesystem watcher into standalone crate
2025-12-09 21:42:31 -08:00
Jamie Pine
3f98961b44 Refactor file query handling to improve database lookup and fallback mechanisms
- Enhanced the `FileByIdQuery` and `FileByPathQuery` implementations to first check the database for file entries, ensuring accurate retrieval as the primary source of truth.
- Introduced a fallback mechanism to utilize an ephemeral index if the file is not found in the database, improving resilience and performance.
- Updated the logic for processing content identities, media data, and sidecars, ensuring efficient data loading and handling.
- Added context-aware comments to clarify the purpose of key code sections, enhancing maintainability and readability.
2025-12-09 21:42:02 -08:00
Jamie Pine
0bae97746a Add EventBuffer for handling event subscriptions and race conditions
- Introduced a new EventBuffer struct to buffer recent events and manage time-based eviction.
- Implemented methods for adding events, retrieving matching events based on filters, and cleaning up expired events.
- Integrated EventBuffer into the RpcServer to handle subscription race conditions by replaying buffered events to new subscribers.
- Added periodic cleanup task for the event buffer to prevent unbounded memory growth.
- Included unit tests to verify buffer size limits, time-based cleanup, and event filtering functionality.
2025-12-09 19:41:23 -08:00
Jamie Pine
9438965ffd Update subproject commits and Podfile.lock for dependency versioning
- Marked subprojects as dirty to indicate local changes.
- Updated Podfile.lock to reflect new versions for several dependencies, including EXConstants (18.0.11), EXManifests (1.0.10), Expo (54.0.27), and others, ensuring compatibility and access to the latest features and fixes.
- Adjusted paths in external sources to match updated dependency versions.
2025-12-09 19:24:04 -08:00
Jamie Pine
2770a7a8a9 fix volume display name and disable react-scan 2025-12-09 19:16:13 -08:00
Jamie Pine
c139aa938f Refactor ColumnView component to improve internal navigation handling
- Replaced internal navigation tracking with a ref for clearSelection to prevent unnecessary re-renders.
- Simplified the logic for initializing the column stack on external navigation changes.
- Updated file selection handling to manage column navigation without affecting currentPath, enhancing performance and usability.
2025-12-09 19:09:50 -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
34a00c152a Refactor file path handling and enhance query options in useNormalizedQuery
- Updated the logic in `File` to build `SdPath` using Physical paths for newly created files without a content_id, improving resource management.
- Refactored `useNormalizedQuery` hook to enhance type safety and maintainability, ensuring better handling of query options and event subscriptions.
- Improved event handling for resource changes, ensuring accurate updates to the query cache based on resource events.
2025-12-09 18:41:40 -08:00
Jamie Pine
4efcf7466b Refactor change detection and enhance event handling in persistent indexing
- Improved the `emit_change_event` method in `DatabaseAdapter` to handle resource events more effectively, including detailed logging for event emissions.
- Updated the `PersistentEventHandler` to ensure paths are registered with the filesystem watcher upon startup, enhancing real-time monitoring capabilities.
- Introduced new event collectors for better diagnostics and logging of filesystem and core events during tests.
- Enhanced integration tests to cover various scenarios, including batch file operations and delete/restore patterns, ensuring accurate event handling and preventing duplicates.
2025-12-09 18:00:44 -08:00
Jamie Pine
cf998edb03 Enhance event handling for resource deletion in ephemeral writer
- Updated the `delete` method in `MemoryAdapter` to emit a `ResourceDeleted` event, allowing the frontend to update its cache accordingly.
- Modified `CollectedCoreEvent` structure to include an `event_type` field for better event categorization.
- Enhanced event collection logic in `CoreEventCollector` to handle both `ResourceChanged` and `ResourceDeleted` events, improving event summary reporting.
2025-12-09 17:09:47 -08:00
Jamie Pine
b16a015746 Enhance EphemeralIndex entry removal and introduce event collectors
- Updated `remove_entry` and `remove_directory_tree` methods in `EphemeralIndex` to ensure proper removal of entries from parent nodes' children lists.
- Introduced `FsEventCollector` and `CoreEventCollector` for improved event collection from the filesystem watcher and core event bus, respectively.
- Enhanced test harness to utilize the new collectors, ensuring accurate event logging and summary reporting.
- Added scenarios to test delete and restore patterns, verifying correct entry counts and preventing duplicate entries.
2025-12-09 17:01:49 -08:00
Jamie Pine
1adabc7999 Add batch file and directory creation/deletion scenarios to ephemeral watcher tests
- Implemented methods for batch creation and deletion of files and directories in the test harness.
- Added scenarios to verify the creation and deletion of multiple files and directories, ensuring proper event handling.
- Enhanced logging for better visibility during test execution.
- Updated the macOS event handler to improve directory deduplication and manage recent directory creations effectively.
2025-12-09 16:20:17 -08:00
Jamie Pine
deadc713be Refactor FsWatcherService and event handlers for async support
- Updated `connect` methods in `EphemeralEventHandler` and `PersistentEventHandler` to be asynchronous, allowing for non-blocking connections to the `FsWatcherService`.
- Modified `init_handlers` in `FsWatcherService` to support async initialization of event handlers.
- Adjusted service startup methods to await handler initialization, ensuring proper setup before starting the watcher.
- Enhanced test harness to utilize the new async capabilities, improving event collection and verification processes.
2025-12-09 15:59:58 -08:00