DOCUMENTACIÓN / DEPENDENCIAS Y CONTINUIDAD
Dependencias y continuidad
Continuación material · 018
La comparación local .NET/FFI y WebAssembly ya está ejecutada: paridad de 79 casos, 36000 muestras y contención de fallos. La integración completa con el bus y R1 sigue pendiente. Los estados anteriores se conservan como antecedentes. Ver resultado, costes y límites actuales.
Alcance documental
Contraste del corte identificado y criterios pendientes. No es una nueva ejecución del prototipo ni un cierre de garantías.
Fecha de consulta: 6 de septiembre de 2026. Estado: inventario acotado y opciones identificadas; sin migración ni instalación de servicios. Corte del laboratorio: 893ccc19b74c1a1380e4ed8ec29d9c02dbb6928b.
Hecho y alcance
El prototipo 0.2 construido utiliza TCP local, socket Unix y SQLite incorporado. No requiere API remotas durante su funcionamiento. Su construcción, pruebas alojadas, custodia remota y documentación sí dependen de servicios externos. La ausencia de conectores remotos en el prototipo no demuestra autonomía del proceso de desarrollo.
Las ejecuciones #6 y #7, 34020051299 y 34020269127, fueron consultadas y constan terminadas correctamente. El fallo histórico #5 pertenece a A05; no demuestra agotamiento de cuota. El aviso sobre formato de tokens de instalación tampoco acredita un fallo de esas ejecuciones. No se ha consultado el saldo de facturación de la cuenta y no se estima a partir de una captura o del número de flujos visibles.
Inventario mínimo
| Capa | Dependencia observada | Sustitución o continuidad posible | Lo que sigue sin probarse |
|---|---|---|---|
| Código e historial | Repositorios GitHub; ramas y referencias diferenciadas | Copia Git íntegra con referencias; copia adicional de incidencias, revisiones y configuración necesarias | Restauración completa sin GitHub; Git por sí solo no conserva todos sus metadatos |
| Construcción | Rust 1.98.0, herramientas del sistema y paquetes Cargo fijados | Compilador conservado, dependencias locales verificadas y entorno descrito | Construcción completa sin acceso a registros remotos; Cargo.lock no contiene los paquetes |
| Ejecución de sondas | Ubuntu 24.04 alojado; Python; sudo, UID distinto y utilidades Linux | Mismos ejecutores locales en equipo o máquina virtual aislada | Repetición independiente equivalente y permisos materiales del equipo alternativo |
| Programación de trabajos | Archivo de Actions, acciones checkout y upload-artifact fijadas por commit | Comandos directos; posteriormente un planificador propio si se justifica | Sustitución de todos los comportamientos del proveedor |
| Evidencia | ZIP con manifiesto; copia en artefacto, logs y repositorio privado | Copia fuera del proveedor, íntegra, con restauración comprobada | Independencia de fallo: tres copias dentro de GitHub comparten proveedor |
| Documentación | HTML, CSS, JSON y JavaScript estáticos en Pages | Servidor estático alternativo o copia consultable localmente | Despliegue y restauración del sitio en otro alojamiento |
| Funcionamiento 0.2 | Bibliotecas locales, sistema operativo y almacenamiento | Conservar binario, fuentes y requisitos materiales | Seguridad integral de dependencias, plataforma y residuos |
La reproducción local del README omite la fase 0.2. Para reproducir el alcance actual deben ejecutarse, en un directorio nuevo y entorno preparado, entorno.py, campana.py, fase02.py y empaquetar.py, en ese orden, conservando códigos de salida y resultados. Los scripts de campaña utilizan Rust 1.98.0 y construcción con --locked. La compatibilidad de recetas no sustituye una ejecución verificada en otra máquina.
Hay además un acoplamiento de custodia al transporte de logs: empaquetar.py crea el ZIP, pero termina con error si su representación base64 supera 8.000.000 de caracteres. El cierre del paquete y la copia por logs deberán distinguirse cuando se prepare la reproducción autónoma. Esta observación procede de la fuente; no se ha provocado un nuevo fallo del empaquetador.
Límites del plan gratuito
La documentación oficial de facturación de Actions indica 2.000 minutos mensuales y 500 MB de artefactos para GitHub Free. La cuota de minutos pertenece al propietario; no es una cuota independiente por repositorio. El almacenamiento de artefactos comparte asignación con GitHub Packages; la caché tiene una asignación separada.
Los ejecutores estándar en repositorios públicos y los usos de Pages indicados por GitHub son gratuitos. Los ejecutores propios figuran actualmente sin cargo por uso de Actions. Si no existe un medio de pago válido, agotar la cuota bloquea el uso sujeto a ella; con pago, se aplican las condiciones y presupuestos de la cuenta. Estas condiciones deben volver a comprobarse antes de una decisión de gasto. No se modifica facturación, presupuesto ni retención.
Opciones examinadas
| Opción | Ventaja para este laboratorio | Dependencia o coste que permanece | Valoración |
|---|---|---|---|
| Equipo Linux o máquina virtual para ejecutar los comandos existentes | Separa la ejecución material de la programación de Actions con poca infraestructura adicional | Preparación, aislamiento, energía, copias y mantenimiento; compilador y paquetes deben estar disponibles | Primer candidato para un futuro ensayo de autonomía |
| Ejecutor propio conectado a GitHub Actions | Mantiene el flujo y controla el equipo | GitHub sigue programando y coordinando; exige aislamiento del ejecutor | Reduce dependencia de cómputo, no del proveedor |
| Forgejo y Forgejo Runner propios | Alojamiento Git e integración continua administrables; posibilidad de conservar paquetes y artefactos | Actualizaciones, identidad, copias, red, aislamiento y recuperación a cargo del proyecto | Candidato a base propia si se acredita la necesidad |
| Forgejo con Woodpecker | Separa alojamiento del código y motor de integración continua | Otro servicio y configuración adicional | Alternativa si aporta una función necesaria |
| GitLab administrado por el proyecto | Plataforma integrada con integración continua y más servicios | Mayor conjunto de componentes a dimensionar y mantener | No se propone desplegarlo para esta fase acotada |
Fuentes oficiales: administración de Forgejo Actions, Woodpecker y ejecución local, requisitos de instalación de GitLab. Forgejo y su ejecutor se instalan por separado; cambiar de motor exige comprobar compatibilidad de los flujos, no sólo copiar YAML. Su documentación identifica expresamente el ejecutor como una superficie de ejecución remota de código.
Una base propia puede reunir código, compiladores y paquetes, ejecución de pruebas, evidencias y documentación. No requiere que todo resida en un único equipo ni con los mismos privilegios. El ejecutor sometido a pruebas debe quedar separado de las copias de recuperación y de las credenciales de administración. Autohospedar desplaza la responsabilidad operativa; no elimina hardware, actualizaciones, electricidad, conectividad ni posibles servicios de alojamiento. No se han solicitado presupuestos ni dimensionado equipos.
Decisión acotada y criterio de salida futura
Se mantiene el circuito actual y se registra la dependencia. No se incorpora una plataforma, otro conector, un servicio de identidad, un registro remoto ni una migración. La primera reducción verificable sería una reproducción de la campaña desde una copia conservada, sin programación de Actions, acompañada de restauración de su evidencia.
Para afirmar autonomía frente a GitHub y los registros de descarga deberán conservarse y verificarse código, compilador, dependencias, herramientas del sistema y evidencia fuera de ese proveedor; ejecutar los mismos criterios sin acceso a esos servicios; y restaurar los resultados y la documentación. Una caché disponible o una copia que nunca se ha restaurado no cierra ese criterio. Las firmas y huellas acreditan integridad respecto de la referencia conservada; no demuestran que el productor de la evidencia fuera honesto.
La custodia externa y el ensayo autónomo quedan pendientes. No condicionan por sí solos las correcciones intrínsecas del Lenguaje, pero deben constar entre las obligaciones de continuidad de la infraestructura. No se presentan como una nueva garantía semántica del SV.
Incidencia posterior y repetición identificada
La ejecución 34021807895, número 8 produjo 16 PASS y un ERROR A04 por una carrera al detener un proceso que había desaparecido. No fue un fallo de cuota ni de transporte del paquete. La fase 0.2 quedó sin ejecutar en esa tanda.
La corrección acotada del controlador fue verificada en 34022055251, número 9: 17 testigos iniciales, 24 casos de fase 0.2 y 7 comprobaciones de limpieza correctos. El paquete completo está conservado en el registro 012, privado. El binario 0.2 es idéntico al anterior; el ejecutor expone ahora Intel Xeon, por lo que sus tiempos no se atribuyen causalmente a la corrección. Esta repetición sigue utilizando Actions y no acredita autonomía.
Comprobación local de recuperación · registro 014
Se recuperó la copia conservada de la ejecución #9 en un directorio nuevo fuera de Actions. El ZIP coincide con su objeto Git y con el SHA-256 fijado en el registro 012. Se verificaron CRC, conjunto de archivos y las 4.066 entradas del manifiesto antes y después de escribirlas en disco: 4.067 archivos restaurados, incluido el propio manifiesto. Tres controles sintéticos detectaron alteración, ausencia y adición de archivos.
El verificador no utiliza la red ni ejecuta el contenido del paquete. Se cotejaron los resultados históricos restaurados: 17 casos iniciales, 24 de fase 0.2 y 7 de limpieza. Son resultados de #9, no nuevas ejecuciones del prototipo. El guion y el resultado reproducible constan en el registro 014 · privado.
Esta comprobación reduce una incertidumbre concreta: el paquete puede inspeccionarse y restaurarse sin Actions. No acredita recompilación autónoma, recuperación de la instalación, una copia externa duradera ni repetición de las sondas en otra plataforma. Rust y Cargo no están disponibles en el PATH del entorno de recuperación; no se les atribuye una ejecución. El saldo real de la cuenta sigue sin consultar.
La revisión oficial mantiene GitHub Free en 2.000 minutos mensuales y 500 MB de artefactos; los ejecutores propios mantienen la coordinación de GitHub. La opción de menor alcance sigue siendo un entorno Linux aislado que ejecute los comandos del proyecto con compilador y dependencias conservados. Forgejo con su ejecutor es candidato para una base administrada por el proyecto si aparece una necesidad material. GitLab y Woodpecker siguen como alternativas estudiadas, sin instalación ni elección definitiva.
El criterio de autonomía permanece abierto: conservar y restaurar también fuentes completas, herramientas y dependencias; compilar y repetir los criterios sin descargar; conservar evidencia y documentación fuera del proveedor con recuperación comprobada. No se añade un servicio ni se cambia el flujo actual.