- Introduce an Axum-based HTTP server with an embedded daemon and a
JSON-RPC proxy to the daemon via a Unix socket - Bundle web UI assets
into the server with an assets feature and a build.rs that builds the
frontend using pnpm - Add multi-stage Dockerfile, docker-compose.yml,
and a Distroless runtime image - Provide TrueNAS deployment support with
a build script and setup guide - Add a new web UI (apps/web) with a
Vite-based dev/build flow and a web platform shim for the frontend -
Implement server logic (apps/server/src/main.rs): health, auth, /rpc
proxy and data-dir/socket-path wiring - Include server-specific
Cargo.toml and a comprehensive server README - Add architecture and
memory-focused docs to guide usage and design - Minor core tweak:
simplify location/resource event emission in
core/src/location/manager.rs to align with new flow - Tauri app: adjust
menus to add an Edit submenu and remove unused items
* Update rspc, prisma-client-rust, axum and tanstack-query
- Deleted some unused examples and fully commented out frontend code
- Implement many changes required due to the updates
- Update most rust dependencies
* Re-enable p2p
* Fix server
* Auto format
* Fix injected script format
- Update some github actions
- Update pnpm lock file
* Fix devtools showing up when app opens
- Fix million complaining about Sparkles component
* Fix sd-server
* Fix and improve thumbnails rendering
- Fix core always saying a new thumbnail was generated even for files that it skiped thumbnail generation
- Rewrite FileThumb and improve related components
* Ignore tmp files when running prettier
* Improve FileThumb component performance
- Rework useExplorerDraggable and useExplorerItemData hooks due to reduce unecessary re-renders
* More fixes for thumb component
- A couple of minor performance improvements to frontend code
* auto format
* Fix Thumbnail and QuickPreview
* Fix logic for when to show 'fail to load original' error message in QuickPreview
- Updated prisma-client-rust, libp2p, tauri, tauri-specta, rspc and hyper
* Fix type checking
- Format scripts
* Add script prettier config
* Fix serde missing feature
- Use rust-libp2p spacedrive fork again
- Update rspc
* Autoformat + fix pnpm lock
* Fix thumbnail first load again
* Autoformat
* autoformat
* Fix rust-libp2p fork url again?
* Remove usePathsInfiniteQuery hook
* Update tauri 2.0.6
* Update to tauri 2.0.0 stable
- Update a some othe dependencies
- Autoformat rust and toml files
* Fix clippy complain
* Update tauri 2.0.1
- Update rspc
- Update some frontend files due changes in rspc
- Update some frontend build dependencies
* Revert babel update
* Fix code typing typing and style + a couple of bugs
* More type fixes
* New test: Add location
- Add script to download some test files to allows tests to have a stable path for creating locations
- Improve onboarding test
- Add custom Cypress commands for fastOnboarding and deleteLibrary
- Add some documentation related to tests to CONTRIBUTING.md
- Update some deps
* Download small test-data for Cypress CI
* Replace globstar with find to make it compatible with bash 3.x
* Fix react too many re-renders
- add-location test should now pass successfully
* Make job model task text match less flaky
* Check if we were redirected to onboarding after Library was deleted
- Check if sidebar entry was created after adding a location
- Put route regex's into a separate file
- Make onboarding test ensure that no Library exists before running
* Enable test retries
- Log cypress default config during test run
* Run tests under webkit
- Pass CI envvar to tests to ensure correct cypress config
* Attempt fix CI config again
* Remove single use checkUrlIsLibrary function
* Basic cypress test
* Add e2e test command
* Add full e2e test for creating and deleting a library
* Add cypress to CI
* Fix cypress CI
- Use arm macos for running cypress
- Setup rust on cypress job
- Increase cypress CI timeout
* Remove unused APPLE_SIGNING_IDENTITY envvar
* Update deps again + Try to fix Cypress CI setup
* Update deps again
* Only test default location if it exists
* Use latest v18 NodeJS in CI
* Increase minimum node version due to updated dependency
- @typescript-eslint/eslint-plugin now requires node >=18.18
* Fix testing failing for optional default locations
* Enable video recording
- Fix screenshot and video artifact uploading
* Fix location test
- Use correct location name, instead of trying to derive it from the internal id
Fix eslint warning
- Fix some subdependencies requiring an older @typescript-eslint/parser version that is incompatible with the current version of typescript
- Add react-router and react-router-dom version lock to ensure pnpm doesn't download a version incompatible with our patched @remix/router
- Add version lock to @remix-run/router to avoid incompatibilities with our patched version
* Fix onboarding sometimes not redirecting to Explorer on prod builds
- Fix failure trying to compile landing prod builds outside Vercel
- Fix Server docker failing to restart due to some incorrecting logic for creating the unprivileged users erroring out
- Fix Storybook failing to build due to updates to Vite
- Update Storybook dependencies
- Remove unused Inter font dependency
- Fix some incorrect references to NodeJS types inside web code
- Fix $libraryId index using the incorrect redirect function
- Improve error handling for the $libraryId index route
- Fix Prism not being correctly loaded, and failing to register its plugins
- Improve Prism loading error handling
- Small improvement to the text highlight logic
- Fix SCSS deprecation for untyped hsl values
- Fix library query cache incorrectly saving empty values, which lead to the onboarding redirect bug
- Patch contentLayer to fix an error during the final part of it's build process
- Update most dev dependencies
- Update publish-artifact to be compatible with new @actions/artifact
- Fix issue with new vite-plugin-solid failing to build our .ts files due to the removal of the typescript plugin
- Fix pnpm overrides not applying due to incorrect placement in package.json
- Replace deprecated react-tsparticles and updated three used by the Bubbles background in the landing page
- Rework Bubbles background to be compatible with new @tsparticles/react
- Update @sd/config dependencies
- Update @sd/scripts dependencies
* Implement suggestions
- Replace mobile JS node setup with custom setup-pnpm action
- Handle GITHUB_SECRET default value in code and throw a warning when it is not set
- Fix pnpm now resolving the correct node version when building Spacedrive server docker
- Add missing getent command to spacedrive server docker
- Fix typo in entrypoint.sh
- Implement a more robust check if the user is already in a group
- Fix adduser failing due to missing default group
- Disconnect IntersectionObserver on component unmount
- Improve prism import comment
* Implement more suggestions
- Pin genent version to latest stable release of UClibc
- Add checksum checks for all ADD clauses in Spacedrive server Dockerfile
* Increase Maestro timeout to reduce CI failures due to slow simulator startup
* Dowgrade maestro to workaround CI timeout
* Improvements to the script that run maestro mobile tests
- Increase the amount of retries for a maestro test run to 6
- Increase Maestro driver startup timeout to 2 minutes
* Let run-maestro-tests.sh decide how to run itself
* ¯\_(ツ)_/¯
* tabs w/ multiple router instances
* fix router switching
* keybinds
* manual history tracking
* eslint
* remove scroll restoration
* fix tab removal
* route title + tab create delay
* typescript
* put tab list up top
* Remove import + show close button only if tabs length more than 1
* lint
* unify blur across whole top bar
* add to keybindings page, tauri drag region, and tooltip
* fix blur
* more drag regions
* merge moment
---------
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Dependencies overhaul
- Update dependencies for all projects (except Mobile-only deps)
- Remove unused dependencies from all projects (except Mobile-only deps)
- Fix Storybook failing to import sd/ui style
- Add Node 21 as not supported due to sass-loader not working on it yet
- Add work-around for new rook version requiring webpack specific global property
- Fix landing dev not working due to missing default env value on dev
- Fix some incorrect uses of phosphor-icons non server side icons on server components on landing
- Fix some incorrect uses of phosphor-icons server side icon on client components on landing
- Fix landing fail to build on dev due to always required a Github Token to get the latest release
- Fix new Next.js version not suporting Response.redirect due to immutable Headers
- Add Gitlab as social link for teams page
- Update Vítor's team photo
- Add Vítor's twitter link
- Fix some warning due to missing useEffect dependencies
- Remove test-files dir
- Fix QuickPreview unblurred buttons in Linux
- Formatting
* custom updater with toasts
* new state management + updated router route
* tauri-specific update route
* ref
* update in prod only
* change 'Install' to 'Update'
* fix tsconfig
* desktop tauri
* remove tauri patch
* tauri 1.5
* tauri 1.5
* use tauri script
* native-deps
* Rework preprep and tauri script to better support tauri 1.5
* Update to tauri 1.5.1
- Update workspace and apps/desktop dependencies
- Fix mustache import, @types/mustache is not compatible with ES imports
- Replace arm64 with aarch64 in machineID, they should be treated the same and this simplyfies the code
* Fix tauri updater not building due to missing key
- Fix dmg background not being found
- Generate an adhoc key for tauri updater with it is enabled and the user is doing a prod build
* Fix ctrl+c/ctrl+v typo
* Normalie @tanstack/react-query version through workspace
- Use undici in scripts instead of global fetch
- Fix typecheck
* Fix linux prod and dev builds
- Improve error handling in tauri.mjs
* Normalize dev deps in workspace
- Improve linux shared libs setup
* Fix CI and server docker
* Fix windows
- Remove superfluous envvar
* Attempt to fix server, mobile, deb and release updater
* Attempt to fix deb and mobile again
- Fix type on deb dependency
- Enable release deb for aarch64-unknown-linux-gnu
* Github doesn't have arm runners
- Fix typo in server Dockerfile
* Publish deb and updater artifacts
* remove version from asset name
* update commands
* log release
* Some logs on updater errors
* show updater errors on frontend
* fix desktop ui caching
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
* Life is a lie and nothing makes sense
* consistent version
* Web uses the relative alias resolver it would seem
---------
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* Overview categories arrow buttons
* Hide indexer rules in location + category arrow buttons
* Added masking on left and right of categories
* Expose lock_app_theme function to frontend
* Allow lockAppTheme to reset back to auto theme
* Fixes, progress bar color, useTheme update, shrink-0 for arrow button
* Only show fadeout if scrolled, onboarding css tweaks
* Framer hook unstable, motion divs to handle last category entry is much better
* Fix color picker closing
* Remove ref that is no longer needed
* Fix swift theme updating
* cleanup
* Overview categories arrow buttons and fixes
Added masking on left and right of categories
[HOTFIX] Remove placeholder nodes (#913)
Update LibrarySection.tsx
[ENG-694] Remove Spacedrop (#914)
* goodbye Spacedrop
* fix startup error escaping
* fix error fallback being cringe with long error
* backwards compatibility for early adopters
[ENG-697] Fix rename library (#916)
* random stuff
* How have we had a deadlock for 2 months lol
[ENG-701] Add explorer top bar options to tags (#918)
Add top bar options
[ENG-679] Reserve ids for built in indexer rules (#909)
* indexer rules pub ids
* should work?
* better migrator
* errors
* debugging
* maybe?
* double migrate
* please
* maybe fix?
* update lockfile
* SD_ACCEPT_DATA_LOSS message
* put tracing back
* dumb
* fix system indexer rule ui
fix(interface): quick preview not closing with SPACE (#921)
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
[ENG-700] Add empty notice to tags (#922)
Add empty notice to tags
[ENG-707] Fix list item bg color (#924)
Fix list item bg color
[ENG-706] Add deselect explorer view items (#923)
Add deselect
Expose lock_app_theme function to frontend
Allow lockAppTheme to reset back to auto theme
Fixes, progress bar color, useTheme update, shrink-0 for arrow button
Only show fadeout if scrolled, onboarding css tweaks
Framer hook unstable, motion divs to handle last category entry is much better
Fix color picker closing
Remove ref that is no longer needed
Fix swift theme updating
* cleanup
* Update pnpm-lock.yaml
* fix types & upgrade typescript version to 5.0.4
* fix folder icon
* remove rust comment
* remove mask
* masking tweak
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: nikec <nikec.job@gmail.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* finally
* should be working?
* fix types
* fix types
* Wouldn't it be nice if Metro would just work
* idk
* try harder Metro
* potentially fix bundling issues
* idk, maybe fix it?
* fix metro
* update podfile.lock
* bruh
* bruhz
* tailwind is drunk again
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* use @sd/client for tsconfig extends
* move all svgs to @sd/assets
* only use vite-tsconfig-paths
* remove ui from web
* use relative extends for ui tsconfig
* remove aliases from landing?
* use wacky landing vite config
* try using tsconfig paths and root on landing
* Revert "try using tsconfig paths and root on landing"
This reverts commit 43bd2a0f84.
* remove tsconfig-paths from landing
* move Rust backend to rspc
* move server to Axum + remove parts of old bridge
* move frontend over to @rspc/client
* move core to rspc + update deps
* fix Typescript errors + upgrade deps
* document invalidate_query! macro
* general cleanup + upgrade to PCR 0.6.0
* prisma error handling
* upgrade to rspc 0.0.4
* update vite-plugin-ssr
* fix typescript
* fix builds
* put landing page app name back
* hardcode ffmpeg version on Windows
* rename 'command' to 'mutation' to line up with react-query terminology
* upgrade rspc to v0.0.5 + fix types
* use shared ffmpeg binaries
* general Typescript cleanup
* fix clippy workflow failing due to tauri proc-macro
Co-authored-by: Brendan Allan <brendonovich@outlook.com>