From d49e7d3654034289b5fa9c5a8ca6d2292f42101a Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 25 Sep 2026 15:23:08 +0200 Subject: [PATCH] =?UTF-8?q?Updater:=20meldet=20fehlendes=20Release=20statt?= =?UTF-8?q?=20'aktuell',=20vergleicht=20zus=C3=A4tzlich=20mit=20Version=20?= =?UTF-8?q?im=20Repository?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- src/main/updater.js | 10 +++++++++- src/renderer/app.js | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/updater.js b/src/main/updater.js index 4ee55f3..6d4deed 100644 --- a/src/main/updater.js +++ b/src/main/updater.js @@ -64,12 +64,20 @@ class Updater { const allowPre = this.store.get().settings.updatePrerelease; const rel = (await res.json()).find((r) => !r.draft && (allowPre || !r.prerelease)); const current = app.getVersion(); - if (!rel) return { current, available: false }; + // Version im Quellcode (Standard-Branch) – zeigt an, wenn Code neuer ist als das letzte Release + let repoVersion = null; + try { + const pj = await fetch(`${base}/api/v1/repos/${owner}/${repo}/raw/package.json`, { headers: this.headers() }); + if (pj.ok) repoVersion = (await pj.json()).version || null; + } catch { /* optional */ } + const newerInRepo = repoVersion && cmpVersion(repoVersion, current) > 0 && (!rel || cmpVersion(repoVersion, rel.tag_name) > 0) ? repoVersion : null; + if (!rel) return { current, available: false, noRelease: true, repoVersion: newerInRepo }; const kind = installKind(); const asset = pickAsset(rel.assets || [], kind); this.latest = { version: rel.tag_name.replace(/^v/i, ''), notes: rel.body || '', url: rel.html_url, asset, kind }; return { current, + repoVersion: newerInRepo, available: cmpVersion(rel.tag_name, current) > 0, version: this.latest.version, notes: this.latest.notes, diff --git a/src/renderer/app.js b/src/renderer/app.js index ea94f6f..fb1b484 100644 --- a/src/renderer/app.js +++ b/src/renderer/app.js @@ -731,7 +731,10 @@ async function viewSettings(page) { const chk = h(``); chk.onclick = async () => { chk.disabled = true; - try { await save(formValues(updFields)); const r = await call('update:check'); if (r.available) showUpdate(r); else toast(`MrTerm ist aktuell (${r.current}).`, 'ok'); } catch {} + try { await save(formValues(updFields)); const r = await call('update:check'); if (r.available) showUpdate(r); + else if (r.repoVersion) toast(`Im Repository liegt Version ${r.repoVersion}, aber dafür gibt es noch kein Release mit Installationspaketen. Installiert: ${r.current}.`, 'error'); + else if (r.noRelease) toast('Im Repository gibt es noch keine Releases.', 'error'); + else toast(`MrTerm ist aktuell (${r.current}).`, 'ok'); } catch {} chk.disabled = false; }; updCard.append(updFields, chk);