From 67ca4f1e204ad0e2d1dd30f50622e81f5b18b137 Mon Sep 17 00:00:00 2001 From: Mr_chank <180248271+chank-op@users.noreply.github.com> Date: Sun, 10 May 2026 18:00:07 +1000 Subject: [PATCH 1/2] fix: add download attribute to fix JAR files saving as ZIP in Chromium - JAR files were downloading with a `.zip` extension in Chromium-based browsers (Chrome, Edge, Arc, Brave, Opera, Vivaldi) - Root cause: JAR files are ZIP archives internally, so Chromium sniffs the `Content-Type` as `application/zip` and overrides the filename extension when no `download` attribute is present - Fix: add `download=""` to all file download `` tags so the browser uses the original filename from the API --- .../src/pages/[type]/[id]/version/[version].vue | 2 ++ apps/frontend/src/pages/[type]/[id]/versions.vue | 1 + .../ui/src/components/version/VersionSummary.vue | 16 +++++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/frontend/src/pages/[type]/[id]/version/[version].vue b/apps/frontend/src/pages/[type]/[id]/version/[version].vue index 52fdc553a0..68a10f6822 100644 --- a/apps/frontend/src/pages/[type]/[id]/version/[version].vue +++ b/apps/frontend/src/pages/[type]/[id]/version/[version].vue @@ -140,6 +140,7 @@ - + @@ -42,12 +47,17 @@ const props = defineProps<{ decorateDownloadUrl?: (url: string) => string }>() +const primaryFile = computed( + () => props.version.files.find((x) => x.primary) || props.version.files[0], +) + const downloadUrl = computed(() => { - const primary: VersionFile = props.version.files.find((x) => x.primary) || props.version.files[0] - const raw = primary.url + const raw = primaryFile.value.url return props.decorateDownloadUrl ? props.decorateDownloadUrl(raw) : raw }) +const primaryFilename = computed(() => primaryFile.value.filename) + const emit = defineEmits<{ onDownload: [] onNavigate: [url: string] From 7eac65cd447696bbc157b72dfdb5964e03ae8b51 Mon Sep 17 00:00:00 2001 From: Mr_chank <180248271+chank-op@users.noreply.github.com> Date: Mon, 11 May 2026 09:24:24 +1000 Subject: [PATCH 2/2] fix: add download attribute to remaining download links Missed in initial pass: changelog page button, versions overflow menu, settings/versions overflow menu. Also adds `download` prop to Button and OverflowMenu to support dropdown link items. Adds missing `getPrimaryFile` definition in changelog.vue. --- apps/frontend/src/pages/[type]/[id]/changelog.vue | 5 +++++ apps/frontend/src/pages/[type]/[id]/settings/versions.vue | 1 + apps/frontend/src/pages/[type]/[id]/versions.vue | 1 + packages/ui/src/components/base/Button.vue | 5 +++++ packages/ui/src/components/base/OverflowMenu.vue | 2 ++ 5 files changed, 14 insertions(+) diff --git a/apps/frontend/src/pages/[type]/[id]/changelog.vue b/apps/frontend/src/pages/[type]/[id]/changelog.vue index f5f34b6f66..cd85b5cac2 100644 --- a/apps/frontend/src/pages/[type]/[id]/changelog.vue +++ b/apps/frontend/src/pages/[type]/[id]/changelog.vue @@ -57,6 +57,7 @@