From c26fc419338662b3e525b104475add7a4b8e29b2 Mon Sep 17 00:00:00 2001 From: mfishma Date: Mon, 22 Jun 2026 01:14:20 -0700 Subject: [PATCH 1/3] ffix: preserve literal '+' in deep link URI thru API call --- packages/app-lib/src/state/cache.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/app-lib/src/state/cache.rs b/packages/app-lib/src/state/cache.rs index ee180d32e4..b003c876f2 100644 --- a/packages/app-lib/src/state/cache.rs +++ b/packages/app-lib/src/state/cache.rs @@ -1102,8 +1102,13 @@ impl CachedEntry { .collect::>() .chunks(MAX_REQUEST_SIZE) .map(|chunk| { - serde_json::to_string(&chunk) - .map(|keys| format!("{api_url}{url}{keys}")) + serde_json::to_string(&chunk).map(|keys| { + format!( + "{api_url}{url}{}", + url::form_urlencoded::byte_serialize(keys.as_bytes()) + .collect::() + ) + }) }) .collect::, _>>()?; From 818f5b8e56c6b2d989bc432288a05cb44692d262 Mon Sep 17 00:00:00 2001 From: mfishma Date: Mon, 22 Jun 2026 01:16:09 -0700 Subject: [PATCH 2/3] chore: check for missing projects during installs --- .../app-frontend/src/providers/content-install.ts | 5 +++++ test.rs | Bin 0 -> 274 bytes test_encode.rs | Bin 0 -> 232 bytes 3 files changed, 5 insertions(+) create mode 100644 test.rs create mode 100644 test_encode.rs diff --git a/apps/app-frontend/src/providers/content-install.ts b/apps/app-frontend/src/providers/content-install.ts index 62314b23ea..091e8a9fb0 100644 --- a/apps/app-frontend/src/providers/content-install.ts +++ b/apps/app-frontend/src/providers/content-install.ts @@ -638,6 +638,11 @@ export function createContentInstall(opts: { ) { const project: Labrinth.Projects.v2.Project = await get_project(projectId, 'must_revalidate') + if (!project) { + opts.handleError(`Project not found: '${projectId}'`) + return + } + if (project.project_type === 'modpack') { const version = versionId ?? project.versions[project.versions.length - 1] const packs = await list() diff --git a/test.rs b/test.rs new file mode 100644 index 0000000000000000000000000000000000000000..e4bc1d2e2a266c596b7aaa57637b73f642cd6dfd GIT binary patch literal 274 zcmYL^OA5k35JcZv@D7?)f?{wRk(|P{L{uWg81m6Y$ko;A)+odLx~pEzyq;%DW?ad* z=oAv^)@v4=Xtj5mTisgkRvkuoF@b#u}e$%$)-ZQYi}Y*3w6; zL@#;BlTms0MoHC=QK&n2b}n`!YNCFxHDzGw+U%S4uLs`gL?2yy_tu_ZF6-Ib?UnZ9 K2+JLqGT{x)yDb+0 literal 0 HcmV?d00001 diff --git a/test_encode.rs b/test_encode.rs new file mode 100644 index 0000000000000000000000000000000000000000..a9fc1501b6145491da35517d664553c64442de43 GIT binary patch literal 232 zcmXwzQ4Rq?5Jc-+;tu@T5C=e9!l#kVVpcYpMa+;Ou8uctWm28$nyN~F-nEVzs8yu~ zHd4X%1ZQ1LNebvgew_O18Js3Kt~i2byjmxCtFqHPi5=Qr9%RQ>cO|w`k(rw-vW*^W sxp@toZurK=Hq0rWNaCN3c3pv Date: Mon, 22 Jun 2026 01:42:30 -0700 Subject: [PATCH 3/3] chore: remove accidental test files and quote error ID --- test.rs | Bin 274 -> 0 bytes test_encode.rs | Bin 232 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test.rs delete mode 100644 test_encode.rs diff --git a/test.rs b/test.rs deleted file mode 100644 index e4bc1d2e2a266c596b7aaa57637b73f642cd6dfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmYL^OA5k35JcZv@D7?)f?{wRk(|P{L{uWg81m6Y$ko;A)+odLx~pEzyq;%DW?ad* z=oAv^)@v4=Xtj5mTisgkRvkuoF@b#u}e$%$)-ZQYi}Y*3w6; zL@#;BlTms0MoHC=QK&n2b}n`!YNCFxHDzGw+U%S4uLs`gL?2yy_tu_ZF6-Ib?UnZ9 K2+JLqGT{x)yDb+0 diff --git a/test_encode.rs b/test_encode.rs deleted file mode 100644 index a9fc1501b6145491da35517d664553c64442de43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmXwzQ4Rq?5Jc-+;tu@T5C=e9!l#kVVpcYpMa+;Ou8uctWm28$nyN~F-nEVzs8yu~ zHd4X%1ZQ1LNebvgew_O18Js3Kt~i2byjmxCtFqHPi5=Qr9%RQ>cO|w`k(rw-vW*^W sxp@toZurK=Hq0rWNaCN3c3pv