Commit Graph

1264 Commits

Author SHA1 Message Date
James Pine
f79bbdceef fix: tauri CI builds + macOS runners + spaceui-link
- Add missing @vitejs/plugin-react-swc to tauri devDependencies
- Make spaceui/spacebot vite aliases conditional in tauri config
- Use package export paths for @spacedrive/tokens CSS imports
- Use regex aliases to prevent prefix-matching collisions
- Switch macOS release runners to macos-26 (GitHub-hosted)
- Fix spaceui-link to run bun link from workspace root

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:51:14 -07:00
James Pine
f68606abf2 fix(web): externalize @spacebot/api-client for web builds
Spacebot is a separate repo not available in CI. The VoiceOverlay
component that imports it is tauri-only, so externalize it for the
web/server build.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:11:49 -07:00
James Pine
f3d617cc4c fix: use package exports for @spacedrive/tokens CSS imports
Update CSS @import paths to use the package export map
(@spacedrive/tokens/theme, /css, /css/themes/*) instead of internal
source paths. Update vite aliases to map export paths back to source
files when spaceui is available locally.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:52:03 -07:00
James Pine
1d8dfa1bf5 fix(web): conditionally apply spaceui/spacebot vite aliases
Only apply @spacedrive/* and @spacebot/* vite aliases when the sibling
repos exist locally. In CI and production builds, packages resolve from
node_modules via npm. Revert spaceui checkout from release workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:38:15 -07:00
James Pine
db5f362f12 fix(web): add missing @spacedrive/tokens dependency
The web app imports @spacedrive/tokens/src/css/theme.css in index.css
but didn't declare it as a dependency, causing the vite build to fail
in CI where spaceui isn't available as a sibling directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:17:05 -07:00
Jamie Pine
c877cc243b disable spacebot window 2026-04-14 11:22:10 -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
730b177965 Fix remaining CI failures: rustfmt, TypeScript errors
- cargo fmt across all modified files
- Add Vite client types and Window.__SPACEDRIVE__ declaration
- Fix @sd/interface/platform import to @sd/interface
- Align @types/react versions between tauri and interface packages
- Remove unused imports/vars in useDropZone, DragOverlay, ContextMenuWindow
- Fix WebviewWindow.location references to use globalThis
- Exclude updater.example.ts from typecheck
2026-04-12 23:13:50 -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
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
f93a34ca73 remove sub modules 2026-03-27 00:38:27 -07:00
Jamie Pine
457833ee19 remove ui refs 2026-03-26 22:48:27 -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
James Pine
1206da1b8c ui lib stuff 2026-03-25 22:35:34 -07:00
James Pine
63add551c9 progress 2026-03-25 17:29:12 -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
James Pine
aff09bb087 init 2026-03-24 14:23:55 -07:00
slvnlrt
219459b5fa fix(windows): apply dark titlebar to all decorated windows, log DWM errors
Address CodeRabbit review feedback:
- Apply dark titlebar to ContextMenu (direct-build window with decorations)
- Log HRESULT return values from DwmSetWindowAttribute via set_attr helper
2026-03-22 23:24:53 +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
602a6d2b5b fix(tauri): resolve target-dir from Cargo config in dev script
The dev-with-daemon script hardcoded `target/debug` as the daemon
binary path, which breaks when a custom target-dir is configured
in .cargo/config.toml or CARGO_TARGET_DIR. Use `cargo metadata` to
resolve the actual target directory, with fallback to the default.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 19:26:39 +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
dc2754e573 fix(build): exclude MSI target on Windows to avoid semver pre-release error
MSI bundler rejects semver versions with non-numeric pre-release identifiers
(e.g. "2.0.0-alpha.2"). The CI already works around this by passing
--bundles nsis explicitly. Add targets: ["nsis", "app"] to tauri.windows.conf.json
so local Windows builds use the same target set as CI.
2026-03-15 11:00:58 +01:00
slvnlrt
1fb58d55ef fix(tauri): use correct registry method names for daemon RPC calls
The daemon handler registry stores methods with their full prefix:
- Queries: query:<name> (e.g. query:libraries.list)
- Actions: action:<name>.input (e.g. action:libraries.open.input)

Previous fix used bare names without prefix, causing Unknown method at startup.
execute_json_operation() looks up method directly in CORE_QUERIES map.

Fix validate_and_reset_library_if_needed: libraries.list -> query:libraries.list
Fix file-association open handler: libraries.open.input -> action:libraries.open.input
2026-03-14 23:51:45 +01:00
slvnlrt
9cf7333343 fix(tauri): use DaemonRequest format for daemon RPC calls
Two code paths in main.rs sent JSON-RPC 2.0 formatted messages
({"jsonrpc":"2.0","id":1,"method":"query:..."}) but the daemon
expects serde-tagged DaemonRequest enums ({"Query":{"method":"..."}}).

Fix validate_and_reset_library_if_needed() (line 487):
- Request: use {"Query":{"method":"libraries.list",...}} format
- Response: parse "JsonOk" key instead of "result"

Fix file-association open handler (line 1741):
- Request: use {"Action":{"method":"libraries.open.input",...}} format

This resolves the "unknown variant 'id'" parse error and the
"Invalid response format from libraries.list query" warning at startup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 23:51:45 +01:00
Jamie Pine
f1843bf2a0 Merge branch 'main' of https://github.com/spacedriveapp/spacedrive 2026-02-06 19:59:11 -08:00
Jamie Pine
8ea57396bc Refactor daemon binary resolution in Tauri application
- Introduced a new function `find_daemon_binary` to streamline the process of locating the daemon binary, accommodating both target-triple-suffixed and plain names.
- Removed redundant code for determining the daemon path in multiple locations, enhancing code clarity and maintainability.
- Exposed the target triple to runtime code for improved daemon binary resolution.
2026-02-06 19:59:09 -08:00
Jamie Pine
21c641dddf Merge branch 'main' into release-build-fixes 2026-02-06 19:20:52 -08:00
Jamie Pine
f735852410 Refactor Tauri configuration for Windows and streamline resource management
- Updated the release workflow to conditionally include a Windows-specific configuration file for Tauri builds.
- Simplified the resource management in the Tauri configuration by removing unnecessary DLL paths from the main config and adding them to a new Windows-specific config file.
2026-02-06 18:13:24 -08:00
Jamie Pine
55a132c890 Enhance DLL copying process in setup function
- Updated the setup function to copy DLLs to additional target-triple directories for CI cross-compilation, improving build flexibility.
- Modified the logging to reflect the target directory label during the copy process.
2026-02-06 15:36:40 -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
e64e4213da Merge branch 'main' into release-build-fixes 2026-02-05 23:41:04 -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
b23ae40a01 v2.0.0-alpha.2 2026-02-05 23:12:55 -08:00
Jamie Pine
9de7ee88ed Update versioning across multiple packages and enhance GitHub Actions workflow
- Changed versioning from "2.0.0-pre.1" to "2.0.0-alpha.1" in various Cargo.toml files and package.json to reflect a new alpha release.
- Added support for ARM64 builds in the GitHub Actions workflow, including a new host configuration and installation of VA-API libraries for the ARM target.
- Introduced a new `bump` command in the xtask to facilitate version updates across all relevant files, improving version management.
2026-02-05 22:58:11 -08: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
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
ab9c39526d Update GitHub Actions workflow to install VA-API libraries for ARM64
- Added a step to install VA-API libraries in the release workflow specifically for the ARM64 target, enhancing multimedia processing capabilities.
- Adjusted the file path in the Tauri configuration to ensure correct library linking, improving deployment consistency.
2026-02-05 21:59:50 -08:00
Jamie Pine
2ea55d86e1 Merge branch 'main' into release-build-fixes 2026-02-05 21:12:36 -08: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
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
13f7eeb9ae Enhance cross-compilation support in build process
- Added CARGO_BUILD_TARGET environment variable to the GitHub Actions workflow for better target management during builds.
- Updated package.json scripts to conditionally include the target option for the daemon build commands, improving flexibility for different architectures.
- Refactored the setup function in main.rs to utilize a dynamic target triple for building the release daemon, ensuring compatibility across various systems.
2026-01-24 20:41:39 -08:00
Jamie Pine
87889e5a7f Enhance native dependencies verification in GitHub Actions workflow
- Improved the verification step for native dependencies by checking the existence of the apps/.deps/lib directory and ensuring that .so files are present.
- Added detailed output for the contents of the directory and the count of .so files, providing better feedback during the build process.
2026-01-24 19:14:41 -08:00