Documento originalAbrir .md

SAFE-1 v2 — contención de fallos con auditoría de reintentos normales

2026-09-17. Verde en el dominio funcional y SITL declarado.

Evidencia reservada B C
Episodios funcionales válidos 512/512 512/512
Vuelos válidos, sin hallazgos 6/6 6/6
Fallos contenidos con aterrizaje nativo 5/5 5/5
Objetivos enviados en vuelos con fallo 0 0
Máximo tiempo hasta veto 288 ms 269 ms
Máximo veto → desarmado 27.723 ms 24.638 ms
Error verdadero de llegada nominal 153 mm 141 mm

Los diez vuelos con fallo muestran pérdida GCS, failsafe y AUTO_LAND en ULog, sin NAV_LAND externo ni recuperación de misión. Los dos nominales completan su objetivo; ACK por sí solo no cuenta como llegada. C ejercita también dos intentos normales de armado, con rechazo y aceptación posteriores verificados por el auditor corregido. No se relajaron plazos ni envolventes.

Auditoría en proceso nuevo válida, exit 0; tres manipulaciones del informe (numerador, hash de traza y lock, incluso recalculando su certificado) rechazadas. Regresión final: 108 tests, todos pasan. Certificado: eecb77b8c0b9c2146eafa996857c3d94189b3252ff418b6292523acaa0086c37. Informe: lab/echo3_safe1_v2_report.json; recibo: lab/safe1-v2/audit-receipt.json.

Lock: a34abbccae92af8d228c794fa49d95f38f6fdbae8a71efbf4e4884acb5a2f5c9. 108 tests previos a B: 97 heredados y 11 del auditor de armado. Seis mutantes del supervisor/lease y cuatro corrupciones detectados.

V2 conserva exactamente el núcleo, IPC, lease, worker, adaptador, PX4 y parámetros de v1. Corrige sólo la confusión del auditor entre reintento normal tras rechazo y armado forzado. Exige correspondencia de todos los intentos con sus ACK y eventos, un único éxito final antes de supervisión, y cero armado forzado/desarmado externo. Ningún otro hallazgo se descarta. Contrato prospectivo.

Desarrollo reutilizado y reauditable: los seis vuelos y 128 episodios de A v1, todos válidos. No son seis vuelos nuevos. B/C v2 usan semillas nuevas; 512 episodios funcionales y seis vuelos por etapa. El B rojo de v1 y su C no abierto están vinculados al nuevo lock; no se reetiquetan como aprobación. V1 y su desarrollo anterior se conservan íntegros.

El dominio sigue siendo una transacción de un metro desde hover, con fallos inyectados antes del objetivo. Se congela el sello de captura/recepción entregado al supervisor, no el flujo privado ni un cable físico. Se ensayan salida/bloqueo real de proceso y WSP inválido por IPC. Sin recuperación automática; PX4 debe aterrizar por pérdida GCS sin NAV_LAND externo. No prueba seguridad general, fallos adversariales, hardware, navegación integrada, batería física ni el cierre de DRONE-3. Energía sim_u, sin LLM.

Reproducción

Desde echoai/:

PYTHONPATH=.. python3 -m unittest echoai.tests.test_safe1 echoai.tests.test_safe1_v2
PYTHONPATH=.. python3 -m echoai.nexus0.safe1_v2.bench audit

Auditoría reconstructiva en proceso nuevo, sin nuevos vuelos. Las fuentes y artefactos de todos los intentos anteriores permanecen vinculados por hash.

Vista previa

Abrir original