[web] feedback: texto pegado se pierde con 400 si lleva caracteres multibyte (limit de bytes vs chars) #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
JJ intento pegar feedback de carbon-copy el 2026-11-05 18:17 y no llego:
POST /feedbackrespondio 400 "Text too long" (nginx: 14 bytes ==Text too long\n). Nada se guardo.Causa: el formulario limita a 500 unidades de codigo JS (
maxlengthenastro/src/pages/feedback.astro:52) pero el servidor rechaza silen(text) > 500con len() en BYTES (feedback-svc/main.go:406). Texto con un solo caracter multibyte (ñ, á, …, →) pasa el filtro del cliente y muere en el servidor: se pierde el envio.Evidencia en la DB: 6 filas quedaron en exactamente 500 bytes (11, 12, 22, 23, 24, 28) — dumps de consola cortados a la mitad por el propio maxlength.
Estado: parche listo en
feedback-svc/main.go(sin commit): contar runes (utf8.RuneCountInString) y no bytes. Probado en el puerto 8099 con copia de la DB sin tocar produccion:Pasos pendientes (decidir con JJ):
systemctl restart gs-feedback(necesita OK de JJ; backup listo en/tmp/gs-feedback.bak-2026-11-05).GS_DISCORD_WEBHOOK=__DISCORD_WEBHOOK_URL__es un placeholder — las notificaciones nunca funcionaron.Fix desplegado y verificado en produccion (2026-11-05 18:35, OK de JJ):
499 runes/1068 byes -> 200;2000 -> 200;2001 -> 400 Text too long;/updates/focuspet.xml -> 200tras el restart.7358720en main (formmaxlength=2000+ server 2000 runes).astro build(80 paginas) + rsync a /var/www;https://greasysprocket.com/feedbacksirvemaxlength="2000", home 200./tmp/gs-feedback.bak-2026-11-05(paso la linea del unit del webhook a un issue propio).