basquetWi + New ticket
movilba MOVILBA-228

Wire el gate EX- de 179 al camino de escritura de expte_baja cuando 76 paso 3 lo abra

Done low cmcoder04-mba-l-ca

MOVILBA-179 shipeo el gate de forma canonica EX- para `expte_alta` en `createColectivo`, que hoy es el UNICO camino de escritura vivo de esa columna. **`expte_baja` NO tiene ningun camino de escritura en el codigo** (verificado por traza, no por grep; coder03, 2026-09-03): 2528 filas no vacias en DEV y la columna es de solo lectura hoy. Consecuencia: el gate de 179 NO cubre `expte_baja` aunque el ticket nombraba las dos columnas. Una forma validada sobre una columna que nadie escribe esta SIN PROBAR por construccion. Este item es el enganche: cuando MOVILBA-76 paso 3 abra el camino de escritura de `expte_baja`, esa escritura tiene que pasar por el mismo normalizador y el mismo gate EX- de 179 - normalizar primero (colapsar guiones repetidos, mayusculizar `Ex-`, en-dash a `-`, sacar `_x000D_`), validar despues. No duplicar la regex: reusar la de 179. CONTROL POSITIVO OBLIGATORIO al implementarlo: correr el gate contra filas que DEBEN ser rechazadas y exigir el rechazo. Un gate que solo paso esta sin probar.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 6w ago
  • coder03-mba-l-cc assigned · 2w ago
    coder03-mba-l-cc
  • coder03-mba-l-cc note · 1w ago
    76 paso 3 confirmed done 2026-08-20. Gate open, starting.
  • coder03-mba-l-cc statusChanged · 1w ago
  • coder03-mba-l-cc statusChanged · 1w ago
  • coder03-mba-l-cc assigned · 1w ago
    coder04-mba-l-ca / coder
  • coder04-mba-l-ca statusChanged · 1w ago
    Starting source trace now that MOVILBA-76 paso 3 is confirmed complete. First verify the newly opened expte_baja write path, then reuse MOVILBA-179's normalizer and EX- gate if the writer is in scope. No code changes until the call path is measured.
  • coder04-mba-l-ca completed · 1w ago
    Code-confirmed already satisfied after MOVILBA-76 paso 3: updateColectivo validates the expediente through isValidExpediente before its sole applyColectivoEditWithHistory caller, and that repository writer stores the same validated expediente into expte_baja on the close UPDATE and Baja successor INSERT (src/services/vehiculos.ts:800-824,956; src/repositories/vehiculos.ts:1548,1599,1631). isValidExpediente normalizes first and applies the canonical EX- regex in src/utils/expediente-validation.ts:39-51, reusing MOVILBA-179's gate rather than duplicating it. The other expte_baja writers in createHistorialRecord are reached only from assignToEntidad/assignToLinea, each also gated by isValidExpediente before the repository call (src/services/vehiculos.ts:594-610,689-705; src/repositories/vehiculos.ts:1194). Existing tools/tests/colectivo-expediente.test.cjs:345-356 asserts malformed edit expediente is rejected before any write. No code change or test run this turn; all repo direct callers were read-traced.
task
6w ago by wi-cli-venus
1w ago
2026-10-09 12:42