Commits
LaIA a dins: plans, assistència i contrasenyes
Divendres de dos fronts: es tanca la fase 4 de LaIA (plans setmanals, verificació
Fase 4 tancada, fase 5 encesa
Divendres de dos fronts dins del redisseny de Panxing —el del fantasma de la home i 19.000 imatges en cua. Al matí, tancar la fase 4 de LaIA (el costat d'IA del projecte): el pla setmanal de contingut ja funciona de dalt a baix, amb compte o sense. Al vespre, obrir la 5: l'assistència d'IA entra a l'admin (el panell de gestió).
Plans anònims que acaben lligats a algú
T4.4: si algú genera un pla sense registrar-se, pot demanar-lo amb el seu correu. Rep un enllaç de verificació i, quan el visita, el pla es lliga al seu usuari. Darrere hi ha un parell d'hores de sessió: els endpoints (les portes de l'API) de LaIA comprovaven la identitat amb payload.auth() llegint la cookie directament, i dins d'un route handler de Next (el codi que respon a una URL) això no resol. La forma que funciona és cridar /api/users/me. Un detall subtil: el JWT (el testimoni que t'acredita) portava en caché l'estat _verified antic, així que també es refresca des de la base de dades.
La contrasenya curta
El mínim de 8 caràcters va ser un viatge. Primer el vaig posar a beforeValidate (un ganxo: codi que s'executa sol en un moment concret), i el registre el respectava. El restabliment no: el flux de reset passa per un camí que se salta aquell ganxo. Migra a beforeOperation, vaig deixar logs (el diari del sistema) de depuració pel camí i finalment: mínim 8 tant en crear com en restablir, i els logs fora.
Els tokens de verificació també van canviar de lloc. L'adaptador de correu escriu els emails al log, i el test els anava a buscar a la sortida de next dev — que amb Docker (el sistema de contenidors) no existeix. Ara llegeix docker logs.
El gestor d'IA
Al vespre, T5.1 a T5.4: /api/ai/assist amb avisos SEO (el que posiciona als cercadors) per a l'editor, i les col·leccions ia_proveedores, ia_modelos i ia_tareas amb un hook que detecta models automàticament i un log de consum a ia_consum. Tres detalls: encrypt: true no va sense el plugin de xifrat (fora), la taula payload_locked_documents_rels necessitava les columnes ia_* noves, i el rol que arriba en el JWT en caché pot ser vell — es refresca des de la BD.
Per desenvolupar sense cremar tokens hi ha un stub: sense API key vàlida respon sempre igual i els tests passen igual.
Què queda
Fase 4, tancada. Fase 5, encesa: assistència, avisos SEO i gestor d'IA ja tenen lloc dins l'admin. L'endemà: El dissabte més dens: editor, ingesta i un DNS que es va apagar.