Problema
El job CI / analytics falla de forma reproducible en heads que no modifican services/analytics:
En ambos casos pasan 35/36 tests y falla únicamente:
quality run records canonical integrity and storage samples
services/analytics/test/postgres.test.mjs:229
false !== true
El último CI verde de la misma superficie fue 33803860689 sobre 80ad07e; #504 no cambia analytics, sus migraciones ni sus fixtures.
Diagnóstico inicial
El test borra solo ops.quality_results, ejecuta runQualityAndRetention() y presupone que las seis consultas observarán cero anomalías. Sin embargo, otros casos del mismo archivo mutan tablas leídas por esas consultas (por ejemplo identity_map.account_links) y no restauran necesariamente todo el estado antes de la comprobación. La aserción agregada no imprime qué check_name quedó en error, por lo que el runner oculta la fila causante.
Esto debe tratarse como aislamiento/determinismo del fixture PostgreSQL, no silenciando el quality check.
Criterios de aceptación
Límites
Problema
El job
CI / analyticsfalla de forma reproducible en heads que no modificanservices/analytics:055d464;aa61836.En ambos casos pasan 35/36 tests y falla únicamente:
El último CI verde de la misma superficie fue 33803860689 sobre
80ad07e; #504 no cambia analytics, sus migraciones ni sus fixtures.Diagnóstico inicial
El test borra solo
ops.quality_results, ejecutarunQualityAndRetention()y presupone que las seis consultas observarán cero anomalías. Sin embargo, otros casos del mismo archivo mutan tablas leídas por esas consultas (por ejemploidentity_map.account_links) y no restauran necesariamente todo el estado antes de la comprobación. La aserción agregada no imprime quécheck_namequedó en error, por lo que el runner oculta la fila causante.Esto debe tratarse como aislamiento/determinismo del fixture PostgreSQL, no silenciando el quality check.
Criterios de aceptación
check_name,status,observed_value) que causa el fallo.finally, o el test de quality establece y restaura explícitamente su propio baseline.npm test --prefix services/analyticsquedan verdes contra bases limpias.CI / analyticsqueda verde en una PR que no modifica Analytics y en la PR del fix.Límites