-
v3.3.1
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 8sreleased this
2026-10-11 22:31:30 +02:00 | 1 commits to main since this releaseChanged
- Pulsante "Automatic" → "Use WordPress.org" (IT "Usa WordPress.org"), tooltip "Forced to Forgejo. Go back to updates from WordPress.org". Il pulsante (canale
autodopo "Use Forgejo") non cambia comportamento. "Automatic" era ambiguo: l'utente l'ha letto come Automattic, la società; ora è simmetrico a "Use Forgejo". Caso limite non coperto dall'etichetta: se il plugin esce da WordPress.org mentre è forzato su Forgejo, il ritorno adautolo lascia su Forgejo. - Link "Documentation" (riga del plugin e footer della pagina admin) verso la pagina del plugin sul sito invece che verso il repository:
eg_forgejo_updater_docs_url(), URL traducibile (EN/en/plugins/eg-forgejo-updater/, IT/plugin/eg-forgejo-updater/), come in eg-social-timeline ed eg-repo-card. "Repository" resta sul repo.
Fixed
CHANGELOG.md: titolo della sezione 3.2.0 rotto (- 2026-10-11senza## [3.2.0]).
Why
- Pagine del plugin pubblicate l'11 ottobre (41238/41239); l'etichetta è emersa rileggendo la sezione "Plugin presenti anche su WordPress.org".
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Pulsante "Automatic" → "Use WordPress.org" (IT "Usa WordPress.org"), tooltip "Forced to Forgejo. Go back to updates from WordPress.org". Il pulsante (canale
-
v3.3.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 8sreleased this
2026-10-11 19:57:45 +02:00 | 2 commits to main since this releaseAdded
- Compatibilità nell'oggetto di aggiornamento (
inject_updates()):requires,requires_phpetesteddalreadme.txtdella release, prima usati solo nella scheda "Visualizza dettagli". WordPress ora mostra l'avviso di incompatibilità, disattiva il pulsante e salta l'auto-update se PHP o WordPress non bastano. Idea dal confronto con Git Updater, che li passa. - Icona (
images/icon.svg) nell'oggetto di aggiornamento: in Bacheca → Aggiornamenti i plugin gestiti non hanno più l'icona grigia generica. Servita dal sito: niente icona geometrica dis.w.org(il browser avrebbe mandato a WordPress.org i nomi dei plugin privati) né icone dal repo (illeggibili dal browser nei repo privati, e una richiesta in più per plugin).
Fixed
-
"Questo plugin non è stato testato con la tua versione di WordPress" sulla 3.2.0 in produzione (WP 7.1.3,
Tested up to: 7.1): WordPress confronta7.1.3 <= 7.1, falso. WordPress.org restituisce invece l'ultima minor della major dichiarata.normalize_tested(): seTested up toè solo major e coincide con quella del sito, restituisce la versione del sito. Usata sia nella scheda sia nell'oggetto di aggiornamento. -
clear_cache()svuota solo i plugin appena aggiornati ($options['plugins']/$options['plugin']) invece di tutti: il controllo successivo faceva ripartire insieme le richieste di ogni plugin e il rate limit di NPM rispondeva 503. "Controlla ora" continua a svuotare tutto. -
2026-10-11
Added
- Cestino (ultima colonna): per i plugin disattivati porta alla conferma nativa di WordPress (
plugins.php?action=delete-selected&checked[]=…, noncebulk-plugins), che elenca i file ed esegueuninstall.php. Plugin attivo → cestino grigio con "Deactivate the plugin first" (WordPress filtra comunque i plugin attivi). Niente cestino per l'updater stesso e senzadelete_plugins(che copre ancheDISALLOW_FILE_MODS). - Istanza in tabella: sotto
owner/repo, l'host in grigio. - Anteprima, passo "Update source" (avviso giallo, non blocca): l'header punta a un repository diverso da quello da cui si installa, e gli aggiornamenti seguiranno l'header. La checklist ha ora lo stato
warn. - Anteprima, cartella già esistente: se
wp-content/plugins/<repo>/c'è già, la checklist si ferma subito (prima WordPress falliva dopo aver scaricato lo zip, con un errore generico).
Fixed
- Anteprima: il file principale e il ripiego sul branch usano il
default_branchdel repo (dal passo 3, nessuna richiesta in più) invece dimainfisso.Primary Branchnell'header resta prioritario. - Il passo "Forgejo Updater compatibility" nomina l'header trovato davvero (
Gitea Plugin URIcompariva comeForgejo Plugin URI). - Anteprima: un header nel vecchio formato breve (
owner/repo), che l'updater dalla 3.0.0 non legge, ora ferma l'installazione con un errore chiaro ("Update source"); prima il plugin si sarebbe installato senza mai ricevere aggiornamenti. Caso reale: eg-ranking-repo. L'anteprima usa lo stesso parser dell'updater (EG_Forgejo_Updater::parse_repo_uri(), ora statico e pubblico). - Il messaggio "file principale non trovato" dice in quale branch ha cercato.
Docs
- readme FAQ e README: istanze che non generano archivi (forgejo.it risponde 500 a ogni
/archive/): lì servono release con lo zip allegato.
Verified
handle_preview()eseguita davvero come amministratore (redirect intercettato): repotest da forgejo.it → "Destination folder" e stop senza richieste; eg-ranking-repo con header breve reale → errore "Update source"; header falsato verso forgejo.it → avviso giallo, anteprima pronta; header uguale con maiuscole e slash finale → nessun avviso;default_branchsimulato adevelop→ file letto da?ref=develop.
Why
- Emerso dall'installazione di repotest da forgejo.it (11 ottobre): header che puntava a git.emanuelegori.uno, file principale rinominato, archivi in errore. Il cestino è una richiesta dell'utente.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Compatibilità nell'oggetto di aggiornamento (
-
v3.2.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 7sreleased this
2026-10-11 19:13:31 +02:00 | 3 commits to main since this releaseAdded
- Cestino (ultima colonna): per i plugin disattivati porta alla conferma nativa di WordPress (
plugins.php?action=delete-selected&checked[]=…, noncebulk-plugins), che elenca i file ed esegueuninstall.php. Plugin attivo → cestino grigio con "Deactivate the plugin first" (WordPress filtra comunque i plugin attivi). Niente cestino per l'updater stesso e senzadelete_plugins(che copre ancheDISALLOW_FILE_MODS). - Istanza in tabella: sotto
owner/repo, l'host in grigio. - Anteprima, passo "Update source" (avviso giallo, non blocca): l'header punta a un repository diverso da quello da cui si installa, e gli aggiornamenti seguiranno l'header. La checklist ha ora lo stato
warn. - Anteprima, cartella già esistente: se
wp-content/plugins/<repo>/c'è già, la checklist si ferma subito (prima WordPress falliva dopo aver scaricato lo zip, con un errore generico).
Fixed
- Anteprima: il file principale e il ripiego sul branch usano il
default_branchdel repo (dal passo 3, nessuna richiesta in più) invece dimainfisso.Primary Branchnell'header resta prioritario. - Il passo "Forgejo Updater compatibility" nomina l'header trovato davvero (
Gitea Plugin URIcompariva comeForgejo Plugin URI). - Anteprima: un header nel vecchio formato breve (
owner/repo), che l'updater dalla 3.0.0 non legge, ora ferma l'installazione con un errore chiaro ("Update source"); prima il plugin si sarebbe installato senza mai ricevere aggiornamenti. Caso reale: eg-ranking-repo. L'anteprima usa lo stesso parser dell'updater (EG_Forgejo_Updater::parse_repo_uri(), ora statico e pubblico). - Il messaggio "file principale non trovato" dice in quale branch ha cercato.
Docs
- readme FAQ e README: istanze che non generano archivi (forgejo.it risponde 500 a ogni
/archive/): lì servono release con lo zip allegato.
Verified
handle_preview()eseguita davvero come amministratore (redirect intercettato): repotest da forgejo.it → "Destination folder" e stop senza richieste; eg-ranking-repo con header breve reale → errore "Update source"; header falsato verso forgejo.it → avviso giallo, anteprima pronta; header uguale con maiuscole e slash finale → nessun avviso;default_branchsimulato adevelop→ file letto da?ref=develop.
Why
- Emerso dall'installazione di repotest da forgejo.it (11 ottobre): header che puntava a git.emanuelegori.uno, file principale rinominato, archivi in errore. Il cestino è una richiesta dell'utente.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Cestino (ultima colonna): per i plugin disattivati porta alla conferma nativa di WordPress (
-
v3.1.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 7sreleased this
2026-10-11 16:45:17 +02:00 | 4 commits to main since this releaseAdded
- Colonna Installata: sotto la versione, la data in cui il plugin è stato installato o aggiornato l'ultima volta su questo sito (
filemtime()del file principale), formattata conwp_date()e il formato data del sito; data e ora nel tooltip. Nessuna richiesta HTTP; vale anche per i plugin di WordPress.org. Senza data leggibile resta solo la versione.
Why
- Scelta dell'utente fra due date: installazione sul sito (gratis) e pubblicazione della versione (gratis solo se installata = remota, altrimenti una richiesta in più per plugin contro il rate limit di NPM). Data dentro la colonna esistente e non in una colonna nuova: la tabella ha già 6 colonne a larghezza fissa, e un titolo "il" non si traduce.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Colonna Installata: sotto la versione, la data in cui il plugin è stato installato o aggiornato l'ultima volta su questo sito (
-
v3.0.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 10sreleased this
2026-10-11 16:03:49 +02:00 | 5 commits to main since this releaseChanged
- Token per istanza:
EG_FORGEJO_UPDATER_TOKENSinwp-config.php, mappahttps://host[:porta]→ token. Più istanze Forgejo/Gitea insieme senza configurazione per plugin: l'istanza di ogni plugin si ricava dall'URL nell'header. Chiavi normalizzate (schema https obbligatorio, host minuscolo, percorso e slash ignorati, porta 443 implicita); voci non valide scartate e contate nel pannello. - Il token va solo alla sua istanza (confronto esatto di schema, host e porta) e solo con le richieste dell'updater: le chiamate API lo prendono da
EG_Forgejo_Updater_API::request_args(); il filtrohttp_request_argslo allega solo agli URL dei pacchetti scelti dall'updater (download in cache dei plugin gestiti, o quello in installazione viaEG_Forgejo_Updater::allow_package()), e con il token spegne i redirect. - Prefissi = slug completo:
eg_fu_*→eg_forgejo_updater_*(transient, azioniadmin_post, nonce, parametri URL, campi),EG_FU_*→EG_FORGEJO_UPDATER_*, classiEG_Forgejo_API/EG_Forgejo_Admin→EG_Forgejo_Updater_API/EG_Forgejo_Updater_Admincon i file rinominati. - Riquadro della pagina: istanze con token (solo l'indirizzo), istanze dei plugin gestiti senza token, voci scartate, promemoria finché
FORGEJO_ACCESS_TOKENè definita. - Footer della pagina negli slot nativi (
admin_footer_text,update_footera priorità 20), come negli altri plugin eg-*. "Documentazione" punta al repo: le pagine/plugin/eg-forgejo-updater/e/en/plugins/eg-forgejo-updater/non esistono. readme.txtriscritto per la directory: niente confronto con Git Updater, descrizione e FAQ aggiornate, changelog solo della linea 3.x; il resto inchangelog.txt(voci della 2.10.0 tradotte in inglese). Description dell'header corretta (diceva "falls back to tags").- Il form di installazione dice che un repository privato richiede un token per la sua istanza (prima chiedeva un repository "pubblico").
Removed
FORGEJO_ACCESS_TOKEN,FORGEJO_BASE_URLe il formato breveowner/reponell'header. ⚠️FORGEJO_BASE_URLresta inwp-config.phpdi produzione: la usa eg-forgejo-registration. Il pannello avvisa solo perFORGEJO_ACCESS_TOKEN.
Added
maybe_upgrade(): al cambio di versione cancella i transienteg_fu_release_*/eg_fu_wporg_*della 2.x; optioneg_forgejo_updater_version.uninstall.phppulisce nomi vecchi e nuovi.
Why
- Fino alla 2.13.0 il token partiva verso tutti gli host dei plugin gestiti, compreso quello dell'updater stesso: chi lo avesse installato con il token della propria istanza l'avrebbe mandato anche a git.emanuelegori.uno. In più
build_request_args()lo allegava a ogni chiamata API senza guardare l'host, e il filtro globale lo regalava alle richieste di altri plugin verso la stessa istanza (eg-repo-card). WordPress (Requests) rimanda gli header anche sui redirect cross-host. - Git Updater gestisce più istanze con un token globale più token per repo nel database: i repo di una seconda istanza senza token proprio ricevono quello globale.
Verified
- Routing con token finti e richieste intercettate: token giusto per host e porta; nessun token a
host.evil.com, http, porta diversa, host sconosciuti; richieste API conredirection=0; filtro: token solo su pacchetto gestito e pacchetto in installazione, mai su altre richieste allo stesso host. - Token vero in mappa: gli 11 plugin con
Gitea Plugin URI, privati compresi, rispondono dalla release. - Rendering della pagina in it_IT con il
.monuovo; il token non compare nel markup. - Form, handler
admin_poste nonce corrispondono; hook nuovi solo quelli del footer. make-pot,msgfmt --check(104 tradotte, 3 non tradotte ammesse).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Token per istanza:
-
v2.13.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 10sreleased this
2026-10-11 15:06:44 +02:00 | 6 commits to main since this releaseChanged
- Il pacchetto arriva dall'ultima release, non più dal branch.
get_latest_version()chiamaGET /api/v1/repos/{owner}/{repo}/releases/latest: versione =tag_namesenza lav, pacchetto = primo allegato.zipservito dalla stessa istanza (se manca,archive/{tag}.zip),readme.txtletto dal tag. Restano 2 richieste per plugin. - Ripiego sul branch solo per i repo senza release (HTTP 404 su
releases/latest): versione dall'headerVersion:e zip del branch, come fino alla 2.12.0. La colonna Stato lo segnala con "Nessuna release: aggiorna dal branch". Su 401/403, 5xx ed errori di rete nessun ripiego: valgono gli stati già esistenti. - "Installa plugin da Forgejo" installa anch'esso l'ultima release; la checklist ha un passo "Pacchetto" (release o branch). La cartella prende il nome del repo con un filtro
upgrader_source_selectiontemporaneo, perché lo zip di una release può contenere il nome vecchio del repo. readme.txt(FAQ, External services) e i due README descrivono il flusso nuovo. Corretta anche la descrizione delle richieste dell'anteprima, che citava un/contentsmai usato.
Why
- Con lo zip del branch, un commit su
mainsenza bump arrivava ai siti che aggiornavano dopo, con lo stesso numero di versione della release: due siti "2.12.0" potevano avere codice diverso. Lo zip allegato dalla CI esisteva già ma nessuno lo usava. Idea presa dal confronto con Git Updater, che scarica il tag o l'asset della release. - Caso reale che ha deciso "primo
.zip" invece della ricerca per nome: la release v1.6.0 di eg-contact-form allegaeg-contact-form-privacy.zip, con dentro la cartellaeg-contact-form-privacy/(nome del repo prima del rename).
Verified
- Prima del rilascio, in produzione con la classe API nuova caricata sotto altro nome (
wp eval-file, nessuna scrittura): i 13 plugin gestiti passano tutti arelease, con la stessa versione di oggi e lo zip della release;repotest(file principale rinominato per il test 404) → 404 come prima; con il nome giusto del file → ripiegobranch. - Risposte simulate con
pre_http_request: release senza zip e zip su host esterno →archive/{tag}.zip; tag non valido e JSON rotto → errore; 401 → nessun ripiego; 500 → 3 tentativi. - Download reale dello zip di eg-contact-form con il token: HTTP 200 senza redirect.
make-pot,msgfmt --check(95 tradotte, 3 non tradotte ammesse), Plugin Check: solo l'ERROR attesoplugin_updater_detected.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Il pacchetto arriva dall'ultima release, non più dal branch.
-
v2.12.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 8sreleased this
2026-09-26 17:08:49 +02:00 | 7 commits to main since this releaseAdded
- I plugin gestiti che sono anche nella directory di WordPress.org vengono restituiti a WordPress: scheda "Visualizza dettagli" e aggiornamenti arrivano da lì. Il rilevamento legge il transient
update_pluginsche il core riempie con la risposta di api.wordpress.org: una voce conid = w.org/plugins/<slug>indica un plugin della directory. Nessuna chiamata in più per i plugin che non ci sono. - Verifica contro le omonimie: WordPress.org abbina i plugin solo per slug, quindi l'updater si fa da parte solo se i
Contributors:delreadme.txtinstallato hanno almeno un nome in comune con icontributorsdell'APIplugins/info/1.2. Esito in cache una settimana (eg_fu_wporg_*), 5 minuti in caso di errore. - Interruttore per plugin nella tabella admin, Usa Forgejo / Automatico, salvato nell'option
eg_forgejo_updater_channels. Serve per provare su un sito una versione presente su Forgejo e non ancora su WordPress.org. - Stati nuovi in tabella: in Stato "Slug occupato su WordPress.org" (rosso) e "Verifica WordPress.org non riuscita" (giallo).
Changed
- La colonna Sorgente mostra il canale di aggiornamento,
ForgejooWordPress.org, invece del modo di registrazione (auto/forgejo), che passa nel tooltip e continua a decidere il pulsante "Rimuovi". Mescolare le due cose rendeva ambiguoautoaccanto awordpress.org, e dopo "Usa Forgejo" la colonna tornava aauto. - Per i plugin passati alla directory la colonna Repository punta a
wordpress.org/plugins/<slug>; il link Forgejo nell'elenco plugin di WordPress resta, come accesso al sorgente. - Il pulsante del canale sta sempre su una riga propria: come form inline andava a capo accanto a
wordpress.orge restava in riga accanto aauto. - La colonna Stato non è più vuota:
✓ Aggiornato, il pulsante Aggiorna, gli avvisi, e con il canale forzato la versione pubblicata su WordPress.org ("Su WordPress.org: 1.15.9"), per vedere se la directory è avanti o indietro rispetto a Forgejo. readme.txt: la sezione External services dichiara la chiamata ad api.wordpress.org.
Fixed
- Con la versione Forgejo pari a quella installata,
inject_updates()facevaunset()anche dell'eventuale offerta di WordPress.org per lo stesso plugin. Ora per un plugin gestito da Forgejo le offerte di WordPress.org vengono tolte sempre, anche quando Forgejo non risponde (prima un'offerta di un omonimo sarebbe passata).
Why
- Con
eg-social-timelinepubblicato su WordPress.org, la scheda costruita dall'updater non aveva screenshot, banner, icone nélast_updated/active_installs/rating, mostrava la tab "Upgrade Notice" e passavatesteddal readme (7.1), da cui l'avviso "not tested with your current version" su WordPress 7.1.x. E i siti aggiornavano da Forgejo invece che dal canale con cui il plugin arriva a tutti gli altri.
Verified
- Simulazione in produzione con la classe nuova caricata sotto altro nome (
wp eval-file): 13 plugin gestiti, soloeg-social-timelinepassa a WordPress.org (1.15.9);plugin_inforestituisce il risultato intatto. Su un transient costruito ad arte: offerta di WordPress.org conservata per il plugin delegato, omonimo (akismet) respinto con statomismatch, slug inesistente →unverifiede plugin rimasto su Forgejo; canale forzato → scheda Forgejo. make-pot,msgfmt --check(87 tradotte, 3 non tradotte ammesse), caricamento reale del.mo.- Plugin Check sul pacchetto: solo l'ERROR atteso
plugin_updater_detected. - Tabella renderizzata in produzione con le classi di prova: canale automatico →
WordPress.org, link alla directory,✓ Up to date; canale forzato →Forgejo, link al repo, "On WordPress.org: 1.15.9". - Provata sullo stage dall'utente.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- I plugin gestiti che sono anche nella directory di WordPress.org vengono restituiti a WordPress: scheda "Visualizza dettagli" e aggiornamenti arrivano da lì. Il rilevamento legge il transient
-
v2.11.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 9sreleased this
2026-09-16 21:58:46 +02:00 | 10 commits to main since this releaseAdded
- Internazionalizzazione completa del plugin: tutte le stringhe visibili all'utente (pagina admin, wizard di installazione, notice, colonna Stato, link azione nella lista plugin) passano dalle funzioni di traduzione WordPress, con l'inglese come lingua sorgente.
- Header
Text Domain: eg-forgejo-updatereDomain Path: /languages, che finora mancavano: senza di essi WordPress non avrebbe caricato alcuna traduzione. - Cartella
languages/con il templateeg-forgejo-updater.pot(77 stringhe) e la traduzione italianaeg-forgejo-updater-it_IT.po/.mo. Nessuna chiamata aload_plugin_textdomain(): WordPress carica le traduzioni just-in-time dal 4.6. - Commenti
translators:su ogni stringa con placeholder.
Changed
- Le stringhe che interpolavano variabili nel letterale (
"Errore inatteso (HTTP {$http_code}). Riprova più tardi."e altre 4) sono state riscritte consprintf()e placeholder. Erano il punto piu' fragile: come letterali con la variabile dentro non sarebbero mai state traducibili, e sarebbero sparite in silenzio dal.pot. - Le due sole chiamate
__()preesistenti avevano msgid in italiano (Impostazioni,Documentazione), contro la convenzione dei plugineg-*: ora sonoSettingseDocumentation. Chi avesse traduzioni esterne basate sui vecchi msgid deve rimapparle. Descriptiondell'header del plugin portata in inglese; la resa italiana arriva dal.po(msgcmpla pretende tradotta, a differenza di Author e Plugin URI).- I messaggi di
log_debug()sono ora in inglese e restano fuori da gettext: sono diagnostica per il log, non testo d'interfaccia. readme.txt:Tested up toportato a 7.1 (Plugin Check segnalava 7.0 come non piu' attuale).
Why
- Il plugin era interamente in italiano hardcoded: 2 sole chiamate a
__()su 1565 righe. Chiunque non parli italiano vedeva un'interfaccia italiana, e non c'era modo di tradurla. - La traduzione
it_ITriproduce alla lettera i testi della 2.10.0: l'interfaccia in italiano resta identica, così qualsiasi differenza visibile e' un bug e non una scelta estetica.
Verified
wp i18n make-potsenza warning;msgfmt --checkpulito;msgcmpsegnala solo Plugin URI, Author e Author URI, le uniche voci ammesse come non tradotte.- Caricamento reale del
.moin WordPress viawp eval: le 77 stringhe rispondono in italiano. - Plugin Check 2.1.0: nessun errore di i18n o di escaping.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
4 downloads
-
v2.10.0
StableAll checks were successfulAuto Release on version bump / release (push) Successful in 6sreleased this
2026-06-15 22:34:46 +02:00 | 12 commits to main since this releaseAdded
- Retry automatico sui HTTP 5xx in
EG_Forgejo_API::api_get_raw(): fino a 3 tentativi con backoff lineare (250 ms × tentativo). Risolve i 503 transitori che eg-forgejo-updater riceveva durante il burst di richieste al pool reverse proxy saturato. - Property privata
last_status_codenella classe API + getterget_last_status_code(). - Colonna Stato dell'admin: 4 messaggi distinti basati sull'HTTP code memorizzato nel transient
_failed:HTTP 404 — file/branch errato(rosso): config sbagliata (remote_file, branch, nome repo)HTTP 401 / 403 — token rifiutato(rosso): token Forgejo non valido o repo fuori dallo scopeHTTP 5xx — server occupato(giallo): outage Forgejo transitorioErrore di rete(giallo): timeout/DNS
Prima la colonna mostrava sempre lo stesso⚠ Repo non raggiungibilequalunque fosse la causa.
Changed
- Il transient sentinel di errore ora ha struttura
['_failed' => true, 'http' => int]invece di['_failed' => true]. I caller della logicais_array($cached) && isset($cached['_failed'])continuano a funzionare invariati.
Why
- Il fallimento singolo su 5xx (visibile nei log Query Monitor durante un burst di check) non perdeva update — il check successivo riprovava — ma generava rumore. Il retry locale dentro
api_get_raw()lo elimina prima che diventi rumore esterno. - Il messaggio Stato generico non aiutava a diagnosticare i veri errori di configurazione (404 su
remote_fileerrato). Ora distingue.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
2 downloads
- Retry automatico sui HTTP 5xx in