Commit Graph

1169 Commits

Author SHA1 Message Date
Nebhay
9bf6e299cb Implement empty menu for Windows to prevent menu bar display
- Added logic to explicitly set an empty menu on Windows to ensure no menu bar is shown.
- Utilized Tauri's MenuBuilder to create and apply the empty menu during app initialization.
2025-12-26 16:19:29 +00:00
Jamie Pine
ae38405904 Merge pull request #2938 from spacedriveapp/cursor/windows-file-opener-errors-9b51
Windows file opener errors
2025-12-26 06:09:16 -08:00
Jamie Pine
3e64221f2c Implement clipboard functionality and enhance keybind handling
- Added clipboard event handling to support native clipboard operations (copy, cut, paste) based on input focus.
- Introduced functions to check if an input element is focused and to execute native clipboard commands.
- Updated keybind listener to trigger appropriate actions based on clipboard events, differentiating between text input and file operations.
- Enhanced menu setup to ensure clipboard actions are always enabled for better user experience.
2025-12-25 13:07:52 -08:00
Cursor Agent
c7e13c5bd8 Fix: Improve Windows file opening and app listing
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-25 17:41:39 +00:00
Cursor Agent
d4215df67a Apply cargo fmt to fix formatting 2025-12-25 16:05:27 +00:00
Jamie Pine
30096b77dd feat: Implement cleanup of TCP connections and manage subscriptions
- Added a `cleanup_all_connections` command to clean up active TCP connections, preventing leaks during development hot reloads.
- Introduced `cancel_all` and `get_active_count` methods in the SubscriptionManager to manage active subscriptions effectively.
- Updated TCP connection handling in `daemon_request` and `subscribe_to_events` to ensure proper closure of connections.
- Enhanced logging for better visibility of subscription management and connection cleanup processes.
2025-12-25 05:45:01 -08:00
Jamie Pine
1998975818 feat: Implement library validation and reset mechanism
- Added a new function `validate_and_reset_library_if_needed` to check if the current library exists and reset the state if it doesn't.
- Integrated this validation process into the daemon connection initialization, ensuring the app state is consistent with the available libraries.
- Enhanced error handling and logging for better debugging during library validation.
- Introduced a new test suite for file move operations, covering various scenarios to ensure robust handling of file movements and state integrity.
2025-12-25 05:39:36 -08:00
Jamie Pine
d24525d470 Merge pull request #2929 from spacedriveapp/cursor/demon-startup-overlay-a536
Demon startup overlay
2025-12-24 17:16:24 -08:00
Jamie Pine
8488700a07 feat: Add app version retrieval and enhance DaemonStartupOverlay
- Implemented `getAppVersion` method in the platform abstraction to fetch the application version.
- Updated `DaemonStartupOverlay` to display the app version during startup, improving user feedback.
- Introduced a new `Orb` component for enhanced visual effects in the overlay.
- Made minor layout adjustments in various components for better UI consistency.
2025-12-24 17:08:57 -08:00
Jamie Pine
bd38204855 feat: Integrate SwiftRs for macOS file opening functionality
- Added SwiftRs as a dependency in Package.swift to enhance file opening capabilities.
- Updated the get_apps_for_path function to return a JSON string of available applications instead of an array.
- Modified the Swift implementation to align with the new return type and improved data handling.
- Created a new Package.resolved file to manage package dependencies.
2025-12-24 16:15:33 -08:00
Cursor Agent
31e309b685 Fix: Expand app search and add timeout error handling
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-24 18:51:11 +00:00
Cursor Agent
ff4e03ba62 feat: Implement cross-platform file opening
Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-24 17:59:33 +00:00
Jamie Pine
f530a7cb97 Add file opening system and UI integration tasks
- Introduced a new backend task for cross-platform file opening functionality, detailing implementation notes and acceptance criteria.
- Added a UI integration task for the Explorer, enabling users to open files with default applications and enhancing context menu options.
- Created a new task for implementing browser-like tabs in the Explorer, allowing simultaneous browsing of multiple locations with independent state management.
- Updated the TODO list to reflect the completion of file renaming and folder creation tasks, improving overall file management capabilities.
2025-12-24 09:45:57 -08:00
Jamie Pine
b555156fa7 Update TODO list and enhance job logging configuration
- Added critical tasks for remote file access and updater functionality to the TODO list.
- Updated job logging configuration to include an option for logging ephemeral jobs, improving logging flexibility.
- Enhanced the job manager to conditionally log job events based on persistence settings, ensuring better tracking of job statuses.
- Refactored the inspector component to remove unnecessary console logs, streamlining the codebase.
- Improved the selection context to eliminate redundant logging during file synchronization, enhancing performance.
2025-12-24 08:04:57 -08:00
Jamie Pine
96c08fa3a1 Enhance file operations and introduce statistics listener service
- Updated the TODO list to clarify the quick preview reporting issue.
- Enhanced the Tauri app's menu to include custom clipboard operations (cut, copy, paste) with appropriate state management.
- Introduced a new `statistics_listener` service to manage per-library statistics recalculation based on resource changes, improving performance and responsiveness.
- Added configuration options for enabling/disabling the statistics listener in the application settings.
- Refactored event handling in the job manager to improve logging and status monitoring.
- Updated tests to include the new statistics listener functionality and ensure proper event collection during file operations.
2025-12-23 08:36:42 -08:00
Jamie Pine
317b79920d Implement clipboard functionality and enhance file operations
- Introduced a new `useClipboard` hook for managing clipboard operations, including copy and cut functionalities.
- Updated file context menu to utilize the clipboard for copy and cut actions, improving user experience.
- Enhanced file operation modal to handle paste operations using clipboard contents, streamlining file management.
- Refactored keyboard navigation in the Explorer component to support clipboard actions, ensuring intuitive user interactions.
- Improved job management by adding sound notifications specific to job types, enhancing feedback during file operations.
2025-12-23 08:36:26 -08:00
Cursor Agent
e7418fe80b Merge main into cursor/unified-keybind-system-design-bdd9
Resolved merge conflict in packages/interface/src/index.tsx by keeping both
the existing context menu exports from main and the new keybind-related
exports from this branch.
2025-12-23 09:06:27 +00:00
Jamie Pine
9925d926e2 Enhance device revocation process with library removal option
- Added `remove_from_library` field to `DeviceRevokeInput` and `DeviceRevokeAction` to control whether a device should be removed from library databases during revocation.
- Updated the `from_input` method in `DeviceRevokeAction` to handle the new field.
- Modified the revocation logic to conditionally remove devices from libraries based on the `remove_from_library` flag, improving flexibility in device management.
- Adjusted the CLI argument parsing to default `remove_from_library` to false, ensuring devices remain in libraries unless explicitly specified for removal.
2025-12-22 07:04:04 -08:00
Jamie Pine
d52e89768d Refactor Explorer context and navigation handling
- Replaced useState with useReducer in the Explorer context for improved state management.
- Updated navigation functions to use navigateToPath instead of setCurrentPath, enhancing clarity and consistency.
- Removed unused synchronization functions for URL parameters, streamlining the code.
- Introduced new utility functions for target management and improved type definitions for navigation targets.
- Enhanced the handling of view settings and preferences, ensuring better integration with the UI state.
- Deleted obsolete device operation test file to clean up the codebase.
2025-12-22 05:37:08 -08:00
Jamie Pine
ede5b255e3 Enhance job management UI and data structures
- Introduced a new `JobsScreen` component to manage and display job statuses, allowing users to view running, paused, queued, completed, and failed jobs.
- Updated job data structures to include `created_at` and `started_at` timestamps, improving job tracking and reporting.
- Refactored job-related components to utilize the new data structure, ensuring consistency across the application.
- Enhanced the `JobRow` component to display job duration and status more effectively, improving user experience.
- Added filtering options for job visibility, allowing users to toggle between viewing all jobs or only active ones.
2025-12-21 08:50:33 -08:00
Jamie Pine
bb472a779b Add ephemeral cache reset functionality
- Introduced a new command `ResetCache` in the `IndexCmd` enum to allow users to reset the ephemeral index cache.
- Implemented `EphemeralCacheResetAction` to handle the cache reset logic, including confirmation checks and logging.
- Added input and output structures for the cache reset action, providing clear feedback on the number of cleared paths.
- Enhanced the `EphemeralIndexCache` with a `clear_all` method to facilitate the clearing of all cached paths and entries.
2025-12-21 07:12:40 -08:00
Jamie Pine
87875277b9 Implement library load failure event and enhance library directory scanning
- Added a new `LibraryLoadFailed` event to capture and report errors when loading libraries, including error type categorization for frontend notifications.
- Introduced a method to count `.sdlibrary` directories without loading them, improving the library initialization process.
- Updated the library manager to emit the new event upon load failures, enhancing error handling and user feedback.
- Enhanced logging to provide better insights during library loading and initialization.
2025-12-21 04:42:34 -08:00
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
5b1fd31e3a Implement app reset functionality and context management
- Introduced AppResetContext to manage app reset operations across components.
- Updated App and RootLayout to utilize the reset context, allowing for a clean reset of the app state.
- Enhanced SettingsScreen with a reset data option, prompting users for confirmation before clearing all data and refreshing the app.
- Added core reset action in the backend to handle data deletion and cleanup operations.
- Improved user feedback during reset operations with alerts and status messages.
2025-12-17 20:26:26 -08:00
Jamie Pine
71992bb79c Enhance job event handling and device context management
- Updated event handling in job management to include device IDs for better tracking of job activities across devices.
- Introduced a new JobActivityClient for subscribing to job activity from remote devices.
- Added hardware specifications to device configuration and database schema, improving device information tracking.
- Refactored event structures to accommodate new fields related to job activities and device management.
- Updated the user interface to display job activity for devices, enhancing user experience in monitoring job statuses.
2025-12-17 02:13:42 -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
97438f815d fix mobile core build 2025-12-15 06:34:31 -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
Jamie Pine
51b169b63b Merge branch 'main' into cursor/automatic-library-sync-switch-ecf7 2025-12-15 03:27:02 -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
09e088b2b3 Refactor audio processing by replacing FFmpeg subprocess calls with direct library usage for audio sample extraction, as subtitle generation was not working in release builds. Add new audio decoding module and enhance error handling for unsupported formats. 2025-12-15 00:42:29 -08: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
44fff099e4 Merge pull request #2914 from spacedriveapp/build-stuff
Build stuff
2025-12-14 01:00:46 -08:00
Jamie Pine
5a604f3a94 Merge pull request #2907 from spacedriveapp/cursor/resource-event-system-refactor-7da6
Resource event system refactor
2025-12-13 17:53:24 -08:00
Jamie Pine
59553e2718 Merge pull request #2905 from spacedriveapp/tembo/remove-auto-accept-pairing
Remove auto-accept from pairing
2025-12-13 17:53:07 -08:00
Jamie Pine
9f1558b108 Fix device capabilities display and use sd_path 2025-12-12 18:22:59 -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
Cursor Agent
8d51457e48 feat: Implement global keybinds and context menu integration
This commit introduces a comprehensive keybind system, enabling users to register, unregister, and trigger keyboard shortcuts. It includes:

- **Tauri Integration:** Native registration and handling of keybinds for menu accelerators.
- **Web Implementation:** A robust JavaScript-based listener for consistent behavior across platforms.
- **Hook System:** New hooks (`useKeybind`, `useKeybindScope`, `useKeybindMeta`) for easy integration into React components.
- **Context Menu Support:** Automatic display of keybinds in context menus.
- **Keybind Registry:** A centralized registry for defining and managing all keybinds.
- **Platform Abstraction:** Utilities for handling platform-specific key combinations and display strings.

Co-authored-by: ijamespine <ijamespine@me.com>
2025-12-11 23:44:16 +00: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