Commit Graph

4700 Commits

Author SHA1 Message Date
Jamie Pine
dcf09ce44c Enhance README.md with detailed component descriptions and architecture updates
- Expanded the Core section to include new technologies like Tokio, Wasmer, and Axum.
- Added Cryptography & Security and Media Processing sections detailing new features and libraries.
- Updated the Architecture Patterns section to reflect changes in job serialization and operation registration.
- Improved directory structure descriptions for core, apps, packages, and crates.
2026-02-06 02:55:56 -08:00
Jamie Pine
dde0b225fe Merge pull request #3013 from spacedriveapp/honor-contributors
Add contributors list and update settings page
2026-02-06 02:36:58 -08:00
Jamie Pine
54e478a73a Update xtask/src/contributors.rs
Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com>
2026-02-06 02:36:49 -08:00
Jamie Pine
b678e5e2fa Update xtask/src/contributors.rs
Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com>
2026-02-06 02:36:39 -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
Jamie Pine
77ff1d77fc Merge pull request #3012 from StarbirdTech/build/mobile-build-improvements
build: add mobile-dev profile, fix metro watcher and NDK config
2026-02-06 00:40:13 -08:00
StarbirdTech
5c4b000765 build: add mobile-dev profile, fix metro watcher and NDK config
Add a mobile-dev Cargo profile for faster mobile development builds
(parallel codegen, no LTO, opt-level 2) — available opt-in via
`cargo build --profile mobile-dev`. Production builds use --release.

Fix NDK host_tag to always use darwin-x86_64 on macOS since Google
ships universal binaries under that path. Make aws-lc-sys cache
cleaning opt-in via CLEAN_AWS_LC=1 to enable incremental iOS builds.

Scope Metro file watcher to src/ and packages/ instead of the entire
monorepo (avoids watching 4.5GB+ Rust target/ dirs) and fix React
resolution to use workspace root where bun hoists packages.

Apply tembo review feedback from #3011: fix SVG type declarations to
avoid DOM dependency, add sound asset type flexibility, and add public
subpath exports to ts-client.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 03:34:44 -05:00
Jamie Pine
2a2901e93f Merge pull request #3011 from StarbirdTech/chore/package-cleanup
chore: fix package exports, hoist types, remove stale lockfiles
2026-02-06 00:05:30 -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
9f7edb5086 Merge pull request #3010 from StarbirdTech/build/unify-workspace-cleanup
build: unify mobile core into root workspace
2026-02-05 22:25:24 -08:00
StarbirdTech
454267df18 build: check xcrun exit status before using sdk path
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:13:33 -05:00
StarbirdTech
7741f970e5 build: unify mobile core into root workspace
Merge sd-mobile-core into the root Cargo workspace so desktop and
mobile share a single dependency tree and target directory. Remove dead
[patch.crates-io] entries for iroh and netdev that stopped being applied
after the iroh v0.95.1 upgrade. Switch mobile core deps to workspace
versions, fix clippy/warnings surfaced by workspace-wide checks, and
add BINDGEN_EXTRA_CLANG_ARGS to fix errno.h not found on clean macOS
builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:01:27 -05:00
Jamie Pine
f6122414c3 Merge pull request #3003 from gedeondoescode/fix-windows
Enable Spacedrive to successfully build on Windows
2026-02-05 19:39:57 -08:00
Jamie Pine
8ab7b6d318 Merge pull request #3006 from StarbirdTech/feat/whisper-feature-gating
feat(core): make STT deps optional via feature flags
2026-02-05 19:24:27 -08:00
Gedeon Sainrival
e4e53b751c Fix volume indexing
Previous implementation of `reconstruct_path` was Unix-specific and did
not work as intended on Windows. It has now been reworked to operate
well enough on all platforms and can work with Windows most importantly.
2026-01-31 19:12:52 -05:00
Gedeon
7763bcb70b Merge branch 'main' into fix-windows 2026-01-29 14:21:21 -05:00
StarbirdTech
74d3b82a87 feat(core): add speech-to-text feature flag for optional AI dependencies
Introduces a proper feature flag hierarchy for AI-related dependencies,
allowing lite builds without heavy speech-to-text dependencies.

Feature hierarchy:
- `ai` - umbrella feature for all AI capabilities
- `speech-to-text` - transcription capability (requires ffmpeg + whisper)
- `whisper` - Whisper speech recognition engine (internal)
- `ffmpeg` - audio/video processing (existing)

Changes:
- Make whisper-rs, hound, rubato optional deps behind `whisper` feature
- Add `speech-to-text` feature that requires both ffmpeg and whisper
- Add `ai` umbrella feature that enables all AI features
- Update all cfg guards to use semantic `#[cfg(feature = "speech-to-text")]`
- Expose new features in apps/server and apps/cli
- Update release workflow to include `ai` feature (maintains existing behavior)

This enables:
- Mobile builds without STT (smaller binary, already using default-features=false)
- Desktop "lite" builds for users who want minimal size
- Future AI features can be added under the `ai` umbrella

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:07:07 -05:00
Gedeon Sainrival
d31fc97c8c Canonicalize Windows paths 2026-01-28 21:42:57 -05:00
Jamie Pine
28ef84e87d Merge pull request #3005 from spacedriveapp/blacksmith-migration-d4dd39c
.github/workflows: Migrate workflows to Blacksmith runners
2026-01-28 17:17:19 -08:00
Gedeon Sainrival
14901455b2 fix tembo's bad commit 2026-01-28 20:10:17 -05:00
blacksmith-sh[bot]
6003e8b1e3 Migrate workflows to Blacksmith 2026-01-29 01:06:58 +00:00
Gedeon
61d6acef1d Update core/src/ops/indexing/phases/processing.rs
Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com>
2026-01-28 19:42:20 -05:00
Gedeon Sainrival
342ea15484 detect Windows volumes 2026-01-25 18:25:45 -05:00
Gedeon Sainrival
723379a31b use windows_sys api rather than unstable windows_by_handle Metadata
method.
2026-01-25 18:25:07 -05:00
Gedeon Sainrival
97594aab7f Specify type in inode closure 2026-01-25 18:24:06 -05:00
Gedeon Sainrival
19ebcfae23 Reconfigure xtask to properly recognize Windows paths 2026-01-25 17:02:51 -05: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
a4728ff768 Merge pull request #3002 from spacedriveapp/tembo/upgrade-iroh-v0-95-1
Upgrade Iroh to v0.95.1
2026-01-24 16:18:22 -08:00
Jamie Pine
388b4dde28 cargo fmt 2026-01-24 16:14:21 -08:00
Jamie Pine
0bee40bcce refactor(network): update connection handling in ListLibraryDevicesQuery
- Modified the connection type retrieval to use the .borrow() method for improved compatibility with the updated Iroh API.
- Enhanced the logic for determining device connection status, ensuring accurate online/offline state updates based on current network conditions.
- Added a TODO comment regarding the potential removal of the is_online column for better clarity in future refactoring.
2026-01-24 16:08:48 -08:00
Jamie Pine
c09cc5942d refactor(network): update to use EndpointId and EndpointAddr
- Replaced NodeId with EndpointId in various components to align with the new Iroh v0.95+ API.
- Updated connection handling to utilize EndpointAddr instead of NodeAddr, reflecting changes in the underlying library.
- Adjusted discovery and connection logic to accommodate the immutability of EndpointAddr, enhancing overall network functionality.
2026-01-24 15:41:10 -08:00
tembo[bot]
d4d912bc3f chore(iroh): upgrade to v0.95.1 with breaking changes and migration steps 2026-01-24 21:58:43 +00: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
d328854314 Merge pull request #2987 from spacedriveapp/cursor/device-proxy-pairing-651c
Proxy pairing
2026-01-24 13:28:52 -08:00
Jamie Pine
5d9a6918db Merge branch 'main' into cursor/device-proxy-pairing-651c 2026-01-24 13:27:02 -08:00
Jamie Pine
598cab2ab7 Merge pull request #3001 from spacedriveapp/convert-device-to-shared
Convert device to shared
2026-01-24 13:26:07 -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
67ce501b4d fixed the infinite loop bug. The bidirectional
registration now only triggers when a new device is created
  (messaging.rs:395-448), not when updating an existing device.

  What changed:
  - Moved the tokio::spawn block from after the entire match
  existing statement into the Ok(None) branch (new device
  creation)
  - When a device is updated (already exists), it no longer sends
   a registration request back
2026-01-24 12:37:44 -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
Jamie Pine
eb1de30d26 remove pairing expiration 2026-01-24 11:06:02 -08:00
Jamie Pine
bdfd858ace Merge pull request #3000 from okunamayanad/bm-branch-2
fix: handle config changes in summarize_event
2026-01-22 22:36:39 -08:00
Jamie Pine
5986508ef9 Merge pull request #2998 from okunamayanad/bm-branch-1
fix: install cmake on setup
2026-01-22 22:26:12 -08:00
Baran Mordoğan
4309ca0e97 fix: handle config changes in summarize_event 2026-01-23 09:26:02 +03:00
Jamie Pine
596c3276bf Merge pull request #2996 from okunamayanad/fix-deps
fix: add node-gyp as a dev dep
2026-01-22 22:25:50 -08:00
Baran Mordoğan
9bdb7d1942 fix: install cmake on setup 2026-01-23 08:51:27 +03:00
Baran Mordoğan
ceac929c3e fix: add node-gyp as a dev dep 2026-01-23 08:22:01 +03:00
Jamie Pine
8eca2d2bc0 chore(migration): simplify device table updates by dropping unused columns
- Updated the migration to leverage SQLite's ALTER TABLE DROP COLUMN feature, eliminating the need for table recreation.
- Removed the last_sync_at, last_state_watermark, and last_shared_watermark columns from the devices table, as they are no longer utilized.
- This change streamlines the database schema and improves migration efficiency.
2026-01-22 19:37:58 -08:00
Jamie Pine
37d19adb08 chore(sync): remove legacy last_sync_at column and related functionality
- Removed the last_sync_at field from the device model and related structures, as it is now superseded by per-peer watermark tracking in sync.db.
- Updated various components, including device registration, sync setup, and messaging protocols, to eliminate references to last_sync_at.
- Introduced a migration to drop the obsolete last_sync_at column from the devices table.
- Adjusted tests and helper functions to reflect the removal of last_sync_at, ensuring they align with the new sync architecture.
2026-01-22 19:37:43 -08:00