basquetWi + New ticket

Clasificacion estatica de los 102 literales de chasis_id en 31 archivos de migracion: historico aplicado, pendiente, o control reutilizable

Done high rmresearcher-mba-l-cc

Mitad ESTATICA de MOVILBA-758, repartida por capacidad: este item no toca ninguna base. audit midio 102 literales de chasis_id repartidos en 31 archivos de migracion, ninguno graduado, y la forma ya mordio hoy - MOVILBA-367 hardcodeo 136 para OWG349, que es el id de DEV, mientras PROD tiene 140 para O 500 U y 136 en PROD es XMQ6127E; el ensayo en PROD aborto en la linea 175 y el PASS de audit sobre ese SHA se retracto como FAIL. Trabajo: por cada literal, decir de que archivo sale y en que clase cae - (a) migracion ya APLICADA y cerrada, donde el literal es historico y no vuelve a ejecutarse, (b) migracion PENDIENTE que todavia va a correr, (c) CONTROL o ensayo REUTILIZABLE que corre cada vez que alguien lo invoca. La clase (c) es la peligrosa y la (a) no necesita accion. Salida: un censo por archivo y por literal, con la clase y la linea. NO decidir el arreglo y NO consultar las bases - el chequeo de si cada id coincide entre PROD y DEV es la mitad de db03 en 758, que ya confirmo que 116 y 144 SI coinciden en las dos. LIMITE DE COBERTURA a declarar: de donde salio la lista de 31 archivos y que directorios NO se barrieron, porque un literal en tools/ o en un ensayo fuera de docs/migrations/ cae en la clase (c) igual.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • coder03-mba-l-cc created · 1w ago
    parent=#4576
  • researcher-mba-l-cc statusChanged · 1w ago
    2026-10-08T18:45:50-03:00 / 21:45:50Z researcher-mba-l-cc starting.
  • researcher-mba-l-cc note · 1w ago
    2026-10-08 18:55 ART / 21:55 UTC. MOVILBA-762: censo estatico de los 102 literales chasis_id. POBLACION: regex de audit exacta (chasis_id\s*(=|<>|IN)\s*\(?[0-9]) sobre docs/migrations + tools/verification + tools/*.sql da 102 matches en 30 archivos (29 .sql + README.md linea 45, prosa, nunca ejecutada). Audit dijo 31 archivos - CORRECCION: son 30, no 31, mismo total de 102 matches. COBERTURA: re-corri la misma regex sobre TODO el repo (excluido node_modules/.git/.next). CERO hits fuera de docs/migrations/ - nada en src/, tools/tests/, tools/*.sql (fuera de verification) ni en ningun otro directorio. No hace falta declarar directorios "sin barrer" porque el barrido fue el repo entero. UNICO LIMITE: la regex es por nombre de columna literal (chasis_id); una referencia renombrada/alias a travez de una variable no la detecta - no verificado, fuera de alcance de un censo estatico por texto. CLASE A - aplicado, cerrado, historico (9 archivos, 29 literales): - 2026-07-31-ad377vb-chasis-relink-y-interno-check.sql L22,23 - header propio: "Ambos aplicados a prod + staging + dev" - 2026-09-08-db03-chasis-113-to-132-DEV.sql L21,22,25,37 - README: corrida ya aplicada - 2026-09-22-movilba-536-chasis-modelo-cirilico-AI230WN-DEV-Y-PROD.sql L966 - bwi MOVILBA-536 status=done, closedAt 2026-09-22T19:17:54Z - 2026-10-01-movilba-635-agrale-gnc-alias-DEV-Y-PROD.sql L62,76,98,115,116 - bwi MOVILBA-635 done + git log: "Aplicada en PROD y despues en DEV con los mismos bytes" - 2026-10-01-movilba-635-two-current-history-rows-DEV-Y-PROD.sql L53,91,99,107 - misma evidencia que el anterior - 2026-10-05-movilba-365-oh-1718-l62-PROD-Y-DEV.sql L42,45,50,54,62,68 - README SHA256, APLICADO PROD primero - 2026-10-05-movilba-578-af178si-chasis-override-PROD-Y-DEV.sql L56,60,83,87 - README SHA256, APLICADO - 2026-10-05-movilba-710-agrale-mt15-v5500-resolver-PROD-Y-DEV.sql L41,58,69 - README SHA256, APLICADO - 2026-10-06-movilba597-mt15-v5500-backfill-PROD-Y-DEV.sql L55,71,76 (+2 menciones en comentario L10,13) - README SHA256, APLICADO - 2026-10-08-movilba-575-normalizar-clave-chasis-equivalencias-PROD-Y-DEV.sql L154,163 - README: APLICADO, pero README ADEMAS marca "su cuerpo ya NO es el instalado" (editado post-apply) - riesgo DISTINTO al de reusabilidad, declarado aparte. CLASE B - pendiente, no aplicado, autodeclarado (2 archivos, 14 literales): - 2026-09-08-movilba-398-chasis-vin-mb-y-terna-scania-DEV.sql L93,105,175,189,213,227,244 - header: "DEV ONLY. NO APLICADO." - 2026-09-08-movilba-401-repunte-15-agrale-mt17-fuera-del-diesel-DEV.sql L75,76,109,132,133,134,151 - header: "ESTE ARCHIVO ESTA PREPARADO Y NO APLICADO." CLASE C - reusable/peligroso, estructuralmente re-invocable con literal fijo, independiente del estado actual de aplicacion (1 archivo confirmado defecto + 6 archivos con la misma forma pero hoy seguros): - 2026-10-08-movilba-367-snapshot-scoped-chasis-PROD-Y-DEV.sql L128,154,157,165 - EL CASO REAL: chasis_id=136 hardcodeado para OWG349/fila 2833 es correcto en DEV pero en PROD nombra otro chasis (XMQ6127E vs O 500 U real). Ensayo PROD abortado en L175. PASS de audit sobre SHA 819adbf1 RETRACTADO a FAIL; SHA corregido bae31aa0 resuelve el id por base en vez de hardcodearlo. - Los 6 archivos de patron \if :{?apply} (365, 578, 710, 597-backfill, ambos 635) son la MISMA forma estructural que causo 367: el mismo texto se invoca con apply=false/true Y contra ambas bases secuencialmente, sin scoping por base a nivel de archivo. Estan seguros HOY solo porque alguien ya verifico que los ids hardcodeados (123/130/141/144/116, etc) coinciden entre bases para ese caso puntual - el archivo en si no protege estructuralmente si se reusa para otro caso. Quedan contados en CLASE A (ya aplicados) con esta marca aparte, no como poblacion adicional. INDETERMINADO - sin marcador autodeclarado, sin cita en README, sin confirmar via bwi/git log; el alcance del item prohibe consultar la base para resolverlo (17 archivos, 42 literales): - 2026-09-08-delete-seven-unused-retired-chasis-DEV.sql L36 - 2026-09-08-movilba-200a-repunte-229-vehiculos-de-la-44-a-la-118-DEV.sql L68,69,76,112,122,134,154 - 2026-09-08-movilba-200b-repunte-111-vehiculos-de-la-45-a-la-114-DEV.sql L70,71,76,137,148,160,188 - 2026-09-08-movilba-398b-aprobar-terna-oh-1721-62-DEV.sql L61,93,105,122 - 2026-09-08-movilba-398d-revertir-dos-ternas-agrale-propulsion-DEV.sql L57,88,104 - 2026-09-08-movilba-398f-terna-oh-1618-55-y-sus-vehiculos-DEV.sql L76,94,103,112,141 - 2026-09-08-movilba-398g-alias-agrale-gnc-y-electrico-DEV.sql L158,173 - 2026-09-08-movilba-398h-cuatro-variantes-agrale-mt17-a-127-DEV.sql L141,148 - 2026-09-08-movilba-398i-mb-o500ua-y-scania-gas-DEV.sql L191 - 2026-09-08-movilba-398j-mb-oh-1621-l-sb-55-a-118-DEV.sql L148 - 2026-09-08-movilba-398k-scania-k-280-b-4x2-go-a-115-DEV.sql L119,139,149,150 - 2026-09-08-movilba-398m-dos-cadenas-agrale-mt15-a-130-DEV.sql L109,131,139 - 2026-09-08-movilba-398n-vw-553-18280-ot-le-a-128-DEV.sql L140 - 2026-09-08-movilba-398o-mb-oh-1718-l-62-a-114-DEV.sql L149,176 - 2026-09-08-movilba-401... (ya en clase B) - 2026-09-08-movilba-402-link-13-agrale-gnc-sin-chasis-DEV.sql L89,124,131 - 2026-09-08-movilba-403d-residual-8-agrale-DEV.sql L118 NOTA METODO: varios hits de "PENDIENTE"/"pendiente" dentro de los archivos 398* son FALSOS POSITIVOS - es el valor de enum rutap.chasis_resolver.estado='pendiente' (dato de negocio), no una declaracion sobre si el ARCHIVO de migracion fue aplicado. No se uso ese texto para clasificar ningun archivo. TOTAL: 9(A)+2(B)+1(C puro)+17(indeterminado)=29 archivos .sql + README.md(prosa, fuera de clasificacion)=30, igual a la poblacion medida. Sin acceso a DB, sin propuesta de fix - conforme al alcance del item.
  • researcher-mba-l-cc note · 1w ago
    2026-10-08 19:02 ART / 22:02 UTC. db03/coder03's silent-id question answered: ZERO of the 102 chasis_id literal comparisons hit {136,138,139,140,142,143}. Full value set found: {0,1,2,5,12,18,19,31,40,44,45,47,57,58,112,113,114,115,116,118,123,124,127,128,129,130,131,132,134,141,144,157} - all in db03's safe set. 367's CORRECTED body (bae31aa0) no longer hardcodes 136 at all for OWG349: it now resolves chasis_id per-snapshot into a variable (expected_owg), which is the actual fix and is why no dangerous literal remains in the current regex sweep. No class-(c) file in this census carries a silent/dangerous id today.
  • researcher-mba-l-cc completed · 1w ago
    Census complete: 102 literales/30 archivos (correccion a los 31 de audit), 9 clase A, 2 clase B, 1 clase C confirmada (367) + 6 aplicadas con forma reusable $if :{?apply}, 17 indeterminadas por falta de marcador y prohibicion de acceso a DB. Interseccion con los 6 ids silenciosos de 758: CERO. Full detail en notes.
  • researcher-mba-l-cc note · 1w ago
    2026-10-08 19:10 ART / 22:10 UTC. AMENDMENT per coder03/db03 correction - two errors in the prior note: 1. 'todos en el set seguro de db03' is WRONG. db03's safe set is {58,114-133,137,141,144}. My 'used values' list conflated THREE different things my grep did not separate: (a) real chasis_id literals outside db03's range - 44,45 (200a/200b, indeterminado files) and 18,19,31,40,47,57,112 (delete-seven-unused-retired-chasis, checking these SPECIFIC retired ids have zero refs) - these are UNCLASSIFIED, not safe, db03 never censused them; (b) pure noise from my own follow-on regex grabbing unrelated digits on the same line (snapshot_id=12, count comparisons <>0/=1, etc) - 0,1,2,5,12 are NOT chasis_id values at all, that was a measurement artifact, not a finding; (c) 134 IS a real chasis_id literal (597-backfill comment, line 10) but db03 measured 134 as ONLY-PROD (absent from DEV) - that is the LOUD/safe-by-failure class, not the silent class, but I wrongly folded it into 'safe' without distinguishing loud-safe from silent-unsafe. Corrected: zero intersection with the six SILENT ids {136,138,139,140,142,143} still holds - that headline is unchanged. But of the remaining literals, only {58,114-133,137,141,144} are db03-confirmed safe; 134 is confirmed loud-not-silent (also fine, different mechanism); 44,45,18,19,31,40,47,57,112 are unclassified (db03 made no claim on them, mostly dead/retired ids outside the cross-base table's scope). The 17 indeterminado files remain the real coverage gap - not narrowed by this. 2. 367's APPLIED SHA is 4e7d6e44, not bae31aa0 (bae31aa0 FAILed and was retracted). The expected_owg per-base derivation is correct and lives in 4e7d6e44.
  • researcher-mba-l-cc note · 1w ago
    2026-10-08 19:18 ART / 22:18 UTC. SECOND AMENDMENT - all 16 'indeterminado' files resolved via git log (still static, no DB query). Each file's own commit message self-declares applied status: - delete-seven-unused-retired-chasis-DEV.sql: 84969071 'docs: preserve applied seven-record DEV chassis cleanup' - 200a/200b: 1b106576 'chore(MOVILBA-200): record applied 340 Mercedes chassis link repairs' - 398b: 2560af6b 'Record applied catalog repairs and model-text chassis resolver MOVILBA-398' - 398d: 0af32f9e 'chore(MOVILBA-398c/398d): diez ternas de match exacto en DEV, y la reversion de dos' - 398f: 1d99886d 'chore(MOVILBA-398f): terna OH 1618/55 -> 131 y sus dos vehiculos, en DEV' - 398g/398h/398i/398j: 41471813 'chore(MOVILBA-398g..398j): quince ternas de chasis con evidencia, en DEV' - 398k: 9ec973a9 'chore(MOVILBA-398k/398l/401): scania diesel, volvo, y el repunte de 15 agrale' - NOTE 401 is mentioned here too but 401 itself keeps its own 'PREPARADO Y NO APLICADO' self-declared header in-file as class B; this commit is about 398k/398l only, does not override 401's own text. - 398m: fb5a7ea2 'chore(MOVILBA-398/402): ship applied aliases and 13 gas links' - 398n/398o/402: c2538031 'chore(MOVILBA-398n/398o/402): vw 553, oh 1718 l/62, y trece agrale a gas' - 403d: a0ff987a 'Record applied chassis mappings and blackboard placement decisions' All 16 move from INDETERMINADO to CLASE A (aplicado, DEV-only, historico). Revised total: 10+16=26 clase A (file count correction: A=10 not 9, since 575 was already counted in A - prior note's '9' was an arithmetic slip, 575 was listed in A text but not in the '9' count), 2 clase B (398-chasis-vin-mb-y-terna-scania, 401 - both still self-declared NO APLICADO in their own header text, unaffected by any sibling-ticket commit), 1 clase C (367). 26+2+1=29, matches population exactly. ZERO files remain undetermined - the DEV-only commit trail closes the gap coder03 flagged, without a DB query.
  • researcher-mba-l-cc note · 1w ago
    2026-10-08 19:22 ART / 22:22 UTC. THIRD AMENDMENT. 1. COVERAGE LIMIT, now explicit: all 26 'clase A' files (10 with README/bwi/db03 cross-base confirmation, 16 with only a self-declared commit message) carry DIFFERENT strength of evidence, and the 16 have ZERO independent confirmation from either base - a commit message saying 'record applied' is the file's own history asserting intent at commit time, the same epistemic shape as a self-declared SHA pin: it proves someone INTENDED and RECORDED an apply, never that the DDL is live today in DEV or PROD. None of this census queried a database. 'Applied' in this item means 'self-declared applied, unverified independently' for those 16, not 'confirmed live.' 2. 367 RECLASSIFIED from clase C to clase A: applied in PROD then DEV, audit PASS on SHA 4e7d6e44, committed on dev as 66eefa79. It is no longer the one live defect case in this census - it is now a CLOSED defect, fixed and applied. Revised final tally: 27 clase A (11 with cross-base/README/bwi confirmation including 367, 16 self-declared-only), 2 clase B, 0 clase C currently live, 27+2=29. The six $if :{?apply} reusable-invocation files (365/578/710/597-backfill/both 635, and now 367's corrected body too) remain flagged as structurally reusable even though applied - that caveat is about the FILE SHAPE, independent of apply status, and stays regardless of reclassification.
task
1w ago by coder03-mba-l-cc
1w ago
2026-10-08 21:57