From 5ad005161f631b9660f2c9b83d74a70aa3b21a12 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Tue, 20 Jan 2026 00:40:48 +0000 Subject: [PATCH] Depot API & executor launch (#173) * feat: depot api downloads * feat: frontend fixes and experimental webview store * feat: sync downloader * feat: cleanup and fixes * feat: encrypted database and fixed resuming * feat: launch option selector * fix: autostart when no options * fix: clippy * fix: clippy x2 * feat: executor launch * feat: executor launch * feat: not installed error handling * feat: better offline handling * feat: dependency popup * fix: cancelation and resuming issues * feat: dedup by platform * feat: new ui for additional components and fix dl manager clog * feat: auto-queue dependencies * feat: depot scanning and ranking * feat: new library fetching stack * In-app store page (Windows + macOS) (#176) * feat: async store loading * feat: fix overscroll behaviour * fix: query params in server protocol * fix: clippy --- libs/drop-base | 2 +- main/app.vue | 9 +- main/assets/main.scss | 1 + main/components/DependencyRequiredModal.vue | 106 + main/components/InstallDirectorySelector.vue | 87 + main/components/LibrarySearch.vue | 91 +- main/components/OfflineHeaderWidget.vue | 10 +- main/composables/downloads.ts | 16 +- main/composables/game.ts | 27 +- main/composables/use-object.ts | 2 +- main/package.json | 2 +- main/pages/library/[id]/index.vue | 306 ++- main/pages/queue.vue | 19 +- main/pages/store/index.vue | 31 +- main/pnpm-lock.yaml | 14 +- main/types.ts | 2 + nvidia-prop-dev.sh | 2 +- src-tauri/Cargo.lock | 1839 ++++++++++------- src-tauri/Cargo.toml | 220 +- src-tauri/client/Cargo.toml | 12 +- src-tauri/client/src/app_state.rs | 10 + src-tauri/client/src/lib.rs | 1 + src-tauri/database/Cargo.toml | 8 +- src-tauri/database/src/db.rs | 38 +- src-tauri/database/src/interface.rs | 107 +- src-tauri/database/src/models.rs | 341 ++- src-tauri/database/src/platform.rs | 2 +- src-tauri/download_manager/Cargo.toml | 7 +- .../download_manager/src/depot_manager.rs | 144 ++ .../src/download_manager_builder.rs | 141 +- .../src/download_manager_frontend.rs | 60 +- .../download_manager/src/downloadable.rs | 10 +- src-tauri/download_manager/src/error.rs | 2 + src-tauri/download_manager/src/lib.rs | 3 +- src-tauri/download_manager/src/util/mod.rs | 1 + .../src/util/progress_object.rs | 29 +- .../download_manager/src/util/semaphore.rs | 28 + src-tauri/games/Cargo.toml | 31 +- src-tauri/games/src/collections/collection.rs | 8 +- .../games/src/downloads/download_agent.rs | 533 ++--- .../games/src/downloads/download_logic.rs | 309 +-- src-tauri/games/src/downloads/drop_data.rs | 16 +- src-tauri/games/src/downloads/manifest.rs | 52 - src-tauri/games/src/downloads/mod.rs | 3 +- src-tauri/games/src/downloads/validate.rs | 104 - src-tauri/games/src/lib.rs | 1 + src-tauri/games/src/library.rs | 72 +- src-tauri/games/src/scan.rs | 7 +- src-tauri/games/src/state.rs | 12 +- src-tauri/process/Cargo.toml | 15 +- src-tauri/process/src/error.rs | 19 +- src-tauri/process/src/format.rs | 5 + src-tauri/process/src/lib.rs | 2 + src-tauri/process/src/parser.rs | 50 + src-tauri/process/src/process_handlers.rs | 39 +- src-tauri/process/src/process_manager.rs | 258 ++- src-tauri/remote/Cargo.toml | 21 +- src-tauri/remote/src/error.rs | 23 +- src-tauri/remote/src/fetch_object.rs | 2 +- src-tauri/remote/src/lib.rs | 4 + src-tauri/remote/src/requests.rs | 17 +- src-tauri/remote/src/server_proto.rs | 94 +- src-tauri/remote/src/utils.rs | 80 +- src-tauri/src/client.rs | 27 +- src-tauri/src/collections.rs | 116 +- src-tauri/src/download_manager.rs | 16 +- src-tauri/src/downloads.rs | 88 +- src-tauri/src/games.rs | 236 ++- src-tauri/src/lib.rs | 104 +- src-tauri/src/process.rs | 62 +- src-tauri/tauri.conf.json | 4 +- src-tauri/utils/src/download_manager_send.rs | 2 +- 72 files changed, 3430 insertions(+), 2732 deletions(-) create mode 100644 main/components/DependencyRequiredModal.vue create mode 100644 main/components/InstallDirectorySelector.vue create mode 100644 src-tauri/download_manager/src/depot_manager.rs create mode 100644 src-tauri/download_manager/src/util/semaphore.rs delete mode 100644 src-tauri/games/src/downloads/validate.rs create mode 100644 src-tauri/process/src/parser.rs diff --git a/libs/drop-base b/libs/drop-base index 04125e8..14f4e3e 160000 --- a/libs/drop-base +++ b/libs/drop-base @@ -1 +1 @@ -Subproject commit 04125e89bef517411e103cdabcfa64a1bb563423 +Subproject commit 14f4e3e20b9abe41d9561d580060cf3578149640 diff --git a/main/app.vue b/main/app.vue index 1594dd6..5ae90e1 100644 --- a/main/app.vue +++ b/main/app.vue @@ -1,5 +1,5 @@ + + + + +