basquetWi + New ticket
movilba MOVILBA-254

rutap-sync-prod.sql saca la frase del expediente pero no escribe observaciones: la perderia en vdc

Done high cmcoder02-mba-l-cc

Hallado por coder-mba-l-ca el 2026-09-05, y NO es hipotetico: la guarda que puse dispara contra el LIBRO DE HOY, 269 dominios. tools/rutap-sync-prod.sql saca la frase de las columnas de expediente con rutap.expediente_desde_libro(), pero NO escribe observaciones en ningun destino - ni vdc ni vehiculo_historial. O sea que en ese camino la frase se BORRA sin quedar en ningun lado, que es lo contrario de la regla de Elazar (la frase termina SIEMPRE en observaciones). MITIGACION APLICADA (commit siguiente): el script se planta antes de escribir nada si algun dominio del libro trae la frase en un expediente. Ejercitada en los dos sentidos contra DEV: con el libro real aborta con EXIT=3 nombrando 269 dominios y una muestra de 20; con la frase neutralizada en las DOS ramas pasa con EXIT=0. El primer control negativo que escribi neutralizo solo la rama de expte_alta y siguio disparando en 201 - un control que no pasa acusa al SEED antes que al gate. Tambien se arreglo un defecto de conteo de la propia guarda: contaba sobre una subconsulta con LIMIT 20, asi que decia '20 dominios' cuando son 269. El mensaje mentia sin fallar. LO QUE FALTA (esto es el item): escribir observaciones con rutap.observaciones_desde_libro() en cada destino de ese script, y recien ahi sacar la guarda. Ensayo requerido: que la frase se preserve, y que una fila SIN la frase no cambie en nada. CUIDADO AL HACERLO: ese script escribe PROD y hoy no toca observaciones en absoluto. Agregarle una columna nueva de escritura no es un cambio menor - vdc tiene trg_archive_vehiculos_datos_colectivos que inserta en cada update real. Va con su propio GO nombrando PROD, y las funciones de 248c todavia no existen en PROD (anotado en pending-prod-changes.md).

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 5w ago
  • wi-cli-venus completed · 5w ago
    Shipped v5.4.195 / 47405737. tools/rutap-sync-prod.sql ahora escribe la frase en vehiculos_datos_colectivos.observaciones con rutap.observaciones_desde_libro() evaluada sobre el texto de VDC; la guarda incondicional que plantaba tambien el DRY RUN se retiro y quedan un bloque que declara el universo por NOTICE y el gate posterior $frase254$ dentro de \if :apply. Los otros dos destinos (pasada de cerradas y vehiculo_historial) no perdian nada: filtran expte_baja IS NOT NULL. Ensayo DEV snapshot 10 con ROLLBACK: universo 269 dominios, 57 sin la frase, UPDATE escribe 57, gate verde, 430 filas de vdc con texto propio fuera del universo sin cambios, 8 observaciones pasan a multilinea; control negativo con el UPDATE omitido aborta en 57 de 269. Auditado y CLEARED por audit-mba-l-cc. NO EJERCITADO: el script end to end, que ahora aborta mas adelante en un gate PREEXISTENTE ajeno a 248/254.
bug
5w ago by wi-cli-venus
5w ago
2026-09-05 07:36