Commit Graph

702 Commits

Author SHA1 Message Date
James Pine
37bb1b2f26 fix release CI + rustfmt + storage navigation
- Add bun setup and web frontend build steps to server-build job in
  release workflow (rust-embed needs apps/web/dist/ at compile time)
- Fix rustfmt violation in volume detection
- Fix storage dialog callback to use sdPath instead of location_id
- Navigate to explorer path after adding storage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:58:40 -07:00
James Pine
1e58784482 fix volume detection + redundancy doc 2026-04-14 15:50:44 -07:00
Jamie Pine
8a7fc53cdf Fix ~750 TypeScript typecheck errors
- Add ReactComponent export to *.svg module declarations
- Fix SdPath imports to use generated types (device_slug, Cloud/Sidecar variants)
- Create useJobs barrel file for JobManager hooks
- Remove unused imports across ~65 files
- Add type annotations for implicit any params (d3, callbacks, map iterators)
- Remove stale @ts-expect-error directives in MeshViewer
- Add declare module for gaussian-splats-3d and qrcode
- Fix Location field names (path→sd_path, total_file_count→file_count, etc)
- Fix SdPath discriminated union narrowing (remove stale Local variant)
- Fix React 19 RefObject<T|null> vs RefObject<T> mismatches
- Fix null vs undefined mismatches throughout
- Add missing required fields to ApplyTagsInput, policy types, etc
2026-04-14 08:56:21 -07:00
Jamie Pine
acde17c088 Fix CI: rustfmt, xtask empty TARGET_TRIPLE, and package linking
- Sort `pub mod adapters` alphabetically in ops/mod.rs
- Wrap long line in volume/fs/refs.rs
- Handle empty TARGET_TRIPLE env var in xtask setup
- Replace `link:@spacedrive/*` with published `^0.2.3` versions
2026-04-12 20:33:43 -07:00
Jamie Pine
74cb8c46bb Merge main into spacedrive-data 2026-04-12 13:40:59 -07:00
Jamie Pine
6c5e656e6d spacedrive server work 2026-04-10 16:58:43 -07:00
Jamie Pine
efa8d07992 Rename @spaceui/* deps to @spacedrive/* 2026-04-04 21:35:20 -07:00
James Pine
3383fb7cdb Remove deprecated explorer sidebar (replaced by SpacesSidebar)
Delete Sidebar.tsx, SidebarItem.tsx, Section.tsx, LocationsSection.tsx
from the old explorer sidebar. The active sidebar is SpacesSidebar
which uses SpaceItem from @spaceui/primitives.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 03:49:55 -07:00
James Pine
adac2f3c45 Source sync jobs, voice overlay rewrite, TabBar migration, docs
- Refactor source sync to dispatch SourceSyncJob instead of inline sync
- Rewrite VoiceOverlay with audio recorder and TTS playback hooks
- Migrate TabBar to @spaceui/primitives
- Update SpacebotContext query invalidation
- Add SpaceUI section to CONTRIBUTING.md and README.md
- Update sources UI (Adapters, SourceDetail)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 01:12:52 -07:00
James Pine
907ab4e267 Add archive sources UI with full Rust integration
- Create core/src/data/ module with SourceManager wrapping sd-archive Engine
- Add Sources to GroupType and Source to ItemType enums
- Add default Sources group to new library creation
- Register source operations: create, list, get, delete, sync, list_items
- Register adapter operations: list, config, update
- Add bundled adapter sync from workspace adapters/ directory
- Add adapter update system with BLAKE3 change detection and backup/rollback
- Frontend: Sources home, source detail with virtualized list, adapters screen
- Frontend: SourcesGroup sidebar, SpaceGroup dispatch, spaceItemUtils
- Frontend: TopBar integration (path bar, search, sync, actions menu)
- Frontend: Tab title sync, adapter icon lookup hook
- Regenerate TypeScript types

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 03:24:53 -07:00
Jamie Pine
9f0685abc9 ui 2026-03-28 18:19:48 -07:00
Jamie Pine
457833ee19 remove ui refs 2026-03-26 22:48:27 -07:00
James Pine
0c19c64a17 ui 2026-03-26 22:23:29 -07:00
James Pine
22020cf592 ui tweaks 2026-03-26 22:06:43 -07:00
James Pine
1c3d7d2a4c ui 2026-03-26 21:09:37 -07:00
James Pine
edebc7423f yes 2026-03-26 19:48:47 -07:00
James Pine
a8b1f4d2a4 migration 2026-03-26 19:32:01 -07:00
James Pine
bb5076776d tailwind upgrade 2026-03-26 17:29:55 -07:00
Jamie Pine
48c574c5ea Merge pull request #3041 from slvnlrt/delete-improvements
fix(delete): resolve Content paths, progress updates, DEL keybinds
2026-03-26 12:22:38 -07:00
James Pine
dfe60b5a82 color test 2026-03-25 23:01:32 -07:00
James Pine
1206da1b8c ui lib stuff 2026-03-25 22:35:34 -07:00
James Pine
8b8ce2b26a integrate SpaceUI AI components into interface 2026-03-25 20:33:27 -07:00
James Pine
f7f505fc21 shared-ui 2026-03-25 18:39:56 -07:00
James Pine
63add551c9 progress 2026-03-25 17:29:12 -07:00
James Pine
71e8201ee2 worker 2026-03-25 01:34:27 -07:00
James Pine
9a00cef50c more ui 2026-03-25 01:20:15 -07:00
James Pine
f7bb42aa95 better chat 2026-03-25 00:42:29 -07:00
James Pine
01e5bba643 router 2026-03-25 00:17:14 -07:00
James Pine
5bc60cf4c4 more interface 2026-03-24 23:52:43 -07:00
James Pine
e4955bf59a ui magic 2026-03-24 22:19:31 -07:00
James Pine
53b030c492 fsl 2026-03-24 14:32:31 -07:00
slvnlrt
4dd83734e8 refactor: extract shared useDeleteFiles hook, fix review issues
- Extract delete logic into useDeleteFiles hook (DRY: used by both
  useExplorerKeyboard and useFileContextMenu)
- Add isPending guard to prevent double-deletion on rapid key presses
- Remove dead DeleteProgress struct from delete job
- Use Progress::Indeterminate for intermediate phases instead of
  misleading percentage values that get overridden by with_completion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 23:21:13 +01:00
slvnlrt
1b18f11f7d feat(explorer): wire DEL and Shift+DEL keybinds for file deletion
Register explorer.delete (DEL / Cmd+Backspace) and
explorer.permanentDelete (Shift+DEL / Cmd+Alt+Backspace) handlers in
useExplorerKeyboard, using the same confirm + mutateAsync pattern as
the context menu. Clears selection after successful delete.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 23:21:13 +01:00
slvnlrt
5cf644f6be fix(windows,ui): dark titlebar via DWM API and sidebar hover effects
Windows titlebar:
- Use DwmSetWindowAttribute to force dark caption color (#1E1E1E),
  dark mode icons, and matching border on all windows
- Overrides user's Windows accent color that would tint the titlebar
- Applied to both config-created main window and code-created windows

Sidebar hover:
- SpaceItem: add cursor-pointer, hover bg/text for non-active items;
  fix hover not applying when className prop is passed (devices)
- SidebarItem: add cursor-pointer and hover bg for non-active items

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 23:00:31 +01:00
slvnlrt
1ff018454c fix: address CodeRabbit review feedback
- BatteryFlag: use bitmask check instead of exact equality (0x80 = no battery)
- SystemDrive: use %SystemDrive% env var instead of hardcoded C:\
- SQLite PRAGMAs: apply per-connection via SqliteConnectOptions (not one-time exec)
- System volume detection: check for Windows\System32 dir instead of drive letter
- Volume serial: use GetVolumePathNameW to resolve actual mount point
- ReFS: proper IOCTL version detection, real volume GUID, capability storage
- Volume GUID: extract shared volume_guid() from ntfs.rs to fs/mod.rs
- Device manager: reuse reg_read_hklm() instead of duplicated registry code
- VolumesGroup: remove 'local' fallback for device slug
- useNormalizedQuery: case-insensitive path matching, catch subscription errors
- Volume struct: add supports_block_cloning field for ReFS CoW routing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 19:09:55 +01:00
slvnlrt
ea970d39f4 fix: address review feedback from Tembo bot
- transport.ts: clean up event listener if subscribe_to_events throws
- is_hidden_path: use FILE_ATTRIBUTE_HIDDEN only on Windows, dot-prefix
  only on Unix (no cross-over that would mark .gitignore as hidden)
- reg_read_hklm: two-pass query to handle arbitrarily long REG_SZ values
- classify_volume: pass total_space instead of hardcoded 0
- ntfs volume_guid: unwrap_or(guid_buf.len()) instead of unwrap_or(0)
- wait_for_indexing: poll every 25ms instead of 5ms
- main.rs: accept both JsonOk and result keys for daemon compat
- VolumesGroup.tsx: remove unnecessary <any> type parameter

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:36:38 +01:00
slvnlrt
27eefd1c67 fix(addressing): accept device UUID as device_slug in SdPath
The frontend VolumesGroup was sending volume.device_id (UUID) instead
of device.slug when constructing Physical SdPaths. This caused
as_local_path() and is_local() to return false, breaking ephemeral
volume browsing ("Location root path is not local").

Backend: SdPath::is_current_device() now accepts slug, UUID, or "local".
Frontend: VolumesGroup.tsx looks up the Device by ID and uses device.slug.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 23:51:46 +01:00
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