Compare commits

...
Author SHA1 Message Date
admin 3495b33157 CI: replicar preflight API aislado del deploy VPS 2026-09-07 15:48:40 -03:00
admin 115a6a2ed8 F3.1 hotfix: ejecutar contrato visual dentro del job WEB 2026-09-07 15:47:30 -03:00
admin 4796581532 F3.1 hotfix: mover contrato visual a CI WEB 2026-09-07 15:47:16 -03:00
admin 1d3979fda3 F3.1 hotfix: aislar tests API del filesystem WEB 2026-09-07 15:47:02 -03:00
admin 72e75fab2f F3.1 · Inventario estructural, catálogo contextual y conciliación cronológica (#18)
Integra F3.1 con jerarquía estructural de Inventario, familias técnicas/Otro, catálogo contextual, merges append-only, perfil de Inspector, entrega documental al Inspector y APK Android 0.11.0. Todas las barreras API/WEB/DB/Docker/Android quedaron verdes antes del merge.
2026-09-07 15:39:26 -03:00
admin 26ec07864a docs: conservar README 2026-09-05 22:21:47 -03:00
admin 65cb28299d docs: mantener README estable 2026-09-05 22:21:39 -03:00
admin f2f9ccaa72 docs: no-op README 2026-09-05 22:21:34 -03:00
admin c7fd1f8583 docs: estabilizar README 2026-09-05 22:21:28 -03:00
admin c50360e732 docs: simplificar README 2026-09-05 22:21:21 -03:00
admin 387357b96c docs: restaurar README operativo 2026-09-05 22:21:13 -03:00
admin eb47a3d66f docs: registrar política operativa de reset seguro 2026-09-05 22:21:04 -03:00
4 changed files with 55 additions and 43 deletions
+12
View File
@@ -47,6 +47,8 @@ jobs:
cache-dependency-path: web-v2/package-lock.json
- run: npm ci
- run: npm run typecheck
- name: F3.1 WEB contract
run: bash ../scripts/check-f3-1-web-contract.sh
- run: npm run build
contract:
@@ -62,5 +64,15 @@ jobs:
done < <(find scripts -type f -name '*.sh' -print0)
- name: Validate Compose
run: docker compose --env-file .env.example config >/dev/null
- name: VPS-equivalent isolated API preflight
run: |
set -Eeuo pipefail
image="dhv2-api:ci-vps-preflight-${GITHUB_SHA::12}"
docker build --target builder -t "$image" api-v3
docker run --rm \
-v "$PWD/api-v3/test:/app/test:ro" \
-v "$PWD/api-v3/tsconfig.test.json:/app/tsconfig.test.json:ro" \
"$image" npm test
docker image rm "$image" >/dev/null 2>&1 || true
- name: Build production images
run: docker compose --env-file .env.example build api migrate web
+6 -31
View File
@@ -1,35 +1,10 @@
# DH Inspección V2 · D5.6.2
Hotfix de mantenimiento de Fase D para accesos Android y contrato de regresión de cierre.
# DH Inspección V2
Versión: **0.19.5-1**
Fase: **D5.5.1 · Corrección de staging de planificación**
Repositorio del sistema DH Inspección V2.
D5.5.1 conserva íntegramente D5.5 y corrige únicamente el contrato de pruebas de staging. D5.5 consolida la preparación de visitas desde oficina antes del trabajo de campo. La visita queda anclada explícitamente a Área y Organización operadora, y el sistema genera un checklist auditable con antecedentes, respuestas vencidas, controles vencidos y próximos controles.
## Estructura
## Alcance D5.5
- selección web Área → Organización operadora vigente;
- fecha y equipo inspector dentro del plan;
- checklist automático versionado y append-only;
- respuestas de empresa vencidas y controles de verificación vencidos;
- próximos controles dentro de 30 días de la fecha planificada;
- antecedentes históricos del mismo contexto;
- incorporación automática de registros accionables;
- alta manual de registros preventivos del mismo Área/Operadora;
- exclusiones sólo mediante motivo auditable;
- reincorporación sin borrar la exclusión histórica;
- visitas de verificación integradas al mismo contrato de planificación;
- cambio de contexto o fecha invalida el checklist hasta regeneración explícita;
- inicio de visita exclusivamente desde APK mediante la política móvil ya existente.
## Migración
`1789063200000-phase-d5-5-web-planning-checklist.ts`
`PhaseD55WebPlanningChecklist1789063200000`
## Despliegue
El despliegue debe partir exactamente de API/WEB **0.19.4-1** y ejecutar `scripts/deploy-phase-d5-5.sh`. Antes de modificar producción, el script compila API y web en staging y exige **252 tests** aprobados.
- `api-v3/`: API v3.
- `web-v2/`: aplicación web.
- `scripts/`: utilidades operativas y de despliegue.
- `docs/`: documentación técnica.
@@ -52,15 +52,3 @@ test('F3.1 fuerza Área → Yacimiento → Instalación → Subinstalación en s
assert.match(service, /SUBINSTALACION: 'instalacion'/);
assert.match(service, /INVENTORY_SUBINSTALLATION_FAMILY_PARENT_INVALID/);
});
test('F3.1 retira Relevamientos del dashboard y usa alta guiada de cuatro niveles', () => {
const layout = readFileSync('../web-v2/src/layout/AppLayout.tsx', 'utf8');
const app = readFileSync('../web-v2/src/app/App.tsx', 'utf8');
const page = readFileSync('../web-v2/src/pages/InventoryCreatePage.tsx', 'utf8');
assert.doesNotMatch(layout, /label: 'Relevamientos'/);
assert.match(app, /path="\/relevamiento\/\*" element={<Navigate to="\/inventarios" replace \/>}/);
assert.match(app, /path="\/inventarios\/nuevo" element={<InventoryCreatePage \/>}/);
for (const kind of ['AREA', 'YACIMIENTO', 'INSTALACION', 'SUBINSTALACION']) assert.match(page, new RegExp(`kind: '${kind}'`));
assert.doesNotMatch(page, /kind: 'EQUIPO'/);
assert.match(page, /getInventoryFamilyFindings/);
});
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -Eeuo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
LAYOUT="$ROOT/web-v2/src/layout/AppLayout.tsx"
APP="$ROOT/web-v2/src/app/App.tsx"
PAGE="$ROOT/web-v2/src/pages/InventoryCreatePage.tsx"
for file in "$LAYOUT" "$APP" "$PAGE"; do
test -f "$file" || {
echo "F3.1 WEB contract: falta $file"
exit 1
}
done
if grep -Fq "label: 'Relevamientos'" "$LAYOUT"; then
echo "F3.1 WEB contract: Relevamientos no debe volver al menú principal"
exit 1
fi
grep -Fq 'path="/relevamiento/*"' "$APP"
grep -Fq 'Navigate to="/inventarios" replace' "$APP"
grep -Fq 'path="/inventarios/nuevo"' "$APP"
grep -Fq 'InventoryCreatePage' "$APP"
for kind in AREA YACIMIENTO INSTALACION SUBINSTALACION; do
grep -Fq "kind: '$kind'" "$PAGE"
done
if grep -Fq "kind: 'EQUIPO'" "$PAGE"; then
echo "F3.1 WEB contract: el alta guiada no debe restaurar EQUIPO como quinto nivel estructural"
exit 1
fi
grep -Fq 'getInventoryFamilyFindings' "$PAGE"
echo 'F3.1 WEB contract: OK'