Problema
Los gates de dependencias de una PR actualizada sobre main@75de28e fallan antes de lint/build aunque el diff no modifica manifests ni lockfiles.
Evidencia reproducible en PR #504, run 33832188834:
- root
npm run audit:production: unexpected high/critical production advisories: @prisma/config, deepmerge-ts, fast-uri, mysql2, prisma;
services/analytics npm audit --omit=dev --audit-level=high: HTTP 400 Invalid package tree, run npm install to rebuild your package-lock.json.
El primer resultado también se reproduce localmente sobre la rama sin cambios de dependencias. No debe resolverse ocultando advisories ni debilitando el gate.
Alcance
- Reproducir ambos resultados desde un checkout limpio de
main y capturar los advisory IDs/rutas/versiones afectadas.
- Regenerar o reparar de forma determinista el lockfile de
services/analytics hasta que npm ci y npm audit --omit=dev --audit-level=high describan el mismo árbol válido.
- Actualizar las dependencias root a versiones corregidas, o documentar de manera acotada cualquier excepción temporal con advisory, paquete instalado, riesgo, vencimiento y owner según el guard existente.
- Verificar que no haya regresión en Prisma, migraciones, build, analytics ni servicios auxiliares.
Criterios de aceptación
Límites
Problema
Los gates de dependencias de una PR actualizada sobre
main@75de28efallan antes de lint/build aunque el diff no modifica manifests ni lockfiles.Evidencia reproducible en PR #504, run 33832188834:
npm run audit:production:unexpected high/critical production advisories: @prisma/config, deepmerge-ts, fast-uri, mysql2, prisma;services/analyticsnpm audit --omit=dev --audit-level=high: HTTP 400Invalid package tree, run npm install to rebuild your package-lock.json.El primer resultado también se reproduce localmente sobre la rama sin cambios de dependencias. No debe resolverse ocultando advisories ni debilitando el gate.
Alcance
mainy capturar los advisory IDs/rutas/versiones afectadas.services/analyticshasta quenpm ciynpm audit --omit=dev --audit-level=highdescriban el mismo árbol válido.Criterios de aceptación
npm run audit:productionpasa sin ocultar findings inesperados.npm audit --omit=dev --prefix services/analytics --audit-level=highpasa y no devuelve error de árbol inválido.npm audit --omit=dev --prefix services/tapestry --audit-level=highpasa.npm audit --omit=dev --prefix services/playlist-bot --audit-level=highpasa.lint-and-buildyanalyticsquedan verdes desde un head actualizado sobremain.Límites
npm audit, bajaraudit-levelni ampliar allowlists sin evidencia y vencimiento explícitos.