Commit Graph

1212 Commits

Author SHA1 Message Date
Jamie Pine
388b4dde28 cargo fmt 2026-01-24 16:14:21 -08:00
Jamie Pine
5d9a6918db Merge branch 'main' into cursor/device-proxy-pairing-651c 2026-01-24 13:27:02 -08:00
Jamie Pine
cb51a6c1fb add better ConnectionInfo 2026-01-24 12:13:26 -08:00
Jamie Pine
26a730c0f2 add sd sync partners CLI 2026-01-24 11:09:09 -08:00
Baran Mordoğan
4309ca0e97 fix: handle config changes in summarize_event 2026-01-23 09:26:02 +03:00
Jamie Pine
1d11e121dc feat(pairing): enhance proxy pairing functionality and add tests
- Introduced new event types for proxy pairing confirmation and vouching readiness in the event summarization.
- Implemented a reload mechanism for protocol configurations to support dynamic updates during runtime.
- Enhanced the PairingProtocolHandler to manage joiner pairing handshakes and improve session handling.
- Added comprehensive unit tests for proxy pairing, covering session creation, state transitions, and vouching logic.
- Updated configuration structures to include default proxy pairing settings for better integration.
2026-01-22 14:55:58 -08:00
Jamie Pine
25197fde6d feat(mobile): add Jobs screen and enhance search functionality
- Introduced a new Jobs screen to display and manage job statuses with controls for pause, resume, and cancel actions.
- Updated RootLayout to include navigation to the new Jobs screen.
- Enhanced SearchScreen with improved search capabilities, including auto-focus and dynamic filtering based on user input.
- Integrated GlassContextMenu and SearchToolbar components for better user interaction during searches.
- Updated GlassSearchBar to support controlled input and clear functionality.
- Refactored ExplorerScreen to incorporate search context and improve file browsing experience.
2026-01-22 12:30:01 -08:00
Jamie Pine
60803ab7ec refactor(mobile): remove unused navigation components and enhance search functionality
- Deleted obsolete navigation components including DrawerNavigator, RootNavigator, and TabNavigator to streamline the mobile app structure.
- Introduced the GlassSearchBar component for improved search capabilities across screens.
- Updated BrowseScreen to integrate the new search bar and enhance user experience with animated scrolling and dynamic content display.
- Adjusted layout and styling for better responsiveness and visual appeal.
- Added phosphor-react-native dependency for icon support in the GlassSearchBar.
2026-01-22 11:22:18 -08:00
Cursor Agent
2f7a88a625 refactor useNormalizedQuery to accept query name
Co-authored-by: ijamespine <ijamespine@me.com>
2026-01-22 07:00:52 +00:00
Jamie Pine
0264add338 feat(mobile): add GlassSearchBar and JobManagerPanel components, update Xcode scheme
- Introduced GlassSearchBar component for enhanced search functionality in the mobile app.
- Added JobManagerPanel component to manage and display job statuses.
- Updated Xcode scheme to use Debug configuration and LLDB debugger for improved development experience.
- Enhanced OverviewScreen to integrate the new components, improving user interaction and job visibility.
2026-01-21 16:15:58 -08:00
Jamie Pine
59184f8849 feat(mobile): integrate LiquidGlass for enhanced UI and add sidecar statistics
- Added LiquidGlass dependency to enhance visual effects in the GlassButton component.
- Updated GlassButton to support LiquidGlass effects based on device compatibility.
- Introduced PageIndicator component for improved navigation feedback in BrowseScreen.
- Enhanced OverviewScreen and HeroStats to display sidecar statistics, including count and size.
- Updated related files and dependencies to reflect these changes.
2026-01-21 14:58:12 -08:00
Jamie Pine
0f65d672ff feat(overview, mobile): Themes and improved OverviewScreen
- Introduced a new GlassButton component for enhanced UI interactions.
- Updated OverviewScreen to include animated blur effects and improved header behavior during scrolling.
- Added expo-blur dependency to enhance visual effects in the mobile application.
- Adjusted Podfile.lock and package.json to reflect new dependencies and ensure compatibility.
2026-01-21 12:26:34 -08:00
Jamie Pine
f2dc233f93 feat(file-explorer): enhance file handling and search functionality
This commit introduces several improvements to the file explorer and search functionalities. It adds a new `getFileKindForIcon` utility for better icon resolution based on file content kind. The search input validation now allows empty queries when sorting by `IndexedAt`, and the search query execution has been optimized to handle empty queries more efficiently. Additionally, the `ContentKind` utility has been refactored and centralized in the `ts-client`, improving code organization and reusability across components. Updates to various components ensure consistent usage of the new utilities, enhancing the overall user experience.
2026-01-20 10:36:18 -08:00
Jamie Pine
ebe7d36ed5 feat(recents): add RecentsView for displaying recently indexed files
This commit introduces the RecentsView component, which allows users to view recently indexed files sorted by the indexed_at timestamp. The view integrates seamlessly with existing components, ensuring consistent interactions such as keyboard navigation and drag-to-select. Additionally, it updates the Explorer context to support entering and exiting recents mode, enhancing the overall file browsing experience.
2026-01-20 10:35:48 -08:00
Jamie Pine
7c3e977025 feat(explorer): implement ExplorerScreen and file browsing functionality
This commit introduces the ExplorerScreen, allowing users to navigate and view files in a structured manner. It includes the implementation of hooks for fetching files, supporting both virtual and directory listings. The screen features a toggle between list and grid views, enhancing user experience. Additionally, new components for file representation in both views have been added, streamlining the browsing process and improving overall functionality.
2026-01-20 09:46:10 -08:00
Jamie Pine
1de4f625ec feat(browse): enhance BrowseScreen with new components for Devices, Locations, and Volumes
This commit introduces three new components: DevicesGroup, LocationsGroup, and VolumesGroup, to the BrowseScreen. These components utilize normalized queries to fetch and display relevant data, improving the organization and modularity of the code. Additionally, the BrowseScreen has been refactored to remove unused code and streamline the UI, enhancing overall user experience.
2026-01-19 15:43:45 -08:00
Jamie Pine
df1ee8aec5 feat(overview): add ActionButtons component and integrate into OverviewScreen
This commit introduces a new ActionButtons component to the OverviewScreen, providing quick access to device pairing, sync setup, and storage addition functionalities. The component enhances user interaction by allowing users to perform these actions directly from the overview interface. Additionally, updates to the DevicePanel and HeroStats components improve overall functionality and UI consistency.
2026-01-18 06:21:02 -08:00
Jamie Pine
aff970bc2d refactor(settings): remove unnecessary logging and streamline component structure
This commit cleans up the GeneralSettings and Settings components by removing redundant logging statements and the use of the Spacedrive client where it is no longer needed. Additionally, it updates the DeviceInfo type to include a slug field and introduces new types for device configuration updates, enhancing the overall structure and clarity of the codebase.
2026-01-17 07:55:03 -08:00
Jamie Pine
f6a68d3724 feat(settings): enhance settings UI and add device configuration updates
This commit introduces several improvements to the settings interface, including the addition of device name and slug fields in the GeneralSettings component. It also refactors the settings structure to utilize a more consistent context for state management. The UI has been updated with animations and improved styling for a better user experience. Additionally, the app now supports logging configuration updates and integrates React Query Devtools for enhanced debugging capabilities.
2026-01-17 07:39:54 -08:00
Jamie Pine
1b8e39d16b feat(volume): add volume eject functionality and update context menu
This commit introduces a new feature for safely ejecting removable volumes, enhancing the volume management capabilities. It adds the `VolumeEjectAction`, `VolumeEjectInput`, and `VolumeEjectOutput` structures to handle the eject operation. Additionally, the context menu in the UI is updated to include an option for ejecting volumes, improving user experience. The volume display logic is also refined to ensure accurate representation of volume properties. These changes collectively enhance the overall functionality and usability of the volume management system.
2026-01-16 07:13:22 -08:00
Jamie Pine
7a466e5dfa refactor(volume): update volume handling and output structure
This commit refactors the volume management system by replacing the VolumeItem struct with the Volume struct in the VolumeListOutput, streamlining the data representation. It enhances the volume display logic to utilize display names and adds helper functions to skip serializing unknown disk and volume types. Additionally, the JobManager is updated to include a new field for event emission control, improving job tracking and management. These changes improve overall clarity and efficiency in volume handling and job management.
2026-01-16 03:30:56 -08:00
Jamie Pine
635f4e54b3 feat(ephemeral): add detailed memory breakdown and UUID management for indexing
This commit introduces a detailed memory breakdown feature for the ephemeral indexing process, allowing users to view memory usage by component. It also enhances UUID management by implementing lazy generation and assignment of UUIDs during indexing and searching operations. These changes improve memory tracking and optimize UUID handling, contributing to better performance and user experience in the indexing system.
2026-01-15 09:58:26 -08:00
Jamie Pine
57a8180277 feat(daemon): refactor daemon build process to skip if already running
This commit modifies the daemon startup logic to check if the daemon is already running before attempting to build it. If the daemon is active, the build process is skipped, and the existing instance is used. This change improves efficiency by avoiding unnecessary builds and enhances the user experience during development. Additionally, the build process logging has been retained for clarity when a build is performed.
2026-01-15 09:58:09 -08:00
Jamie Pine
ae512d8c0b feat(snapshot): implement snapshot persistence for ephemeral indexes
This commit introduces a new snapshot mechanism for ephemeral indexes, allowing for fast restoration between sessions. The snapshot functionality utilizes zero-copy binary serialization with zstd compression, significantly reducing load times from over 10 minutes to just 1-2 seconds. The implementation includes methods for saving and loading snapshots, as well as enhancements to the existing indexing structure to support this feature. Additionally, the codebase is updated to ensure compatibility with the new snapshot format, improving overall performance and user experience.
2026-01-15 02:09:06 -08:00
Jamie Pine
e3a3fdc68b feat(overview): refactor OverviewScreen and introduce DevicePanel
This commit refactors the OverviewScreen component by removing the PairedDevices and StorageOverview components, replacing them with a new DevicePanel component. The DevicePanel provides a more streamlined interface for managing devices and their associated storage volumes. Additionally, the HeroStats component is updated to enhance the display of storage statistics, and the overall structure of the OverviewScreen is improved for better readability and maintainability. The changes also include the addition of new hooks for fetching location data and managing selected locations reactively.
2026-01-14 06:55:39 -08:00
Jamie Pine
0f03929600 refactor(ShellLayout, SizeView, TabBar): improve component structure and styling
This commit refactors the ShellLayout and SizeView components to enhance their structure and styling. The ShellLayout now better manages the visibility of the inspector and size view, while the SizeView component is optimized for rendering and interaction. Additionally, the TabBar component is updated for improved tab management and visual consistency. Various imports are reorganized for clarity, and CSS class names are standardized to follow a consistent format.
2026-01-13 02:52:59 -08:00
Jamie Pine
3d94195da3 chore(types): update TypeScript types generation path
This commit modifies the TypeScript types generation script to use the CARGO_MANIFEST_DIR environment variable, ensuring that the generated types are written to the correct directory within the core package structure. This change enhances the maintainability of the type generation process by preventing issues related to relative paths.
2026-01-12 19:43:36 -08:00
Jamie Pine
ccf421bc49 feat(types): generate TypeScript types for core and tauri applications
This commit introduces auto-generated TypeScript types for both the core and Tauri applications, enhancing type safety and consistency across the codebase. The generated types include various data structures and interfaces used in the applications, facilitating better integration and development experience. The types are generated using Specta and are intended to be maintained automatically, ensuring they remain up-to-date with the underlying data models.
2026-01-12 19:37:40 -08:00
Jamie Pine
6177fc480e feat(CopyJobDetails): enhance file transfer UI with auto-scrolling and metadata refetching
This commit improves the `CopyJobDetails` component by adding an auto-scroll feature that centers the currently copying file in the transfer queue. Additionally, it implements a mechanism to refetch copy metadata when the completed file count changes, ensuring that the displayed information is always up-to-date. The UI is further refined with updated icons and styles for better user experience during file operations.
2026-01-12 02:50:11 -08:00
Jamie Pine
4db6a83a45 refactor(Docker): remove legacy Docker setup and streamline server deployment
This commit removes the outdated Dockerfile, docker-compose.yml, and related documentation for the Spacedrive server, consolidating the deployment process into a single Dockerfile located in the apps/server directory. The new setup supports multi-architecture builds and includes enhanced media processing capabilities. Additionally, a self-hosting guide is introduced to assist users in deploying the server on their infrastructure, ensuring a more efficient and user-friendly experience.
2026-01-11 20:14:29 -08:00
Jamie Pine
85e9dba208 fix double ding 2026-01-11 01:54:25 -08:00
Jamie Pine
091a608762 refactor(core): enhance volume ownership model and update sync documentation
This commit refines the volume ownership model by ensuring that entries and locations inherit ownership from their respective volumes. It updates the documentation to clarify the sync ownership flow, emphasizing the seamless transfer of ownership when external drives are connected to different devices. Additionally, it improves the overall clarity of the sync state machine and related processes, ensuring that the documentation accurately reflects the system's behavior and enhances understanding for developers and users.
2026-01-11 00:19:10 -08:00
Jamie Pine
715645ed23 refactor(dependencies): update Cargo.toml and Cargo.lock for sd-tauri-core and related modules
This commit updates the dependencies in the Cargo.toml files for both sd-tauri-core and src-tauri, removing the deprecated sd-core dependency and adding the dirs crate for platform-specific directory handling. Additionally, it modifies the implementation of data directory resolution in sd-tauri-core to support different operating systems. The Cargo.lock file is also updated to reflect these changes.
2026-01-10 21:55:08 -08:00
Jamie Pine
61219569c4 Enhance CONTRIBUTING.md with media processing features guidance
This commit updates the CONTRIBUTING.md file to provide clearer instructions on building the project with media processing features. It introduces convenient cargo aliases for building with `ffmpeg` and `heif` features enabled, and emphasizes the importance of these features for development. Additionally, it includes notes on the implications of building without these features and how to resolve related issues. The changes aim to improve the onboarding experience for new contributors.
2026-01-09 17:59:22 -08:00
Jamie Pine
6d61477885 Refactor: Replace Explorer component with Shell in App and main entry points
This commit updates the application structure by replacing the Explorer component with the new Shell component in both the Tauri and web applications. The Shell component serves as the main entry point, enhancing the overall architecture and layout management. Additionally, the interface documentation has been updated to reflect this change, ensuring clarity in the component hierarchy.
2026-01-07 15:58:10 -08:00
Jamie Pine
d1db406cda Update VSCode settings, modify Cargo.toml features, and enhance tag handling in the interface
This commit updates the VSCode settings to include new configurations for newline handling and formatting. In the Cargo.toml file for the server, the default features have been cleared to streamline dependencies. Additionally, the TagsGroup and TagSelector components have been modified to handle both TagSearchResult and raw Tag objects, improving tag extraction and selection logic. These changes enhance the overall development experience and ensure better tag management in the application.
2026-01-05 21:24:29 -08:00
Jamie Pine
a8219385b2 Merge pull request #2952 from SinanGncgl/fix/dropbox-oauth-config
Fix Dropbox OAuth configuration
2026-01-04 17:05:43 -08:00
Sinan Gencoglu
6b79c3eab0 Remove generated types.ts file 2026-01-03 23:28:26 +01:00
Sinan Gencoglu
68d6b36f4a Fix Dropbox OAuth configuration
- Fix 'access_token and refresh_token can not be set at the same time' error
- Update Dropbox to use only refresh_token (OpenDAL requirement)
- Add client_id/client_secret to OAuth credential storage
- Add validation for empty OAuth credentials
- Update CLI and volume manager for enhanced OAuth support
2026-01-03 23:13:58 +01:00
Jamie Pine
322db65663 feat(logo): replace ASCII logo with a dynamic purple orb rendering
- Removed the static ASCII logo and implemented a new function to calculate brightness on a sphere, allowing for a dynamic rendering of the Spacedrive logo as a purple orb using ANSI colors and Unicode half-blocks.
- Enhanced the `print_logo_colored` function to utilize the new brightness calculation and color gradient, improving visual representation.
- Updated related documentation to reflect the changes in logo rendering.
2025-12-31 16:46:58 -08:00
Jamie Pine
fee527536c Merge branch 'main' into windows-build 2025-12-30 12:08:41 -08:00
Jamie Pine
73ca59062f cargo fmt 2025-12-30 12:07:48 -08:00
Jamie Pine
a45490acf2 fix(windows): improve Windows build setup and DLL handling
- Add .exe extension to target-suffixed daemon binary on Windows
- Auto-copy DLLs from apps/.deps/bin to target/debug and target/release
- Add PATH env var for Windows in dev-with-daemon.ts so daemon finds DLLs
- Run cargo xtask setup automatically at end of setup.ps1

These changes fix DLL_NOT_FOUND errors when running the Tauri app or
daemon on Windows by ensuring native dependency DLLs are discoverable.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 07:48:45 -08:00
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