665 Commits

Author SHA1 Message Date
Jamie Pine
21c641dddf Merge branch 'main' into release-build-fixes 2026-02-06 19:20:52 -08:00
Jamie Pine
c9749f557c Update packages/interface/src/Settings/pages/AboutSettings.tsx
Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com>
2026-02-06 02:36:28 -08:00
Jamie Pine
98a55b83af feat: add contributors list and update settings page
- Introduced a new contributors.json file containing a list of contributors with their GitHub usernames.
- Updated AboutSettings component to display the list of contributors dynamically.
- Modified tsconfig.json to enable JSON module resolution for better imports.
- Enhanced Cargo.toml to include JSON feature for reqwest.
- Added a new Rust module to fetch and update the contributors list from GitHub.
2026-02-06 01:46:39 -08:00
StarbirdTech
abedb6a6e6 chore: fix package exports, hoist types, remove stale lockfiles
Clean up package.json files: hoist @types/react to root devDependencies
with overrides, add proper exports and type declarations to @sd/assets,
improve @sd/ts-client exports and move react/@tanstack/react-query to
peer dependencies. Fix i64/u64 type mismatch in location manager.

Delete stale lockfiles from packages/interface, packages/ts-client, and
apps/mobile/modules/sd-mobile-core that shouldn't exist in a monorepo
managed by the root lockfile.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 02:19:00 -05:00
Jamie Pine
3ba272d45c Merge branch 'main' into release-build-fixes 2026-01-28 17:18:27 -08:00
Jamie Pine
991956b8cd Enhance Tauri application with updater functionality
- Integrated the tauri-plugin-updater to enable automatic updates for the application.
- Updated tauri configuration to include updater artifacts and defined permissions for the updater in the capabilities schema.
- Refactored the main.rs file to initialize the updater plugin during application startup.
- Improved the handling of file sources in the mobile explorer, simplifying the logic for fetching files.
- Cleaned up unused search functionality in the mobile search screen, ensuring a more streamlined user experience.
2026-01-28 16:38:40 -08:00
Jamie Pine
d4dd39cdb3 fix(DevicePanel): safely access optional config color
Updated the DevicePanel component to use optional chaining when accessing the config color, enhancing the robustness of the component by preventing potential runtime errors when the config may be undefined.
2026-01-24 16:43:28 -08:00
Jamie Pine
421883d7d0 fix(DevicePanel): handle optional config icon safely
Updated the DevicePanel component to use optional chaining when accessing the config icon, ensuring that it handles cases where the config may be undefined. This improves the robustness of the component.
2026-01-24 13:30:45 -08:00
Jamie Pine
7a6d79011a refactor(device): improve device data handling and UI components
- Enhanced the device model to handle null values more gracefully during data extraction, ensuring robust error handling for OS version, hardware model, CPU details, and other attributes.
- Updated the DevicePanel to include new connection status icons and tooltips for better user experience.
- Integrated TooltipProvider in the Shell component for consistent tooltip functionality across the interface.
- Minor documentation updates in the getting started guide to reflect the latest version and supported platforms.
2026-01-24 13:23:41 -08:00
Jamie Pine
cb51a6c1fb add better ConnectionInfo 2026-01-24 12:13:26 -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
97c4de674e feat(todos, docs, file-inspector): update TODO list, enhance documentation with new release info, and add quick actions for file management
- Marked volume reactivity as completed in the TODO list.
- Updated documentation to reflect the release of v2.0.0-alpha.1, including new features and supported platforms.
- Introduced a FileQuickActions component in the FileInspector, allowing users to favorite, share, and manage files with new processing options.
2026-01-20 17:17:30 -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
6d51ba6cec Merge branch 'main' into cursor/settings-screen-implementation-98d1 2026-01-16 14:04:22 -08:00
Jamie Pine
6b6eef7070 refactor(volume): enhance VolumeBar layout and styling for improved UI consistency
This commit refines the layout and styling of the VolumeBar component, ensuring fixed heights for various elements to maintain a consistent appearance. Adjustments include modifying the height of the top row, badges, and capacity info sections, as well as updating the icon size for better visual alignment. The three dots button for volume actions is repositioned to the far right, enhancing usability. These changes collectively improve the user interface and experience within the volume management system.
2026-01-16 13:45:39 -08:00
Jamie Pine
ff2d631a29 refactor(logging): change info logs to debug level for improved log granularity
This commit updates several logging statements across various modules, changing them from `info` to `debug` level. This adjustment aims to reduce log verbosity during normal operations while retaining detailed logs for debugging purposes. The changes enhance the overall logging strategy, allowing for better performance and easier troubleshooting without cluttering the log output in production environments.
2026-01-16 08:26:00 -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
bfc4cc639b feat(volume): introduce debug volume detection example and enhance fingerprinting methods
This commit adds a new example for debugging volume detection, showcasing how to detect and display various volume properties, including auto-track eligibility and primary volume identification. Additionally, it refactors the VolumeFingerprint struct to provide stable fingerprinting methods for primary, external, and network volumes, improving the reliability of volume identification across different scenarios. These changes enhance the overall volume management capabilities and provide a clearer debugging interface for developers.
2026-01-16 06:40:53 -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
45fb1f2e9b feat(ephemeral): add entry counting and snapshot saving enhancements
This commit introduces a new method to count entries under a specific path prefix in the EphemeralIndex, improving the ability to query indexed paths. Additionally, it adds a new snapshot saving method that includes the root path, enhancing the restoration process for indexed data. The VolumeItem struct is updated to include a total file count from the ephemeral index, and the VolumeListQuery is modified to retrieve this count for indexed volumes, improving overall data management and user experience.
2026-01-16 01:30:02 -08:00
Jamie Pine
fc6a0dadac feat(job): disable auto-subscription for job activity and enhance job context management
This commit removes the auto-subscription feature for job activity, streamlining the job registration process. Additionally, it enhances the JobManager by adding fields for job name and action context, allowing for better tracking and management of job-related information. These changes improve the overall clarity and efficiency of job handling within the system.
2026-01-15 07:53:01 -08:00
Jamie Pine
860c491ca9 feat(job): add event emission control for job dispatching
This commit introduces a new method, `should_emit_events`, to the job traits, allowing jobs to specify whether they should emit progress events. The JobManager is updated to utilize this new method, ensuring that event emissions are controlled based on job type (e.g., background jobs). This enhancement improves the flexibility of job handling and optimizes event management during job execution, particularly for ephemeral and volume indexing jobs.
2026-01-15 05:47:36 -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
b3398de08b feat(migration): fix FTS5 search index to include directories
This commit introduces a new migration that updates the FTS5 search index by removing filters that excluded directories. It drops and recreates triggers for insert, update, and delete operations without kind filters, ensuring that directories are included in the search index. Additionally, existing directories are added to the index, improving search functionality. The migration also includes a rollback mechanism to revert to the previous state if needed.
2026-01-14 18:10:29 -08:00
Jamie Pine
b3e1166b3e refactor(explorer): centralize file fetching logic in useExplorerFiles hook
This commit introduces the useExplorerFiles hook to streamline file retrieval in the explorer, consolidating logic for handling search results, virtual listings, and directory listings. The GridView, ListView, and SearchView components are updated to utilize this new hook, enhancing code maintainability and improving the user experience by ensuring consistent file handling across different views. Additionally, the ephemeral search function is simplified by removing unnecessary directory checks.
2026-01-14 07:38:08 -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
f2e10e8e94 feat(assets): add new icons and update icon exports
This commit introduces new icons including Compute, Devices, and Indexed, enhancing the visual assets available for the application. Additionally, the index files for icons and images have been updated to include these new assets, ensuring they are properly exported for use throughout the project. The changes improve the overall asset management and accessibility within the application.
2026-01-13 07:54:42 -08:00
Jamie Pine
621107fd25 fix(SizeView): adjust ThumbOverlay positioning and enhance drag-and-drop functionality
This commit modifies the ThumbOverlay component to center the thumbnail correctly during drag operations, preventing offset issues. The gridSize is now calculated based on the actual thumbnail size, and wheel events are forwarded to the SVG for improved pinch-to-zoom support. Additionally, the selection logic is updated to treat shift as a multi-select action, enhancing user interaction within the SizeView.
2026-01-13 06:32:27 -08:00
Jamie Pine
1d17ffed89 feat(explorer): increase size view item limit and enhance file display logic
This commit updates the size view item limit from 100 to 500, allowing users to view more items at once. The ViewSettingsPanel is adjusted to reflect this new limit dynamically, ensuring accurate representation of the total file count. Additionally, a new ThumbOverlay component is introduced to improve the drag-and-drop functionality for file management within the SizeView, enhancing user interaction and experience.
2026-01-13 06:07:33 -08:00
Jamie Pine
ddccd78ce6 feat(explorer): enhance ViewSettings with total file count and update SizeView for file management
This commit updates the ViewSettings component to accept a new prop, `totalFileCount`, allowing it to display the total number of files in the explorer. Additionally, the SizeView component is modified to manage the current files more effectively, ensuring that the file count is accurately reflected in the UI. This enhancement improves user awareness of the file context within the explorer view.
2026-01-13 05:57:51 -08:00
Jamie Pine
ce4dbd0579 feat(explorer): add size view item limit and enhance view settings management
This commit introduces a new setting for limiting the number of items displayed in the size view, enhancing user control over the view. The ViewSettings interface is updated to include `sizeViewItemLimit`, and the ExplorerProvider is modified to manage this setting. Additionally, the SizeView component is updated to respect the item limit when rendering files, ensuring a more tailored viewing experience. The ViewSettingsPanel is also enhanced to allow users to adjust this limit dynamically.
2026-01-13 05:18:45 -08:00
Jamie Pine
13f7537d17 refactor(TabManager, Explorer, SizeView): update size view state management and enhance zoom functionality
This commit refactors the size view state management by replacing the zoom level with a more comprehensive size view transform object, which includes both zoom and pan values. The TabManager and Explorer components are updated to accommodate these changes, ensuring consistent handling of the size view state across tabs. Additionally, the SizeView component is enhanced to properly apply and reset the transform during tab switches and path changes, improving user experience and interaction within the application.
2026-01-13 04:44:42 -08:00
Jamie Pine
f1bc3adbea feat(size-view, tab-manager): enhance size view functionality and tab management
This commit introduces a size view zoom feature, allowing users to adjust the zoom level per tab. The SizeView component is updated to track and manage the zoom state, ensuring it reflects the current context accurately. Additionally, the TabBar component's logic is refined to prevent unnecessary re-renders, improving performance. The ShellLayout is also adjusted to accommodate these changes, enhancing the overall user experience in managing tabs and viewing sizes.
2026-01-13 03:29:01 -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
868b9b6b6f feat(size-view): integrate size view portal and enhance layout handling
This commit introduces a portal for the fullscreen size view, allowing it to render above other components. The ShellLayout is updated to manage the visibility of the size view alongside the preview, ensuring a seamless user experience. Additionally, the SizeView component is enhanced to handle portal target initialization and fallback rendering, improving the overall layout and interaction within the application.
2026-01-13 02:31:26 -08:00
Jamie Pine
c61ed5ccbb better size view 2026-01-13 02:15:17 -08:00
Jamie Pine
68b8012c00 feat(tabs): implement drag-and-drop reordering for tabs and persist tab state
This commit introduces a drag-and-drop feature for reordering tabs within the TabBar component, enhancing user experience by allowing intuitive tab management. The DndProvider is updated to handle tab reordering logic, while the TabManagerContext is modified to persist the state of tabs, including the active tab and explorer states, in local storage. This ensures that tab arrangements are maintained across sessions, improving usability and consistency.
2026-01-13 00:30:21 -08:00
Jamie Pine
02384f1c68 refactor(network): simplify connection watcher logic and improve device state updates
This commit refactors the connection watcher logic in the NetworkingService and NetworkingEventLoop by extracting the connection watcher task into a separate function. This change enhances code readability and maintainability. Additionally, it improves the handling of device state updates when connections close, ensuring accurate tracking of device connectivity status. Minor adjustments were made to the TypeScript types generation script for consistency.
2026-01-12 21:21:22 -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
e0297557cd feat(FileCopyJob): persist job state for real-time UI updates during file copying
This commit enhances the `FileCopyJob` implementation by adding immediate persistence of job state to the database, allowing the UI to reflect the "copying" status in real-time. This change improves user experience by providing timely feedback on file transfer progress. Additionally, the `CopyJobDetails` component is updated to refetch metadata when the current file changes, ensuring accurate display of ongoing operations.
2026-01-12 03:10:50 -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