diff --git a/docs/janos_flash.html b/docs/janos_flash.html index 805e9e4..ff991d8 100644 --- a/docs/janos_flash.html +++ b/docs/janos_flash.html @@ -320,6 +320,7 @@

Browser support

const state = { manifest: null, + latestRelease: null, files: [], port: null, transport: null, @@ -366,7 +367,7 @@

Browser support

} catch {} let cleaned = path.startsWith("/") ? path.slice(1) : path; const branch = getBranch(); - if (branch !== "main" && cleaned.startsWith("firmware/")) { + if (cleaned.startsWith("firmware/")) { cleaned = cleaned.replace(/^firmware\//, "ESP32C5/binaries-esp32c5/"); } return `https://raw.githubusercontent.com/C5Lab/projectZero/${branch}/${cleaned}`; @@ -395,6 +396,13 @@

Browser support

return next; }; + const fetchLatestRelease = async () => { + const apiUrl = "https://api.github.com/repos/C5Lab/projectZero/releases/latest"; + const res = await fetch(apiUrl, { cache: "no-store" }); + if (!res.ok) throw new Error(`GitHub release fetch failed: ${res.status} ${res.statusText}`); + return res.json(); + }; + const loadManifest = async () => { try { const manifestUrl = getManifestUrl(); @@ -403,10 +411,21 @@

Browser support

const manifestRaw = await res.json(); const manifest = rewritePartsForBranch(manifestRaw, getBranch()); state.manifest = manifest; + let releaseLabel = manifest.version || "n/a"; + if (getBranch() === "main") { + try { + const release = await fetchLatestRelease(); + state.latestRelease = release; + releaseLabel = release.tag_name || release.name || releaseLabel; + } catch (err) { + console.warn(err); + } + } ui.manifest.style.display = "inline-flex"; - ui.manifest.textContent = `Build ${manifest.build || "n/a"} - ${manifest.version || "n/a"} - ${getBranch()}`; + ui.manifest.textContent = `Build ${manifest.build || "n/a"} - ${releaseLabel} - ${getBranch()}`; const files = (manifest.parts || []).length; - ui.releaseInfo.innerHTML = `Manifest ${manifest.name || "projectZero"} - ${files} file(s) - chip ${manifest.chipFamily || "ESP32-C5"} - ${getBranch()}`; + const releaseText = state.latestRelease ? ` - latest ${releaseLabel}` : ""; + ui.releaseInfo.innerHTML = `Manifest ${manifest.name || "projectZero"}${releaseText} - ${files} file(s) - chip ${manifest.chipFamily || "ESP32-C5"} - ${getBranch()}`; setStatus("Manifest loaded."); } catch (err) { setStatus("Manifest not found. Publish a release first.", "error");