Skip to content

Releases: byebis/nexus-news-ai-wp

v1.1.18.1 — Luce (1shot-ui-kit + Suite Bridge)

Choose a tag to compare

@byebis byebis released this 15 Oct 21:21

🎨 Luce — v1.1.18.1 adotta il kit UI condiviso della Byebis 1Shot Suite: 1shot-ui-kit v2.0 «light» (solo CSS, zero JS) + Byebis Suite Bridge.

Novità

  • Kit UI condiviso: la testa di pagina admin si armonizza (titolo con accento + sottotitolo) e bottoni/card ereditano raggi, bordi e transizioni coerenti con gli altri plugin Byebis. L'adozione è prudente: guardie class_exists su ogni punto di integrazione, il plugin funziona anche se il kit manca.
  • Suite strip sulla Dashboard: gli altri plugin Byebis installati e attivi (1ShotWP, 1Shot Visibility, Keeper AI) si riconoscono a un colpo d'occhio con badge di versione e link diretto al loro pannello; badge onesto «Inactive» per quelli non presenti.
  • Zero costi di performance: nessun JavaScript nuovo, nessuna chiamata REST/nonce/localize extra; CSS con cache-busting automatico (versione da filemtime), caricato SOLO sulle pagine del plugin.

Nota upgrade

Aggiornamento cosmetico + integrazione: nessuna migrazione di schema, nessun setting nuovo. Tutte le fix della 1.1.18 «Recupero e Segreti» restano incluse (reaper run fantasma, social solo su pubblicato, SSRF chiuso, segreti protetti, rate limit admin).

Installazione

Scarica nexus-news-ai-v1.1.18.1.zip → Plugin → Aggiungi nuovo → Carica plugin (sostituisce la 1.1.18).

v1.1.18 — Recupero e Segreti

Choose a tag to compare

@byebis byebis released this 15 Oct 00:13

🛡️ Recupero e Segreti — v1.1.18 nasce dall'audit completo su TUTTO il codice (9 agenti in parallelo, ~75.000 righe analizzate, 150 finding): chiuso 1 critico, 17 alti, i medi prioritari (blocco B) e gli interventi di scala (blocco C).

Il critico chiuso

Run fantasma → stallo permanente: se un run di un agente crashava o andava in timeout, la riga di telemetria restava «running» per sempre, l'articolo veniva escluso dai giri successivi e l'agente restava bloccato in errore. Ora: reaper che chiude le run fantasma (>30 min), TTL sul blocco di riresume (gli articoli tornano riprendibili) e auto-riattivazione degli agenti in errore con backoff 30 min — la redazione si riprende da sola dopo un outage AI transiente.

Le novità principali

  • Social solo su articolo pubblicato: Telegram/X/Discord/LinkedIn partono SOLO quando il post WordPress è in stato «pubblicato» (prima una bozza veniva comunque diffusa). Log onesto per piattaforma sui salti.
  • SSRF chiuso su tutte le vie: redirect disabilitati sui fetch esterni (prima un 30x aggirava la guardia verso IP interni/metadata cloud), limiti di dimensione risposta, guardia IPv6 riparata (era codice morto: ::1 non rilevato), pinning IP anti-DNS-rebinding via cURL, guard estesa ai modelli provider custom.
  • Segreti protetti: refresh token Google mai più in chiaro senza openssl (fail-closed + notice admin, token legacy ri-cifrati appena possibile); token/chiavi social e AI non viaggiano più nell'attributo value dei form; wp nexus settings get maschera i segreti (--reveal per mostrarli); indexnow_key mascherato; import JSON passa dalla stessa sanitizzazione completa del PUT.
  • AI più onesta: i contenuti troncati per max_tokens NON vengono più salvati come completi né bloccano la traduzione per sempre; il tentativo extra ×1.5 non sostituisce più una risposta buona con una peggiore; timeout proporzionale ai max_tokens (fino a 300s) + budget temporale totale anti-retry-storm.
  • Amministrazione protetta: rate limit + lock sui pulsanti costosi (run pipeline/Wire, process coda, test AI/strumenti/fonti: 1 esecuzione concorrente, min 15s, 429 onesto); citazioni AI con scheme validati (addio javascript:); «Salva modello» non resta più bloccato; status provider grigio quando il test non è disponibile.
  • Scala: ricerca articoli con indice FULLTEXT quando il DB lo supporta (schema v9, fallback LIKE automatico) + paginazione ricerca finalmente allineata; retention automatica (telemetria 30g, revisioni 10/articolo, dead letter 30g); digest newsletter con cursor/resume a batch; upsert Search Console a chunk (~6 query invece di ~3000); cap agli shortcode pubblici.
  • Wire con lock per tema + run row + heartbeat: niente più doppio Wire parallelo (doppio costo AI / duplicati).

Nota upgrade

Dopo l'aggiornamento lo schema passa v8 → v9 (solo indice FULLTEXT, nessuna colonna/tabella nuova: su DB che non lo supportano resta la ricerca LIKE, zero errori). I form delle chiavi ora mostrano «•••• salvata — compila per sostituire»: il campo vuoto NON cancella il valore salvato.

Installazione

Scarica nexus-news-ai-v1.1.18.zip → Plugin → Aggiungi nuovo → Carica plugin (sostituisce la 1.1.17).

v1.1.17 — Pong Onesto

Choose a tag to compare

@byebis byebis released this 14 Oct 20:31

🏓 Pong Onesto — fix del test di generazione segnalato su OpenRouter: modelli trovati, ma «risposta vuota» e «troncata per max_tokens» su TUTTI i modelli. Tre cause vere trovate e chiuse.

Cosa non andava

  1. Test di generazione con max_tokens: 8 (v1.1.16): i modelli reasoning — oggi la maggior parte dei :free su OpenRouter — bruciano intero il budget di token nel ragionamento PRIMA di emettere contenuto → content vuoto + finish_reason=length → falso «risposta vuota» su qualunque modello.
  2. La UI ignorava l'esito della generazione: il pannello provider mostrava verde «Connesso: N modelli» anche quando la mini completion falliva (il dato vero finiva solo nel log attività).
  3. Errore «vuoto» non azionabile: nessuna distinzione tra token esauriti e vuoto vero, nessun retry, grammatica «aumento max_tokens».

Cosa cambia

  • Test provider: mini chat completion con max_tokens 1024 (costo ~zero, spazio per reasoning + risposta). Se resta vuoto il motore ritenta UNA volta con max_tokens ×2 (cap 8000) prima di fallire.
  • Stato provider onesto: verde SOLO se anche la generazione risponde — «Generazione OK (modello, ms)», con nota «risposta troncata» se il testo resta mozzato; rosso con l'errore del motore se fallisce; avviso se il modello impostato non è nell'elenco del provider.
  • Errori «vuoto» chiari: «max_tokens esauriti prima del contenuto (tipico dei modelli reasoning). Aumenta max_tokens e riprova.» oppure «(finish_reason=stop). Riprova; se persiste, prova un altro modello.» + dettaglio «solo ragionamento (N caratteri)» quando il modello popola reasoning/reasoning_content (OpenRouter/DeepSeek).
  • Il retry «vuoto+length» vale anche per la generazione vera (rewrite/translate/digest e fasi JSON): meno runfallite sui modelli reasoning, nessun cambio di costo quando tutto va bene.
  • i18n IT/EN completa (pattern retrocompatibili con le righe attività già in database).

Nota pratica OpenRouter

Con i modelli :free reasoning lascia max_tokens alto (di default 2000, auto-bump ×1.5/×2 fino a 8000): per articoli lunghi scegli modelli non-reasoning o accetta il bump automatico. Il messaggio «troncata per max_tokens» ora dice esattamente cosa fare.

Installazione

Scarica nexus-news-ai-v1.1.17.zip → Plugin → Aggiungi nuovo → Carica plugin (sostituisce la 1.1.16, nessuna migration: schema resta v8). Dopo l'aggiornamento rifai il Test sul provider: ora il verde significa davvero che il modello risponde.

v1.1.16 — Agenti Viventi

Choose a tag to compare

@byebis byebis released this 14 Oct 15:14

👁️ Agenti Viventi — indagine sul campo (4 investigatori, file:riga) + 6 package di fix: ogni run di ogni agente è registrata, l'orario è SEMPRE quello di WordPress, le fasi del Wire sono reali, il wizard dichiara dove finiscono gli articoli.

Agenti visibili — telemetria run completa

  • Nuova tabella nexus_agent_runs (schema v8 idempotente): ogni run registra inizio/fine/durata, passi (raccolta → valutazione → riscrittura → pubblicazione), candidati, articoli creati, fonti ok/err e ultimo errore — via try/finally: nessuna run resta aperta
  • Drawer «Cosa sta facendo» sulla card di ogni agente: step runtime live, ultime run, checklist «Perché non vedi articoli?» (fonti assenti, cap giornaliero, chiave di ricerca mancante, cron non partito, destinazione, budget) e attività per-agente (endpoint già esistente, ora collegato alla UI)
  • Stato errore vivo sull'agente (run fallita → errore, primo successo → attivo; pausa utente rispettata) + health per-agente; errori fonte attribuiti all'agente (prima anonimi)

Orologio onesto — solo l'ora di WordPress

  • Tutti i timestamp REST viaggiano con l'offset del sito (wp_timezone): addio «2 ore fa» su un agente appena creato quando WordPress è su UTC e il browser no — il browser mostra sempre l'ora impostata in WordPress, su qualsiasi dispositivo
  • 2 finestre orarie corrette (digest, briefing) che confrontavano UTC con l'orario di sito; dedup e news-sitemap verificate: non erano bug (UTC vs UTC)
  • Test provider AI con generazione vera: mini chat completion reale oltre all'elenco modelli + avviso se il modello configurato non esiste nel provider

Wire reale — niente più animazioni

  • Le fasi del Nexus Wire non sono più un copione su timer 15s: l'interfaccia mostra gli step runtime veri di ogni agente (poll /live), con spinner onesto se non c'è ancora nulla

Wizard onesto — «Dove finiscono gli articoli»

  • Scelta esplicita: Solo Nexus (approvazione) / Bozze WordPress / Pubblica direttamente → modalità agente + post_status + post nativi, con indicazione di dove vedere il risultato
  • Fonti RSS di esempio non più pre-selezionate; passo finale «Prossimi passi»; ogni pannello ha errore reale + Riprova (mai skeleton eterni)
  • Coda Lavori: args leggibili (agente/articolo) e dead-letter con filtro e contatore

Sotto il cofano

  • Endpoint agents/{id}/diagnostics (gates, cron, run, errori, verdict a codici localizzati IT/EN); health per-agente; uninstall allineato alla 13ª tabella; i18n IT+EN completo per tutte le nuove stringhe

Installazione

Scarica nexus-news-ai-v1.1.16.zip → Plugin → Aggiungi nuovo → Carica plugin. La migration schema v8 (tabella agent_runs) parte da sola al primo caricamento ed è idempotente.

v1.1.15 — Perfezione Maniacale

Choose a tag to compare

@byebis byebis released this 14 Oct 12:00

🧹 Perfezione Maniacale — zero feature nuove, solo profondità: 6 auditor paralleli su ~19.000 righe, 12 difetti P1 + 25 P2 + 29 P3 chiusi, protocollo di verifica a 7 gate tutto verde.

Affidabilità

  • Coda lavori alla perfezione: reset con NULL su DATETIME (dead-letter di nuovo raggiungibile su MySQL moderno), heartbeat dei job vivi (zero riaccodamenti di job ancora in esecuzione → zero doppio costo AI), esiti ok=false ora in retry+backoff+dead-letter, setting «tentativi massimi» finalmente letto, lock atomici, mutex per-articolo sulla pubblicazione (zero doppie pubblicazioni social), budget di tempo per il giro cron
  • Contenuto completo risvegliato: Readability + dispatcher fonti ora davvero caricati (erano dead code alla radice), guardia anti-binario corretta, circuit breaker sui feed RSS morti

Sicurezza

  • Token Google in AES-256-GCM (retrocompatibile) + rinnovo senza corse; download immagini senza redirect (bypass SSRF chiuso); token MCP per-agente non più in GET /agents; errori di rete redattati (niente URL con token)

Performance

  • Lista REST senza LONGTEXT (payload 10-50× più leggero); sitemap immagini/video cachiate + pre-carico attachment (da 2.000-4.000 query/hit Googlebot a O(1)); indici created_at/published_at/views (schema v7); stats() aggregata; settings in cache di request; upsert GSC/GA4 a lotti da 100; read_time dalla colonna; cache 3s sul pannello live; observer i18n sui soli nodi nuovi

Compat & ciclo di vita

  • Uninstall multisite-aware (tutti i blog, 12 tabelle, fallback allineato); cron calendario spento alla disattivazione; zero meta duplicate con Yoast/RankMath (JSON-LD NewsArticle resta); traduzioni non più orfane alla cancellazione del sorgente; template single sovrascrivibile dal tema; niente flush fantasma al primo boot; Tested up to 6.8

Integrazioni

  • Retry singolo su 429/5xx per i 4 canali social (mai dopo l'id remoto: zero doppi post); X con conteggio CJK ponderato; GSC/GA4 retry + re-refresh su 401; digest con log onesto; Telegram senza message_id = fallimento dichiarato; contratto AI engine implementato (retry ×1.5 + truncated, RETRY_SLEEP_MAX, Retry-After data)

UI & i18n

  • ARIA calendario conforme, toast annunciati, CSS pubblico 100% a token, scope=col, break 782px; i18n impermeabile: 2 compositi ripristinati + 53 voci EN + 4 pattern nuovi (536 pattern tutti compilanti, test funzionali 17/17)

Installazione

Scarica nexus-news-ai-v1.1.15.zip → Plugin → Aggiungi nuovo → Carica plugin. La migration schema v7 (indici) parte da sola al primo caricamento ed è idempotente.

v1.1.14 — La redazione impara e si organizza

Choose a tag to compare

@byebis byebis released this 14 Oct 07:14

🚀 La redazione impara e si organizza — 6 agenti in parallelo + glue. Il cerchio misura → impara → agisci si chiude.

Nuovo (6 moduli)

  • 🧙 Wizard Google guidato — nuova pagina «Google»: verifica LIVE della property Search Console prima di salvarla (lista property 1-click, errori 403/404/token spiegati), stato onesto della sync e bottone «Sincronizza ora»
  • 🔎 Opportunità di ricerca — il sync GSC importa ora le query di ricerca (nuova tabella, migration automatica); in Analytics la sezione separa titoli da migliorare (impression alte, CTR basso) e argomenti mancanti (query senza pagina) con azione 1-click «Assegna a un agente» che crea il lavoro nella coda esistente
  • 🩺 Health check redazione — cron orario su 5 fronti: feed RSS fermi, lavori bloccati, budget AI, WP-Cron ferma, token Google scaduto; card in Dashboard + notifiche solo sui problemi NUOVI
  • 📅 Calendario editoriale — mese degli articoli programmati/in attesa, slot orari globali e per agente (override), riallineamento automatico dei fuori-slot, suggerimento orari dalle pubblicazioni reali
  • ✉️ Digest settimanale potenziato — top performance (metriche reali), uso AI (chiamate/token/costo), errori della settimana; preferenze con anteprima email
  • 🎯 SEO pack — sitemap immagini /nexus-images.xml, video sitemap /nexus-videos.xml (embed YouTube reali), JSON-LD NewsArticle completo + Twitter Card

i18n

  • Copertura EN dei 6 moduli: 191 voci esatte + 20 pattern compositi numerici, in cima alla lista (i compositi corrono prima dei frammenti generici pre-esistenti)

Codice

  • 4 moduli self-registranti nuovi (wizard, health, opportunità, calendario); digest caricato da newsletter, video sitemap da news sitemap; nessuna API pubblica esistente cambiata; migration DB automatica al bump di versione

Installazione

Scarica nexus-news-ai-v1.1.14.zip → Plugin → Aggiungi nuovo → Carica plugin. La migrazione della tabella query parte da sola al primo caricamento.

v1.1.13.1 — Insight performance + zero conferme native

Choose a tag to compare

@byebis byebis released this 13 Oct 23:27

✨ Polish release — la redazione mostra i propri numeri e dice addio agli ultimi dialoghi nativi. 4 agenti in parallelo + glue.

Nuovo

  • Card "Insight performance" in Analytics: top 5 articoli per click (GSC) con impressioni, CTR, posizione media e viste (GA4), totali con trend vs periodo precedente (↑↓ e delta %), selettore periodo 7/30/90gg funziona anche senza JS. Stati onesti: Google non connesso → CTA alle Impostazioni; sync non ancora arrivato → messaggio chiaro, niente zeri inventati

UI

  • Zero window.confirm nativi nel pannello: scollega provider, re-check capo redattore, avvio testata, annulla lavoro, pulizia coda, rigenerazione chiave API — tutti sul pattern conferma-inline con ponte pubblico riutilizzabile (NexusAdminUi)

i18n

  • Copertura EN completa delle stringhe 1.1.13 (29 voci + 2 pattern correttivi — il toast di fine wizard usciva misto IT/EN per un conflitto d'ordine tra pattern, corretto)
  • Etichette conferma nuove: «Sì, genera» «Sì, annulla» «Sì, verifica»

Codice

  • 6 copie private di helper settings/lowercase consolidate sull'helper pubblico (comportamento identico)

Installazione

Scarica nexus-news-ai-v1.1.13.1.zip → Plugin → Aggiungi nuovo → Carica plugin.

v1.1.13 — Ottimizzazione di tutto (sicurezza, efficienza, UI)

Choose a tag to compare

@byebis byebis released this 13 Oct 22:32

⚡ Ottimizzazione di tutto — nessuna feature nuova: tutto ciò che esiste funziona meglio. 6 agenti in parallelo, 8 commit, zero conflitti (1 agente = 1 set di file).

Sicurezza pipeline

  • Score AI non parsato = revisione umana: una risposta AI illeggibile non pubblica più da sola (prima valeva 70 e poteva auto-approvarsi); ora vale 0 e va in attesa con log onesto
  • Mutex sul cron tick: tick sovrapposti non raddoppiano più il costo AI
  • Resume per-articolo con lock + esclusioni anti-starvation in SQL

Efficienza

  • GA4 batched: ~51 richieste HTTP → max 4 a giro (le metriche non vengono più tagliate dal budget)
  • Evergreen: query con finestra su metric_date, niente più full-scan settimanale
  • Retention automatica: log oltre 90gg e metriche oltre 365gg cancellati a batch (schema v5), transient scaduti ripuliti
  • Disinstallazione completata: token OAuth Google e opzioni moduli ora rimossi davvero

Notifiche

  • Eventi con chiave strutturata (non più matching testuale fragile)
  • Chat Telegram ops dedicata: gli errori non finiscono più nel canale pubblico dei lettori
  • Rate limit configurabile

Scala

  • Limiti dedup/interlink configurabili in Impostazioni → Sistema → «Limiti e scala» + avviso onesto (1/giorno) quando il confronto viene troncato — il dedup non smette più di lavorare in silenzio

UI

  • Dirty-guard «modifiche non salvate» nelle Impostazioni (prima si perdevano in silenzio cambiando tab)
  • Badge connessioni in vista (Google / Telegram / Provider AI)
  • Tab AI in sub-tab (Provider | Generazione | Moduli AI), un solo handler accordion
  • Wizard non chiudibile durante la creazione agenti, conferme inline uniformi, focus trap nei modali, polling in pausa a tab nascosta
  • CSS/JS inline di Analytics/Strumenti/Lavori estratti in file versionati con palette unificata sui token

Installazione

Scarica nexus-news-ai-v1.1.13.zip → Plugin → Aggiungi nuovo → Carica plugin (l'upgrade esegue automaticamente lo schema v5).

v1.1.12 — Redazione che impara (feedback loop Google)

Choose a tag to compare

@byebis byebis released this 13 Oct 21:42

🧠 Redazione che impara — il feedback loop Google: la redazione AI ora misura il traffico reale e impara da esso.

Novità

  • Google OAuth 2.0 (Search Console + GA4): connessione da Impostazioni → Sistema, scopes readonly, token cifrato AES-256-CBC
  • Sync metriche giornaliero: click/impression/posizione/views per-pagina reali → tabella nexus_metrics (schema v4), attribuzione GSC via path permalink, mai righe replicate
  • Learning: briefing performance (top fonti/categorie + consigli) iniettato nei prompt di raccolta/valutazione → gli agenti preferiscono ciò che porta traffico
  • Dedup semantico: simhash 64-bit + Hamming — i candidati troppo simili vengono scartati PRIMA dell'insert
  • Link interni: blocco «Leggi anche» automatico (max 3, scoring keyword+categoria)
  • Google News sitemap: nexus-news-sitemap.xml (≤48h, max 1000) + ping + robots
  • Evergreen: refresh settimanale dei pillar via AI con prompt protettivo (fail = contenuto intatto)
  • Notifiche: webhook Slack-compatibile + Telegram (errori / attese / pubblicati), rate limit 10/h
  • UI: nuove sezioni impostazioni per tutti i moduli, segreti mascherati in REST, 61 stringhe IT/EN

Sicurezza

Token Google mai in log/REST · deattivazione pulita dei 3 nuovi cron · try/catch totale: nessun modulo nuovo può bloccare raccolta o pubblicazione

Installazione

Scarica nexus-news-ai-v1.1.12.zip → Plugin → Aggiungi nuovo → Carica plugin.

v1.1.10.1 — Fix audit: SSRF, i18n, uninstall

Choose a tag to compare

@byebis byebis released this 13 Oct 15:45

🔧 v1.1.10.1 — Fix dall'audit (sicurezza, i18n, pulizia)

Patch di manutenzione costruita sui risultati dell'audit approfondito della 1.1.10. Nessuna nuova feature: quattro chiusure chirurgiche.

🔒 Sicurezza — SSRF chiuso

  • Il fetch del fact-check (testo della fonte originale) passa ora dalla guardia centralizzata assert_safe_url() (DNS + blocco IP privati/riservati), fail-closed. Dalla 1.1.10 il source_url può arrivare da adapter multi-tipo (web, search, MCP) e da contenuti non fidati: la verifica esplicita è doverosa.

🌍 i18n — 64 stringhe coperte

  • Tutte le stringhe nuove della 1.1.10 (provider custom, login web OAuth, model picker, strumenti/fonti per agente, editor fonti redazioni, messaggi REST) hanno ora la traduzione inglese nel dizionario
  • 7 pattern nuovi per i messaggi REST compositi concatenati con variabili (chiave/URL base mancante, provider sconosciuto, errore HTTP…), con i più specifici prima dei generici

🧹 Fix

  • Cosmetico: il messaggio della guardia endpoint AI mostrava letteralmente «l\u2019endpoint» (escape finito in una stringa single-quoted) → ora «l'endpoint»
  • Uninstall completo: pulizia di 7 famiglie transient (cache feed, fact-check fonti con cooldown/fallimenti, rate limit REST, cache full-content Readability, lock traduzioni, rate limit OAuth, circuit breaker provider) + 4 transients singoli (prezzi AI live, conteggio CPT legacy, featured viste, token Reddit) — tutti con TTL, ora la cancellazione lascia l'installazione davvero pulita
  • User-Agent Reddit ora usa NEXUS_VERSION invece di una versione hardcodata

Verifiche: php_sanity 63 file 0 issues · sintassi OK su tutti i file toccati · i18n diff vs 1.1.9 = 0 stringhe nuove scoperte · fetch_source_text ora GUARDED nello script SSRF dell'audit · md5 zip verificato byte-per-byte.

Commit: vedi tag v1.1.10.1 — 🚆 Tutto ciò che WordPress fa nativo, lo usiamo; il resto lo costruiamo meglio.