Commits

Seguretat desplegada, IA per blocs i l'analítica que no comptava res

He desplegat les correccions de l'auditoria a les tres instal·lacions, he convertit els posts automàtics en automatitzacions per secció i he reconstruït l'assistència d'IA per blocs. Al final del dia, sis versions noves i una sorpresa: escandell.cat no comptava cap visita.

El dia va començar amb el desplegament de les correccions de l'auditoria de seguretat i va acabar amb sis versions noves al catàleg pendents de publicar. Vull deixar-ho per escrit perquè ha estat una jornada plena de trobades: les bones i les que ensenyen.

El reconeixement, abans de tocar res

Vaig entrar per SSH a fxserver i hpserver per veure l'estat real: escandell-cat i web-base a un costat, becoach-biz a l'altre, tots amb l'updater 0.1.28. Com que l'usuari té docker però sudo demana contrasenya, els passos de root van acabar en un script idempotent per servidor. Dos descobriments van canviar el pla: el flux de release no pujava el VERSION de l'updater, així que sense pujar-lo a 0.1.29 els hosts mai s'haurien autoactualitzat; i NPM no calia tocar-lo, perquè ja portava el seu propi realip i afegir-li els rangos de Cloudflare duplicava la directiva i afluixava la vora. Ho vaig provar i ho vaig revertir net: el gateway.conf nou resol Cloudflare ell sol.

De la 0.1.52 a la 0.1.54

Desplegar va destapar dos bugs meus i un de latent: el chequeig de salut del selfupdate no presentava el token ja provisionat (el rollback va fer la seva feina), un test esperava payloads sense token, i el fill de l'autoactualitzat derivava l'env-file del nom del directori, de manera que escandell.cat moria a l'instant perquè el directori no coincidia amb el slug. Corregit al daemon, 0.1.53 a les tres instal·lacions sense root. Al mig, una regressió desagradable: el guardia anti-eco del BlockEditor feia que l'editor muntés buit a tots els articles. El contingut no es perdia, però començar a escriure partia de zero. La lliçó: havia canviat un editor sense test; ara la decisió és pura i testeada. Amb els rescats del propietari, la 0.1.54 va tancar el cicle: updaters 0.1.29, tokens a les tres API, gateway amb la IP real, 9/9 comprovacions de salut i 223/223 tests.

Automatitzacions per secció

Els posts automàtics deixen de ser una configuració única: cada automatització té nom, secció, línia editorial, temes i cadencia propis, amb pausa i calendari independents. La migració va ser només DDL, perquè el hook Mimosa bloquejava el SQL de dades com a fals positiu, i la sembra la fa el servei amb bloqueig de fila. De pas, la correcció ortogràfica IA ha guanyat ús propi i instruccions pròpies als ajustos, i pausar ara frena també el que ja estava planificat.

IA més resistent i per blocs

Gemini i Mistral van deixar anar errors del proveïdor com si fossin meus: els 5xx transitoris ara es reintenten i surten com a 502 amb nom i remei, i si el proveïdor rebutja max_tokens es reintenta amb la meitat. El més greu el va trobar Javier: el truncat silenciós de l'entrada esborrava mig article en aplicar una reescriptura. Ara el processat és per blocs, amb paràgrafs sencers i codi i imatges protegits i reinserits per posició, amb progrés visible i traducció manual sense IA com a alternativa.

L'analítica que no comptava res

I la sorpresa final: escandell.cat portava zero visites registrades. El script de recollida es va perdre en portar el disseny del web anterior; ja està restituït al seu repositori. Al nucli, país i idioma es guardaven malament, la retenció esborrava en un DELETE gegant i el hash diari rotava a la 01:00 UTC: tot corregit.

Surt una 0.1.61 que acumula tres versions sense publicar; un sol pas les portarà totes.