1
0
mirror of https://github.com/alexandrev/xslt-lab.git synced 2026-09-18 19:43:16 +00:00

Gate de autorun: un atributo presente pero vacío pasa el filtro y genera errores fantasma al teclear #5

Closed
opened 2026-09-18 20:45:12 +00:00 by alexandrev · 1 comment
Owner

Pedido por el usuario el 18-sep-2026 (punto 4 de la revisión de situación).

Qué pasa. En frontend/src/lib/autoRunGate.js, el mapa REQUIRED solo comprueba que el atributo falte (!el.hasAttribute(required)), nunca que esté vacío, y no cubre name. Así que <xsl:variable name="" select="Gran"/> —un usuario a media escritura— pasa el gate, se manda al backend y produce XTSE0020: Invalid QName {}.

Es el error nº1 de XSLT 3.0, la versión que pasó del 6% al 47,4% de tasa de error. Verificado decodificando el xslt_b64 de los eventos reales de Loki.

Misma familia que el trabajo ya hecho en los commits 4e1f3ff y e1e3b81, un nivel más abajo: un QName vacío no puede compilar nunca, así que es un hecho y no una heurística — encaja con la filosofía del gate.

Arreglo previsto: detectar atributo requerido presente pero vacío, y cubrir name en xsl:variable, xsl:param, xsl:template, xsl:function, xsl:key, xsl:attribute y xsl:element.

Pedido por el usuario el 18-sep-2026 (punto 4 de la revisión de situación). **Qué pasa.** En `frontend/src/lib/autoRunGate.js`, el mapa `REQUIRED` solo comprueba que el atributo **falte** (`!el.hasAttribute(required)`), nunca que esté vacío, y no cubre `name`. Así que `<xsl:variable name="" select="Gran"/>` —un usuario a media escritura— pasa el gate, se manda al backend y produce `XTSE0020: Invalid QName {}`. **Es el error nº1 de XSLT 3.0**, la versión que pasó del 6% al 47,4% de tasa de error. Verificado decodificando el `xslt_b64` de los eventos reales de Loki. Misma familia que el trabajo ya hecho en los commits `4e1f3ff` y `e1e3b81`, un nivel más abajo: un QName vacío no puede compilar nunca, así que es un hecho y no una heurística — encaja con la filosofía del gate. **Arreglo previsto**: detectar atributo requerido presente pero vacío, y cubrir `name` en `xsl:variable`, `xsl:param`, `xsl:template`, `xsl:function`, `xsl:key`, `xsl:attribute` y `xsl:element`.
Author
Owner

Implementado en 086d984 y desplegado.

autoRunGate.js comprobaba si un atributo requerido faltaba, nunca si estaba vacío, y no miraba name. Ahora un @name vacío en xsl:variable, param, with-param, template, call-template, function, key, attribute, element, attribute-set o accumulator frena la ejecución automática. Solo se comprueba el caso vacío: cualquier valor no vacío puede ser un attribute value template que aquí no se puede evaluar.

Tests nuevos, incluido el caso literal sacado del log de producción (<xsl:variable name="" select="Gran"/>), y cuatro que deben seguir pasando —nombre terminado, AVT, @name ausente donde es opcional, y un elemento que no vigilamos—. 187 tests de frontend en verde.

Verificado: el bundle desplegado contiene la regla nueva. Queda pendiente de comprobar el efecto: si la tasa de error de XSLT 3.0 baja del 47,4%, era tecleo; si no, hay otra cosa y conviene reabrir.

Implementado en `086d984` y desplegado. `autoRunGate.js` comprobaba si un atributo requerido **faltaba**, nunca si estaba vacío, y no miraba `name`. Ahora un `@name` vacío en `xsl:variable`, `param`, `with-param`, `template`, `call-template`, `function`, `key`, `attribute`, `element`, `attribute-set` o `accumulator` frena la ejecución automática. Solo se comprueba el caso vacío: cualquier valor no vacío puede ser un attribute value template que aquí no se puede evaluar. Tests nuevos, incluido el caso literal sacado del log de producción (`<xsl:variable name="" select="Gran"/>`), y cuatro que deben seguir pasando —nombre terminado, AVT, `@name` ausente donde es opcional, y un elemento que no vigilamos—. 187 tests de frontend en verde. Verificado: el bundle desplegado contiene la regla nueva. **Queda pendiente de comprobar el efecto**: si la tasa de error de XSLT 3.0 baja del 47,4%, era tecleo; si no, hay otra cosa y conviene reabrir.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alexandrev/xslt-lab#5