From 7b4598055edc1bf83ef92c99d7c029626f0472cd Mon Sep 17 00:00:00 2001 From: Andrew Mikofalvy <5668128+amikofalvy@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:27:00 -0700 Subject: [PATCH] fix(desktop): point "Download manually" link at GitHub Releases (#2340) The update-notice "Download manually" link (STUCK_HINT_DOWNLOAD_URL) pointed at https://inkeep.com/open-knowledge/download, which returns a 404. Point it at the GitHub Releases index where the signed DMGs are actually published, matching releaseUrlFor and the app's OK_DESKTOP_INSTALL_URL. Also update the stale test fixtures that referenced the old URL. GitOrigin-RevId: aca10617dd1d6f1c9605dc70546af67af3f2d48a --- .changeset/fix-download-manually-link.md | 5 +++++ packages/app/src/components/UpdateNotices.test.ts | 6 +++--- packages/desktop/src/main/auto-updater.ts | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .changeset/fix-download-manually-link.md diff --git a/.changeset/fix-download-manually-link.md b/.changeset/fix-download-manually-link.md new file mode 100644 index 000000000..aace8240f --- /dev/null +++ b/.changeset/fix-download-manually-link.md @@ -0,0 +1,5 @@ +--- +"@inkeep/open-knowledge": patch +--- + +Fix the "Download manually" link in OK Desktop's update notices. When an update fails to install (the "Update to X didn't install" card) or the app detects it hasn't received updates in a while, the manual-download link now points at the GitHub Releases page (https://github.com/inkeep/open-knowledge/releases) where the signed DMGs actually live, instead of a marketing URL that returned a 404. diff --git a/packages/app/src/components/UpdateNotices.test.ts b/packages/app/src/components/UpdateNotices.test.ts index 7fcec821d..e11e301cd 100644 --- a/packages/app/src/components/UpdateNotices.test.ts +++ b/packages/app/src/components/UpdateNotices.test.ts @@ -256,7 +256,7 @@ describe('Notice A cross-window relaunch — ok:update:relaunching', () => { attachUpdateSubscribers(castBridge(bridge), addNotice); bridge._relaunchFailed?.({ version: '0.16.0-beta.3', - downloadUrl: 'https://inkeep.com/open-knowledge/download', + downloadUrl: 'https://github.com/inkeep/open-knowledge/releases', }); const notice = addNotice.mock.calls.at(-1)?.[0] as UpdateNotice; expect(notice.id).toBe('install-failed-0.16.0-beta.3'); @@ -270,7 +270,7 @@ describe('Notice A cross-window relaunch — ok:update:relaunching', () => { const bridge = makeFakeBridge(); const addNotice = mock<(notice: UpdateNotice) => void>(() => {}); attachUpdateSubscribers(castBridge(bridge), addNotice); - const url = 'https://inkeep.com/open-knowledge/download'; + const url = 'https://github.com/inkeep/open-knowledge/releases'; bridge._relaunchFailed?.({ version: '0.16.0-beta.3', downloadUrl: url }); const notice = addNotice.mock.calls.at(-1)?.[0] as UpdateNotice; notice.action?.onClick(); @@ -613,7 +613,7 @@ describe('Notice C — ok:update:stuck-hint', () => { const bridge = makeFakeBridge(); const addNotice = mock<(notice: UpdateNotice) => void>(() => {}); attachUpdateSubscribers(castBridge(bridge), addNotice); - const downloadUrl = 'https://inkeep.com/open-knowledge/download'; + const downloadUrl = 'https://github.com/inkeep/open-knowledge/releases'; bridge._stuckHint?.({ downloadUrl }); expect(addNotice).toHaveBeenCalledTimes(1); const notice = addNotice.mock.calls[0]?.[0] as UpdateNotice; diff --git a/packages/desktop/src/main/auto-updater.ts b/packages/desktop/src/main/auto-updater.ts index 13580b473..136209800 100644 --- a/packages/desktop/src/main/auto-updater.ts +++ b/packages/desktop/src/main/auto-updater.ts @@ -127,7 +127,7 @@ export const RELAUNCH_WATCHDOG_MS = 15_000; export const STUCK_HINT_THRESHOLD_MS = 7 * 24 * 60 * 60 * 1000; -export const STUCK_HINT_DOWNLOAD_URL = 'https://inkeep.com/open-knowledge/download'; +export const STUCK_HINT_DOWNLOAD_URL = 'https://github.com/inkeep/open-knowledge/releases'; const WHATS_NEW_LIVE_WINDOW_MS = 60_000;