All cloud routes are now migrated to the new system in the backend.
The old routes are still available, as the frontend has not been modified to use the new ones yet.
We store auth creds in the actual keychain of the device and not in localstorage.
Currently works, but will fail if we move completely away from localStorage.
* Error handling for sd-core-sync crate
Also a bunch of tweaks and fixes
* Update core.ts
* Auto format
* Comment out background_processing_percentage on frontend too
- Update rust version in contributing
* Trying to avoid data loss on actor stop
* Stronger linter on sync generator
* Stronger lint on sync subcrate
* Clean back tasks.json file
* TS typechecking
* Autoformat
* Add more verbose errors for Cloud REST API
* Removing some comments
Copilot is fun sometimes lol
* Properly stopping actors
* Fix ingest stop
* Racing on stop for actors
* Error conversion from merge with main
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Arnab Chakraborty <11457760+Rocky43007@users.noreply.github.com>
* Backend done
* Forgot new migration
* track subscription in file kind stats
* Real time updates on both graphs at overview
---------
Co-authored-by: myung03 <matthewyungisworking@gmail.com>
* Done
* Bugged edge case when the root location only had directories
Also a bug on the get orphan queries, now a file_path is only unidentified if it doesn't has a object_id.
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* wip + working backfill
* Finished BackfillWaiting page + initial auth setup
Also, setting up the cloud sync page.
* mobile auth
* Import Cloud Library
Currently, you can import a cloud library, however it seems that the data, such as locations, is not transferring correctly.
* Working Mobile Cloud Sync
Cloud Sync works for Mobile, and the mobile app can sync files from a cloud library, and other clients can access the data from the phone's cloud library.
* Cloud Sync Done
* Formatting
* Fix new library button
* New device type passing to auth
* Improve design of cloud settings and import modal
* ui adjustments and code cleanup
* Update styling if there's only 1 instance
* code cleanup, design tweaks
* empty state & simple indicator animation
* lint
* loading indicator and cleanup
* Fix to Sync Subscription
* Update Cargo.lock
* Async logout for debug
* tweaks
* Update SettingsStack.tsx
* cleanups and cloud desktop design improvements
* more cleanups and ui improvements
* ts
* i18n
* Cloud Sync Docs
* styling
* Delete library-sync.mdx
Moving docs to a separate branch
---------
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
* First draft on task system usage, still missing job system
* Scan location roughly working, a ton of stuff to fix yet
* Updating some deps due to crashes and bugs
* Exposing non critical errors to frontend
* Getting active job reports from job system
* Using boxed opaque type to avoid a downcast issue with generics
* Task system issues discovered on race conditions
* Enable debug
* Fix job report in the job manager
* Fix race condition on steal tasks
* Fixed race condition on task suspend
* Some fixes on job progress reporting and save
* Fixed many race conditions and a hard deadlock
Also some progress report polishing
* Ignore .ts and .mts video files for now
* Some better logs
* bruh
* Internal deadlocks and excess of communication in the task system
- Also better logs
* Bunch of fixes and optimizations
* WIP at fixing file identifier
* Fixed file identifier job
- still need to work on its progress report frontend
* A bunch of polishing
* Fixed some bugs and did more polishing
* Cleanup
* Bridging old and new job systems
* A ton of fixes
* A bunch of bugs related to shutdown and resume
* Indexer and watcher bugs
* Log normalizing
* Fixing CI
* Change error! to warn! on non critical errors log
* Fix redirect to new location
* Type annotation
* Bogus merge resolution on cargo lock
* tags support wip
* Mob: tags in explorer, ui adjustments, add filter based on search click and more
* Fix tags scroll on filters
* Set heights so UI updates correctly
* Update Tags.tsx
* remove console logs
* remove console logs
* Update Locations.tsx
* type
* Update locations.rs
* make tags abit smaller
* list view visual improvements
* Remove plus
- Fix humanizeSize returning value as original (which was simply plain wrong), replace it with the original bytes
- Restore plural to humanizeSize, but only when converting object to string
- Fix float number to BigInt conversion in humanizeSize possibly causing an error (now it truncates the value)
- Remove unused profile.release from `apps/desktop/src-tauri/Cargo.toml`, repo's main Cargo.toml profile overrides it
- Update `packageManager` and remove conflicting `engineStrict` entry from package.json
- Remove `prefer-symlinked-executables` from `.npmrc`, linked bug was fixed
* initial ffprobe commit
* Working slim down version ffprobe
* Auto format ffprobe and deps source
* Remove show_pixel_formats logic
- Fix do_bitexact incorrect check in main after last changes
- Fix some clangd warning
* Remove show_* and print_format options and their respective logic
* Rework ffprobe into simple_ffprobe
- Simplify ffprobe logic into a simple program that gather and print a media file metadata
* Reduce the amount of ffmpeg log messages while generating thumbnails
* Fix completly wrong comments
* mend
* Start modeling ffmpeg extracted metadata on schema
- Start porting ffprobe code to rust
- Rename some references to media_data to exif_data
* Finish modeling media info data
- Add MediaProgram, MediaStream, MediaCodec, MediaVideoProps, MediaAudioProps, MediaSubtitleProps to Schema
- Fix simple_ffproble to use its custom print_codec, instead of ffmpeg's impl
* Add relation between MediaInfo and FilePath
- Remove shared properties from MediaInfo and related structs
- Implement Iterator for FFmpegDict
* Fix and update schema
* Data models and start populating MediaInfo in rust
* Finish populating media info, chapters and program
* Improve FFmpegFormatContext data raw pointer access
- Implement stream data gathering
* Impl FFmpegCodecContext, retrieve codec information
- Improve some unsafe pointer uses
- Impl from FFmpegFormatContext to MediaInfo conversion
* Fix FFmpegDict Drop
* Fix some crago warnings
* Impl retrieval of video props
- Fix C char* to Rust String convertion
* Impl retrieval of audio and subtitle props
- Fill props for MediaCodec
* Remove simple_ffprobe now that the Rust impl is done
* Fix schema to match actually retrieved media info
- Fix import some FFmpeg constants instead of directly using values
* Rework movie_decoder
- Re-implement create_scale_string and add support anamorphic video
- Improve C pointer access for FFmpegFormatContext and FFmpegCodecContext
- Use newer FFmpeg abstractions in movie_decoder
* Fix incorrect props when initializing MovieDecoder
* Remove unecessary lifetimes
* Added more native wrappers for some FFmpeg native objects used in movie_decoder
* Remove FFmpegPacket
- Some more improvements to movie_decoder
* WIP
* Some small fixes
* More fixes
Rename movie_decoder to frame_decoder
Remove more references to film_strips
* fmt
* Fix duplicate migration for job error changes
* fix rebase
* Solving segfaults, fuck C lang
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Update rust to version 1.77
- Pin rust version with rust-toolchain.toml
- Change from dtolnay/rust-toolchain to IronCoreLabs/rust-toolchain for rust-toolchain support
- Remove unused function and imports
- Replace most CString uses with new c literal string
* More segfault solving and other minor fixes
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Fix ffmpeg rotation filter breaking portrait video thumbnails #2150
- Plus some other misc fixes
* Auto format
* Retrieve video/audio metadata on frontend
* Auto format
* First draft on ffmpeg data save on db
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Fix some incorrect changes to prisma schema
* Some fixes for the FFmpegData schema
- Expand logic to save FFmpegData to db
* A ton of things
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Integrating ffmpeg media data in jobs and API
* Rspc can't BigInt
* 🙄
* Add initial ffmpeg metadata entries to Inspector
- Fix ephemeral metadata api to match the files metadata api call
* Fix Inspector not showing ffmpeg metadata
* Add bitrate, start time and chapters video metadata to Inspector
- Fix backend BigInt conversion incorrectly using i32 instead of u32
- Change FFmpegFormatContext/FFmpegMetaData bit_rate to i64
- Rename byteSize to humanizeSize
- Expand humanizeSize logic to allow handling bits and Binary units
- Move capitalize to @sd/client utils
* Solving some issues
* Fix ffmpeg probe getting incorrect stream id and breaking database unique constraint
- Fix humanizeSize breaking when receiving floating numbers
- Fix incorrect equality in StatCard
- Fix unhandled error in Dialog when trying to remove an unknown dialog
* fmt
* small improvements
- Remove some unecessary recursion_limit directive
- Remove unused app_image releated functions
- Fix metadata query enabled flag
* Add migration for ffmpeg media data
* Fix cypress test
* Requested changes
* Implement feedback
- Update locale keys for all languages
- Add pnpm command to update all language keys
* Fix thumb reactivity in non indexed locations
---------
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* pnpm
* hide search on some screens
* translations
* move shared order stuff to @sd/client
* some ideas
* wip - redesign otw
* Merge remote-tracking branch 'origin' into mob-35-explorer-sort-by
* header adjustments and more
---------
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Greatly improve production build size, now prod builds are 1/3 of the size
- Main spacedrive binary went from ~120M to ~40M
- Add more optimize options for rust prod build
- Improve vite settings for front-end prod build
- Improve lossless compression of PNGs
- Don't include videos in bundles when they are not used
- Don't generate/bundle sourcemap for prod builds
* Most of it
* Cleanup menu
* fixes
* Fixed linux compilation, still not working though, as the app panic on start
* Add dialog permissions
* fix search keybind
* Fix linux
∙ - Disable linux-ipc-protocol feature, as that is causing panics due to trying to access some WebKit internal structures outside the main thread
* Update to Ubuntu 22.04, new tauri doesn't support ubuntu 20.04
> - Add note to download page about deb's distro support
* Remove gen/schemas
* Update linux dependencies in setup.sh
* Fix linux deps again
- Enable rt-tokio-crypto-rust feature in secret-service so clippy stops complaining
* Clippy + auto fmt
* Fix cache-factory
- Create a devtools feature for desktop app, which is enabled by default on dev builds
* Fix minor error in patchTauri.mjs
* Fix some envvars that have been renamed on tauri v2
* Dont change the secrets
* Add missing linux dependency
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* added more translation keys
* added more keys
* added a lot of additional translation for every language available
* more translations
* fixed keys spelling