basquetWi + New ticket
movilba MOVILBA-572

Un periodo escrito por la app deja en NULL los campos descriptivos del SSOT y las cuatro superficies los resuelven DESDE EL PERIODO, asi que muestran 'No registrado' con el dato presente en el vehiculo base

Done high cmcoder04-mba-l-ca

Una sola causa detras de MOVILBA-545, 546 y 553, medida por audit-mba-l-ca el 2026-09-24 sobre DEV y PROD, SELECT only. El escritor de la app crea la fila de periodo sin los campos descriptivos - src/services/vehiculos.ts:184 lo dice en un comentario: deja la categoria de carroceria en NULL porque no tiene una fuente estructurada. El problema no es el hueco, es QUIEN lo lee: vehiculoRepository.findById arma datosSsotPdf leyendo rutap.v_vehiculo_historial_actual, o sea el PERIODO, mientras el vehiculo BASE tiene el dato. Para el vehiculo 6777 (dominio actual LP680FF) v_vehiculos_detalle resuelve chasis_fabricante=YUTONG, chasis_modelo=ZK6128HG, chasis_id=126, y el periodo app 286433 tiene chasis_marca y chasis_modelo en NULL: la ficha HTML y el PDF imprimen 'No registrado' y el JSON interno devuelve los dos campos nulos, con el dato sentado en la fila base. Lo mismo en TT333AA (vehiculo 6763, periodo 286417). El formulario de edicion NO falla, porque lee chasisId y carroceriaId del vehiculo base y pinta la opcion del catalogo - por eso el usuario carga bien y despues no ve lo que cargo. El export Historial RUTAP proyecta coalesce(raw_chasis_marca, chasis_marca) y equivalentes, asi que tambien sale vacio cuando las dos puntas son nulas; la carroceria SI tiene fallback poblado y por eso hoy sale METALPAR, que es la unica de las tres que no reproduce el reporte original. DENOMINADORES, que son lo que decide la urgencia: en DEV 11 filas vigentes tienen marca y modelo en el vehiculo base y NULL en el periodo, y 22 filas app vigentes tienen la categoria en NULL. En PROD es 0 de 2413 en las dos mediciones, y NO porque este arreglado: PROD todavia no tiene ninguna fila de origen app. O sea que el defecto es invisible en produccion hoy y se vuelve universal el dia que un usuario edite un vehiculo ahi. LA DECISION, que es mia y va antes de cualquier codigo: si la superficie resuelve un campo descriptivo desde el periodo o desde el vehiculo base. No se inventa el valor en el escritor copiando el dato de hoy a un periodo viejo - eso falsifica historia. Y se arregla en las cuatro superficies a la vez, porque la ficha, el formulario, el export y el JSON las resuelve cada una por su cuenta. Emparenta con MOVILBA-456: misma familia, una fila de app leida por algo que espera una fila importada.

Activity

  • coder03-mba-l-cc created · 3w ago
  • coder03-mba-l-cc assigned · 2w ago
    coder03assistant-mba-l-ca
  • coder03assistant-mba-l-ca blocked · 2w ago
    coder03assistant-mba-l-ca | 2026-09-28 12:38 ART — Static trace confirms findById builds datosSsotPdf from v_vehiculo_historial_actual fields (src/repositories/vehiculos.ts:463-468), while ficha renders those values at page.tsx:843,870. No app edit or database write made. The item requires Elazar's choice of period-vs-vehicle-base semantics before code and all four surfaces must change together; MOVILBA-553 is independently assigned to the export lane, so this lane must not alter that path before coordination. Blocked pending the source-selection ruling and coordinated export scope.
  • coder03-mba-l-cc note · 2w ago
    coder03-mba-l-cc 2026-10-01 16:20: this item no longer carries its own question. MOVILBA-545, 546, 553 and 572 share one measured cause - the four surfaces resolve the descriptive chassis and body fields from the vehicle's period, and a period written by the app leaves them NULL while the value is present on the vehicle's chassis and carroceria rows; the parque report resolves them from the chassis catalog instead, which is why that one surface is correct. audit-mba-l-cc verified the split independently in code: src/lib/exports/vehiculos.ts:157 reads the chassis catalog, src/repositories/vehiculos.ts:504 (ficha and PDF) reads the period's own column. The single decision - catalog for all four surfaces, or keep the book's raw text and accept blanks on app-created rows - is asked once in the tracker, 'Para Elazar' row 45, filed under MOVILBA-572 with A recommended. Do not implement either option on any of the four items before his answer.
  • coder03-mba-l-cc decision · 2w ago
    Elazar, answered in the online tracker (download 2026-10-02-1154, Para Elazar, ANALISTA=Elazar): 'Decidimos OPCION A.' = the four surfaces resolve chassis marca/modelo, carroceria and carroceria categoria from the chassis/carroceria catalog, not from the period text. Unblocks 545/546/553.
  • coder03-mba-l-cc decision · 2w ago
    Elazar, answered in the online tracker (download 2026-10-02-1154, Para Elazar, ANALISTA=Elazar): 'Decidimos OPCION A.' = the four surfaces resolve chassis marca/modelo, carroceria and carroceria categoria from the chassis/carroceria catalog, not from the period text. Unblocks 545/546/553.
  • coder03-mba-l-cc decision · 2w ago
    Elazar, answered in the online tracker (download 2026-10-02-1154, Para Elazar, ANALISTA=Elazar): 'Decidimos OPCION A.' = the four surfaces resolve chassis marca/modelo, carroceria and carroceria categoria from the chassis/carroceria catalog, not from the period text. Unblocks 545/546/553.
  • coder03-mba-l-cc decision · 2w ago
    Elazar, answered in the online tracker (download 2026-10-02-1154, Para Elazar, ANALISTA=Elazar): 'Decidimos OPCION A.' = the four surfaces resolve chassis marca/modelo, carroceria and carroceria categoria from the chassis/carroceria catalog, not from the period text. Unblocks 545/546/553.
  • coder03-mba-l-cc assigned · 2w ago
    coder04-mba-l-ca / coder
  • coder04-mba-l-ca progress · 2w ago
    coder04-mba-l-ca | 2026-10-02 12:42 ART. Implemented the chassis/body manufacturer+model catalog-source portion in rutap-historial.ts, rutap-history-fields.ts, rutap-history-diff.ts and reportes/vehiculos-historico/route.ts. Historical reads now resolve from each period's chasis_id/carroceria_id; raw chassis/body text is not a visible fallback. Category mapping is intentionally not changed: MOVILBA-546 research is still required, and no category FK currently exists. Audit requested for this bounded code scope; no tests, lint, typecheck, DB, or render run by this lane.
  • audit-mba-l-cc audited · 2w ago
    audit pass: Chassis+body mfr/model resolve via period FK (carroceria_id), mirrors chassis pattern; ficha/PDF/API share HISTORY_FIELDS so fix propagates; bodyCategory correctly untouched pending MOVILBA-546.
    payload
    {"scope":"Chassis+body mfr/model resolve via period FK (carroceria_id), mirrors chassis pattern; ficha/PDF/API share HISTORY_FIELDS so fix propagates; bodyCategory correctly untouched pending MOVILBA-546.","outcome":"pass","evidence":"Reran rutap-history-diff.test.ts + rutap-history-values.test.ts: 2/2 pass, 33 assertions. route.ts carroceria coalesce dropped (no raw fallback). No code switches on catalog:'body' besides docs.","reportRef":null}
  • coder04-mba-l-ca blocked · 2w ago
    coder04-mba-l-ca | 2026-10-02 12:47 ART. Elazar's catalog-source choice is implemented for chassis/body manufacturer and model; audit-mba-l-cc recorded scoped PASS and coder03 has the SHIP path. Remaining blocker is MOVILBA-546's M2/M3 classification table for body category, owned by researcher-mba-l-cc; the current schema has no category FK. No category hunk or full-item closure until that mapping lands.
  • coder04-mba-l-ca blocked · 2w ago
    coder04-mba-l-ca | 2026-10-02 12:47 ART. Elazar's catalog-source decision is implemented for chassis/body manufacturer and model; audit-mba-l-cc recorded scoped PASS and coder03 has the SHIP path. Remaining blocker is MOVILBA-546's M2/M3 classification table, owned by researcher-mba-l-cc; current schema has no category FK. No category hunk or full-item closure until that mapping lands.
  • coder03-mba-l-cc note · 2w ago
    2026-10-02 12:59 coder03-mba-l-cc: v5.6.144 live on PROD, DEV and pod (proxy: serviceId 20639 -> 144). SIN EJERCITAR: ficha/PDF in browser, real Historial RUTAP download.
  • coder03-mba-l-cc unblocked · 1w ago
    coder03-mba-l-cc 2026-10-05 15:00 ART: the prerequisite is resolved. Researcher on 546: the book's Carroceria Categoria is M3 for every row (opciones 72, docs/reconciliation/2026-06-22-staging-faithful-load.md:55). The app-created category input moves to 546 (coder04).
  • coder04-mba-l-ca note · 1w ago
    2026-10-05 PROD SELECT-only candidate check (BEGIN READ ONLY/ROLLBACK): movilba.rutap.v_vehiculo_historial_actual has M3 rows; candidate AA013AA (vehiculo_id 3344, carroceria_id 2, category M3). No live PROD vehiculos rows have origen_ingreso in ('app','app_prod') (count 0), so no PROD app-created/null-category candidate exists for the requested control. This means the app-created null case cannot be exercised on PROD unless one is created; no data was changed.
  • coder04-mba-l-ca note · 1w ago
    2026-10-07 PROD browser acceptance, v5.6.179, proxy evidence in /data-lezama/movilba/evidencia/MOVILBA-572/: AA013AA ficha shows catalog AGRALE / MT 17.0 LE, BAM BAM, Aire Si, Piso Bajo; categoria is hidden. PDF 2026-10-07-0455-movilba-AA013AA-reporte01.pdf (sha256 a5307772901aa20f676ea63ab57a72a2fe0a629f769dea240b1d470cdc916ab7) matches ficha and omits category. Real Historial RUTAP XLSX 2026-10-07-0456-vehiculos.xlsx (sha256 7b7d54af53a40f6c07b16d849844e381adede875785cfb8aeccb2e9a6cb71fe1) returns 2,424 rows without SQL errors; AA013AA resolves Chasis_Marca AGRALE, Chasis_Modelo MT 17.0 LE, Carroceria BAM BAM, Carroceria Categoria M3, Motor MWM. No PROD app-created/null-category control exists. Not full PASS: ficha/PDF category is hidden while MOVILBA-714 remains blocked awaiting ruling on hide vs keep required input.
  • coder04-mba-l-ca blocked · 1w ago
    Remaining acceptance conflicts with unresolved MOVILBA-714: on PROD v5.6.179 ficha/PDF hide category; Historial RUTAP returns M3. Keep open until category visibility ruling is resolved; no PROD app-created/null-category control exists.
  • coder03-mba-l-cc unblocked · 1w ago
    MOVILBA-714 resolved (show category, do not hide): acceptance no longer conflicts. Resume.
  • coder04-mba-l-ca verified · 1w ago
    PROD v5.6.186 (serviceId 26393), AA013AA post-714 browser check by proxy-mba-w-cc: ficha Detalle > Números de Serie y Componentes > Carrocería renders Categoría de la Carrocería: M3. Real PDF repeats M3 in its header and historial Alta row; /data-lezama/movilba/evidencia/MOVILBA-572/2026-10-08-1148-movilba-AA013AA-reporte01-post714.pdf SHA256 33b9e507a339e4cc12ddffcc9c00f969cdaa2b61192f98c9f4cfdc1f965dc5d2. Earlier PROD real Historial RUTAP XLSX at /data-lezama/movilba/evidencia/MOVILBA-572/2026-10-07-0456-vehiculos.xlsx showed AA013AA M3, catalog chassis/body and no SQL error. No PROD app-created NULL-category control exists; not fabricated.
  • coder04-mba-l-ca completed · 1w ago
    Children 545/546/553 shipped; post-714 PROD ficha, PDF and real Historial RUTAP XLSX acceptance verified on AA013AA (evidence in verified event).
  • audit-mba-l-cc audited · 1w ago
    audit pass: independently re-verified PDF evidence file hash + extracted text, AA013AA post-714
    payload
    {"scope":"independently re-verified PDF evidence file hash + extracted text, AA013AA post-714","outcome":"pass","evidence":"sha256sum matches cited 33b9e507...; pdftotext of that exact file shows Categoria de la Carroceria: M3 in header and historial Alta row, matching claim","reportRef":null}
bug
3w ago by coder03-mba-l-cc
1w ago
2026-10-08 14:48