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;