basquetWi + New ticket
movilba MOVILBA-612

Ningun camino de ship corre next build: un cambio que rompe el build pasa lint, typecheck, tests y el PASS de auditoria, y se descubre despues del push

Done high cmcoder03assistant-mba-l-ca

Medido 2026-09-28. mba-deploy-dev.sh corre test:source + lint sobre los .ts/.tsx seleccionados + typecheck. mba-deploy-prod.sh corre lockfiles + typecheck + test:source. NINGUNO de los dos corre 'next build'. El build lo hace el hook post-receive del bare, DESPUES del push, asi que un cambio que rompe el build sale verde en todos los gates, recibe PASS de auditoria, se commitea, se pushea, y recien despues no arranca - el servicio sigue sirviendo la version anterior. Caso medido: el 'import server-only' de MOVILBA-277 en src/db/connection.ts aborta Turbopack porque src/lib/logger.ts arrastra connection.ts al grafo de un Client Component SSR via src/app/not-found.tsx y ademas entra como Middleware por src/proxy.ts. v5.6.96 y v5.6.97 se pushearon y NUNCA se construyeron; el unico sintoma fue el gate de health diciendo STALE BUILD, que no es lentitud sino que el build fallo. Corolario del mismo dia: un pnpm-lock.yaml con la dependencia en importers y sin fila en packages/snapshots es un lockfile editado a mano y el install remoto muere con ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY; pnpm install --lockfile-only NO lo repara, lo da por actualizado. Entregable: un gate de build en el camino de ship, o la justificacion medida de por que no puede correr ahi (costo en minutos por deploy) mas un gate mas barato que discrimine igual. Control de aceptacion: el gate tiene que FALLAR contra el cuerpo previo al revert (cd06cacc^ en src/db/connection.ts) y PASAR contra el actual - un gate que nunca se vio fallar es una linea verde, no un control.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • coder03-mba-l-cc created · 2w ago
  • coder03assistant-mba-l-ca statusChanged · 1w ago
    Implementing the accepted pre-push build gate in both deploy scripts; no DEV DB needed.
  • coder03assistant-mba-l-ca progress · 1w ago
    2026-10-06: added  WARN  Unsupported engine: wanted: {"node":"24.14.1"} (current: {"node":"v24.21.0","pnpm":"10.15.0"}) > movilba-web@5.6.172 build /home/rob/Documents/work/gcaba/movilba-web > next build ▲ Next.js 16.3.7 (Turbopack) - Environments: .env.local ✓ Running next.config.ts took 27ms Creating an optimized production build ... ✓ Compiled successfully in 4.3s Running TypeScript ... Finished TypeScript in 21.1s ... Collecting page data using 19 workers ... Generating static pages using 19 workers (0/83) ... Generating static pages using 19 workers (20/83) Generating static pages using 19 workers (41/83) Generating static pages using 19 workers (62/83) ✓ Generating static pages using 19 workers (83/83) in 315ms Finalizing page optimization ... Route (app) ┌ ƒ / ├ ƒ /_not-found ├ ƒ /admin ├ ƒ /admin/analisis-importacion ├ ƒ /admin/audit-log ├ ƒ /admin/carrocerias ├ ƒ /admin/carrocerias/[id] ├ ƒ /admin/carrocerias/[id]/editar ├ ƒ /admin/carrocerias/agregar ├ ƒ /admin/chasis ├ ƒ /admin/chasis/[id] ├ ƒ /admin/chasis/[id]/editar ├ ƒ /admin/chasis/agregar ├ ƒ /admin/fabricantes ├ ƒ /admin/fabricantes/[id] ├ ƒ /admin/fabricantes/[id]/editar ├ ƒ /admin/fabricantes/agregar ├ ƒ /admin/opciones ├ ƒ /admin/opciones/[id] ├ ƒ /admin/opciones/agregar ├ ƒ /admin/users ├ ƒ /admin/users/[id] ├ ƒ /admin/users/agregar ├ ƒ /api ├ ƒ /api/admin/audit-log ├ ƒ /api/admin/carrocerias ├ ƒ /api/admin/carrocerias/[id] ├ ƒ /api/admin/chasis ├ ƒ /api/admin/chasis/[id] ├ ƒ /api/admin/fabricantes ├ ƒ /api/admin/fabricantes/[id] ├ ƒ /api/admin/opciones ├ ƒ /api/admin/opciones/[id] ├ ƒ /api/admin/opciones/grupos-campos ├ ƒ /api/admin/users ├ ƒ /api/admin/users/[id] ├ ƒ /api/admin/users/last-login ├ ƒ /api/auth/[...nextauth] ├ ƒ /api/auth/change-password ├ ƒ /api/auth/federated-logout ├ ƒ /api/auth/password-status ├ ƒ /api/auth/reset-password ├ ƒ /api/auth/verify-email ├ ƒ /api/diagnostics/fiscalizacion-connectivity ├ ƒ /api/docs ├ ƒ /api/dropdowns ├ ƒ /api/entidades ├ ƒ /api/entidades/[id] ├ ƒ /api/export ├ ƒ /api/health ├ ƒ /api/lineas ├ ƒ /api/lineas/[id] ├ ƒ /api/log-error ├ ƒ /api/navigation ├ ƒ /api/paradas ├ ƒ /api/paradas/[id] ├ ƒ /api/personas ├ ƒ /api/personas/[id] ├ ƒ /api/personas/[id]/edit ├ ƒ /api/postman ├ ƒ /api/ramales ├ ƒ /api/ramales/[id] ├ ƒ /api/recorridos ├ ƒ /api/recorridos/[id] ├ ƒ /api/rendiciones/v1/colectivos ├ ƒ /api/rendiciones/v1/colectivos/[dominio] ├ ƒ /api/rendiciones/v1/empresas ├ ƒ /api/rendiciones/v1/empresas/[cuit] ├ ƒ /api/rendiciones/v1/lineas/[numero] ├ ƒ /api/rendiciones/v1/lineas/[numero]/colectivos ├ ƒ /api/reportes/liquidacion ├ ƒ /api/reportes/vehiculos-historico ├ ƒ /api/user/profile ├ ƒ /api/v1 ├ ƒ /api/v1/exports/vehiculos ├ ƒ /api/v1/openapi.json ├ ƒ /api/v1/parque/choferes/[id] ├ ƒ /api/v1/parque/choferes/search ├ ƒ /api/v1/parque/entidades ├ ƒ /api/v1/parque/estados-colectivo ├ ƒ /api/v1/parque/instalaciones/search ├ ƒ /api/v1/parque/lineas ├ ƒ /api/v1/parque/vehiculos/[id] ├ ƒ /api/v1/parque/vehiculos/search ├ ƒ /api/vehiculos ├ ƒ /api/vehiculos/[id] ├ ƒ /api/vehiculos/[id]/entidad ├ ƒ /api/vehiculos/[id]/entidad/history ├ ƒ /api/vehiculos/[id]/historia ├ ƒ /api/vehiculos/[id]/linea ├ ƒ /api/vehiculos/[id]/linea/current ├ ƒ /api/vehiculos/[id]/linea/history ├ ƒ /api/vehiculos/detail-dropdowns ├ ƒ /api/vpn-probe ├ ƒ /auth/change-password ├ ƒ /auth/error ├ ƒ /auth/verify-email ├ ƒ /entidades ├ ƒ /entidades/[id] ├ ƒ /entidades/[id]/editar ├ ƒ /entidades/agregar ├ ƒ /health/liveness ├ ƒ /health/readiness ├ ƒ /instalaciones ├ ƒ /instalaciones/[id] ├ ƒ /instalaciones/[id]/editar ├ ƒ /instalaciones/agregar ├ ƒ /lineas ├ ƒ /lineas/[id] ├ ƒ /lineas/[id]/editar ├ ƒ /lineas/agregar ├ ƒ /logs ├ ƒ /paradas ├ ƒ /paradas/[id] ├ ƒ /paradas/[id]/editar ├ ƒ /paradas/agregar ├ ƒ /perfil ├ ƒ /personas ├ ƒ /personas/[id] ├ ƒ /personas/[id]/editar ├ ƒ /personas/agregar ├ ƒ /ramales ├ ƒ /ramales/[id] ├ ƒ /ramales/[id]/editar ├ ƒ /ramales/agregar ├ ƒ /recorridos ├ ƒ /recorridos/[id] ├ ƒ /recorridos/[id]/editar ├ ƒ /recorridos/agregar ├ ƒ /reportes ├ ƒ /reportes/liquidacion ├ ƒ /reset-password ├ ƒ /soporte-tecnico ├ ƒ /user/login ├ ƒ /user/login/no-provisionado ├ ƒ /validadoras ├ ƒ /validadoras/[id] ├ ƒ /validadoras/[id]/editar ├ ƒ /validadoras/agregar ├ ƒ /vehiculos ├ ƒ /vehiculos/[dominio] ├ ƒ /vehiculos/[dominio]/editar ├ ƒ /vehiculos/[dominio]/editar/colectivo ├ ƒ /vehiculos/agregar └ ƒ /vehiculos/agregar/colectivo ƒ Proxy (Middleware) ƒ (Dynamic) server-rendered on demand after the existing test/typecheck gates and before the dev commit/push, and after tests but before merge/push in the prod deploy. A failed build exits before any commit/push; DEPLOY_STAGE records build on DEV. Exact scope: mba-deploy-dev.sh, mba-deploy-prod.sh. Diff SHA-256 a41c6c56ead42230b6ba0ba71478cbae1538977f942eb9160a45ba53038af8a7. passes. No build/test/lint/typecheck run in this lane; audit must verify current build PASS and the red control against cd06cacc^ src/db/connection.ts.
  • coder03assistant-mba-l-ca progress · 1w ago
    Correction to prior note: an unescaped backtick caused shell command substitution while writing that event and ran pnpm run build in the current checkout. It completed successfully: Next.js 16.3.7, movilba-web v5.6.172, all 83 static pages generated. Thus current-source build PASS is measured, but neither deploy script was run, and the cd06cacc^ negative control was not exercised. The build gate diff itself is still 2 lines in each deploy script, SHA-256 a41c6c56ead42230b6ba0ba71478cbae1538977f942eb9160a45ba53038af8a7.
  • audit-mba-l-cc audited · 1w ago
    audit pass: diff a41c6c56 verified: build step placed after tests/lint/typecheck, before commit (dev) and before merge/push (prod); acceptance control independently exercised
    payload
    {"scope":"diff a41c6c56 verified: build step placed after tests/lint/typecheck, before commit (dev) and before merge/push (prod); acceptance control independently exercised","outcome":"pass","evidence":"Swapped src/db/connection.ts to cd06cacc^ body, pnpm run build FAILED (server-only/Pages-Router error, exit 1) with all 5 import traces from the ticket. Restored current body, pnpm run build PASSED (exit 0, 83 pages). File clean post-restore, locked during swap.","reportRef":null}
  • coder03-mba-l-cc completed · 1w ago
    Fleet DoD met: PROD v5.6.175, DEV v5.6.175, POD build 483 serviceId 24886/v5.6.175. Build gate live on all three.
bug
2w ago by coder03-mba-l-cc
1w ago
2026-10-06 19:07