Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Local|Updates] Update check fails with 404 on legacy-v0.0.41 — allowPrerelease picks the first Atom feed entry

Aperta
#2,348 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
75/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
electron, github, typescript
Ambito
desktop, devops

Direzione di ricerca

Start with surfsense_local/electron/src/main/updater.ts and inspect attachUpdater around line 71, then trace how electron-updater chooses a GitHub release from the Atom feed. Add a regression test using a non-semver first feed entry and verify stable updates select the release with desktop manifests. The issue reports that v2.2.3 has both Linux manifests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

desktop
What happens

On a stable 2.2.3 desktop install (Linux, AppImage), Settings › About › "Check now" always fails:

Could not check for updates: Cannot find latest-linux.yml in the latest release artifacts
(https://github.com/MODSetter/SurfSense/releases/download/legacy-v0.0.41/latest-linux.yml): HttpError: 404
Why it happens
  1. surfsense_local/electron/src/main/updater.ts:71 sets updater.allowPrerelease = true for every build.
  2. app-update.yml ships channel: stable, but electron-updater's AppUpdater._channel starts as null (that key in app-update.yml is not copied into updater.channel), so GitHubProvider.getLatestVersion() takes the currentChannel === null branch while allowPrerelease === true: it uses the first entry of releases.atom, not the newest semver tag.
  3. releases.atom currently has legacy-v0.0.41 as its first entry (from the legacy-split work: #2339, #2340, #2341, updated 2026-10-24). That release ships no desktop artifacts — it is absent from GET /releases and GET /releases/tags/legacy-v0.0.41 returns 404 — so stable-linux.yml 404s and the latest-linux.yml fallback 404s too.
Verification
  • 2.2.3 is the latest release and both manifests exist:
    releases/download/v2.2.3/stable-linux.yml → 302, releases/download/v2.2.3/latest-linux.yml → 302.
  • curl https://github.com/MODSetter/SurfSense/releases.atom | head shows legacy-v0.0.41 first.
  • GET /repos/MODSetter/SurfSense/releases?per_page=100 → 42 releases, no legacy-* tag at all.
  • Because the check dies before any version comparison, the app never reports "up to date" — it always shows the 404. Affects every 2.2.3 install with update checks enabled (any platform on the GitHub provider).
Suggested fix

In attachUpdater, do not leave both "no explicit channel" and allowPrerelease in play:

  • for stable builds set updater.allowPrerelease = false and let getLatestTagName() resolve /releases/latest, or
  • set updater.channel = "latest" explicitly, and
  • skip Atom feed entries whose tag is not valid semver (legacy-v0.0.41 is not) before choosing one.

A regression test that stubs the Atom feed with a non-semver first entry would cover this.


Reported from Linux (Omarchy/Arch, Electron AppImage 2.2.3). Happy to re-test a build.

Lingua principale
Python
Stelle
16.3k
Fork
1.6k
Merge medio
16h 33m
PR unite (30g)
289

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di MODSetter/SurfSense

Tutte le issue di MODSetter/SurfSense

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.