thumbs: a changed `preview:` pin or source URL never refreshes the stored image, and a source that keeps failing keeps its old image forever
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 57/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript
Piste de recherche
Start with site/lib/thumbs.mjs around needsFetch() (117–124), then read the fetch failure and prune paths in site/thumbs.mjs (218–248) and the validator note in site/checks.mjs (798–800). Run the relevant cases in lib.test.mjs and a dry run with a changed preview: pin. Done means source and pin changes trigger fetching, repeated failures eventually drop stale records and files, and each manifest source matches its entry URL.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Why it matters
site/thumbs.json decides which publisher image the site shows. If a contributor repoints preview: at a better image, or an entry's url moves, the old picture stays on the entry page, the card and the hero filmstrip for up to 180 days. If a source starts returning 404, the old image is republished at every build with no expiry at all.
Evidence (at 69387df)
site/lib/thumbs.mjs:117-124needsFetch()compares onlyrecord.licenseandrecord.fetched. Verified: a record whosesourceandimagediffer from the entry still returnsfalsewhen the licence matches andfetchedis recent.source,imageandpinnedare stored (site/thumbs.mjs:138-139) but never read back.site/thumbs.mjs:218-227: on a fetch failure the old record and.webpare kept; the prune at 245-248 only removes files with no record. Nothing counts consecutive failures.site/checks.mjs:798-800says the record "is otherwise not compared with the entry", so the validator will not catch it.
Suggested approach
In needsFetch, also return true when record.source !== entry.url, when the pinned flag no longer matches whether preview: is an https:// URL, or when a pinned record's image !== entry.preview. Add a failures counter (or lastTried) to the record; after N failed runs, or when fetched is older than 2 x maxAgeDays, drop the record and file so the tile falls back to the typographic one, and report the drop in the run summary. A one-line validator check can enforce record.source === entry.url.
Done when
lib.test.mjs covers "source changed", "pin added/removed/changed" and "stale after repeated failure"; a dry run with a repointed preview: lists that entry under Fetched; the manifest's source always equals the entry's url.
- Langage dominant
- JavaScript
- Étoiles
- 58
- Forks
- 15
- Merge moyen
- 16 h 53 min
- PR mergées (30 j)
- 14
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TMHSDigital/Free-Game-Dev-Assets
-
community marketing priority: low
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation priority: medium
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 1/5 1-3 heures Accessibilité débutants 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
marketing priority: low
Difficulté 2/5 1-3 heures Accessibilité débutants 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
Les mainteneurs répondent en général sous 1 jour
-
feature priority: medium
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
TMHSDigital/Free-Game-Dev-Assets#144 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de TMHSDigital/Free-Game-Dev-Assets
Issues similaires
-
Clinic sharing: fast sync refusal message suggests Delete Data, which only developer builds haveOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
avniproject/avni-client#2228 ·
-
bug confirmed issue
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
open-webui/open-webui#33196 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
`printf "%o"` prints decimalOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
fable-compiler/Fable#5157 ·
Les mainteneurs répondent en général sous 1 jour
-
New tool: PaperBananaPeut-être pris @github-actions l’a pris aujourd’hui. Ouvertesubmission triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
kausalflow/tools#243 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area: apple-music area: build-release bug effort: small priority: high
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
ChristianTabor/Argon#32 ·
Les mainteneurs répondent en général sous 1 jour