From 626ff57e15c3b40c4f481f6d3cbefa38d122675e Mon Sep 17 00:00:00 2001
From: Fernando Maclen
+ Danger zone
- Version
-
-
Also check no browser extensions are blocking the connection.
{#if ollamaURL.protocol === 'https:'}If trying to connect to an Ollama server that is not available on diff --git a/src/routes/settings/Version.svelte b/src/routes/settings/Version.svelte index 5c19593a..39c1408d 100644 --- a/src/routes/settings/Version.svelte +++ b/src/routes/settings/Version.svelte @@ -19,11 +19,12 @@ const ONE_WEEK_IN_SECONDS = 604800; const isDesktop = env.PUBLIC_ADAPTER === 'electron-node'; - const isDocker = env.PUBLIC_ADAPTER !== 'docker-node'; + const isDocker = env.PUBLIC_ADAPTER === 'docker-node'; let latestVersion: string | null = null; let isCurrentVersionLatest = false; let isCheckingForUpdates = false; + let isError = false; async function checkForUpdates(isUserInitiated = false) { const oneWeekAgoInSeconds = getUnixTime(new Date()) - ONE_WEEK_IN_SECONDS; @@ -33,28 +34,35 @@ if (!isUserInitiated && $settingsStore.lastUpdateCheck > oneWeekAgoInSeconds) return; isCheckingForUpdates = true; - toast.loading('Checking for updates'); - try { - const githubRelease = await (await fetch(GITHUB_RELEASES_API)).json(); - latestVersion = githubRelease[0]?.tag_name; + // First we get the latest version from the GitHub releases API + const githubServerResponse = await fetch(GITHUB_RELEASES_API); + if (githubServerResponse.ok) { + const response = await githubServerResponse.json(); + latestVersion = response[0]?.tag_name; + } + + // If we didn't get a response from the GitHub releases API, we check if the + // current Hollama server has already been updated so we can prompt the user + // to refresh the page. + if (!latestVersion) { + const hollamaServerResponse = await fetch(`http://localhost:5173/api/metadata`); - if (!latestVersion) { - const thisHollamaServer = await (await fetch(`http://localhost:5173/api/metadata`)).json(); - latestVersion = thisHollamaServer?.currentVersion; + if (hollamaServerResponse.ok) { + const response = await hollamaServerResponse.json(); + latestVersion = response?.currentVersion; + } else { + isError = true; } - } catch (error) { - console.error(error); } + isCheckingForUpdates = false; + $settingsStore.lastUpdateCheck = getUnixTime(new Date()); + if (!latestVersion) return; isCurrentVersionLatest = semver.lt(latestVersion, version.replace('-dev', '')); - $settingsStore.lastUpdateCheck = getUnixTime(new Date()); - isCheckingForUpdates = false; } - $: console.log('isCurrentVersionLatest', isCurrentVersionLatest); - onMount(() => { checkForUpdates(); }); @@ -63,42 +71,76 @@