From b3e5de4a4d8a6c67899de6b85d8a0392286a86eb Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 14 Sep 2026 14:39:25 -0400 Subject: [PATCH] Fix cache separation for versions --- server/routers/newt/getNewtVersion.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server/routers/newt/getNewtVersion.ts b/server/routers/newt/getNewtVersion.ts index afc087213..d0aac581d 100644 --- a/server/routers/newt/getNewtVersion.ts +++ b/server/routers/newt/getNewtVersion.ts @@ -21,10 +21,10 @@ type ReleaseInfo = { // Cache key holding the last known good release info. It never expires, so // it keeps serving if GitHub is unreachable, even across restarts/nodes. -const RELEASE_INFO_KEY = "cache:newtReleaseInfo"; +const RELEASE_INFO_KEY = "cache:releaseInfo"; // Short-lived marker controlling how often we re-check GitHub. While it's // missing (expired, or a previous attempt failed) every request retries. -const RELEASE_INFO_FRESH_KEY = "cache:newtReleaseInfoFresh"; +const RELEASE_INFO_FRESH_KEY = "cache:releaseInfoFresh"; const RELEASE_INFO_REFRESH_SECONDS = 3600; /** @@ -35,8 +35,8 @@ const RELEASE_INFO_REFRESH_SECONDS = 3600; * subsequent request retries GitHub until it succeeds again. */ async function getLatestReleaseInfo(repo: string): Promise { - const stored = await cache.get(RELEASE_INFO_KEY); - const isFresh = await cache.has(RELEASE_INFO_FRESH_KEY); + const stored = await cache.get(`${RELEASE_INFO_KEY}:${repo}`); + const isFresh = await cache.has(`${RELEASE_INFO_FRESH_KEY}:${repo}`); if (stored && isFresh) { return stored; } @@ -61,7 +61,7 @@ async function getLatestReleaseInfo(repo: string): Promise { let releases: any[] = await fetchResponse.json(); if (!Array.isArray(releases) || releases.length === 0) { - logger.warn("No releases found for Newt repository"); + logger.warn("No releases found for repository"); return stored ?? null; } @@ -90,7 +90,7 @@ async function getLatestReleaseInfo(repo: string): Promise { }); if (releases.length === 0) { - logger.warn("No stable releases found for Newt repository"); + logger.warn("No stable releases found for repository"); return stored ?? null; } @@ -298,7 +298,7 @@ export async function getNewtVersion( ? `pangolin-cli_${platform}.exe` : `pangolin-cli_${platform}`; - const downloadUrl = `https://github.com/fosrl/newt/releases/download/${agent == "cli" ? releaseInfoCli?.version : releaseInfoNewt.version}/${agent == "cli" ? binaryNameCli : binaryNameNewt}`; + const downloadUrl = `https://github.com/fosrl/${agent}/releases/download/${agent == "cli" ? releaseInfoCli?.version : releaseInfoNewt.version}/${agent == "cli" ? binaryNameCli : binaryNameNewt}`; // Look up the SHA256 digest for this specific binary from the GitHub // release asset metadata (the `digest` field, format "sha256:").