feat(matilda): detección de drift con docker inspect

matilda-discover gana discover_inventory(): corre docker inspect en
cada contenedor y compara contra el spec deseado — imagen, puertos,
env y volúmenes declarados. Si el contenedor que corre se desvió, el
plan emite un Update; si está al día, no hay acción. La comparación es
por satisfacción (lo extra que trae la imagen se ignora).

El CLI (--discover) y el shell (:matilda) ahora usan discover_inventory
en vez del descubrimiento por nombre: detectan no sólo qué crear y
eliminar, sino la deriva de configuración de lo que ya existe.

container_drift es puro — 6 tests nuevos con JSON de docker inspect.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 20:44:50 +00:00
parent fdf820edbb
commit b7181da7d9
6 changed files with 228 additions and 5 deletions
+25
View File
@@ -961,3 +961,28 @@
1 · El ejecutable
apps/matilda ya es un ejecutable CLI completo:
cargo run -p matilda -- example > /tmp/inv.json
cargo run -p matilda -- plan /tmp/inv.json --discover
cargo run -p matilda -- apply /tmp/inv.json --host deploy@servidor
2 · Embebido en el shell — cargo run -p shuma-shell
matilda ahora es una herramienta del shell, no una app aparte. Dentro de la ventana de shuma:
:matilda plan /tmp/inv.json → tarjeta con el plan de reconciliación
:matilda script /tmp/inv.json → tarjeta con el script bash
:matilda apply /tmp/inv.json → ejecuta el script de verdad
- Reconcilia contra el estado real de la máquina (lee tus contenedores docker + sitios nginx).
- plan/script aparecen como tarjetas sintéticas en el feed.
- apply corre el script como cualquier comando: salida en streaming, captura acotada, botón de matar, acordeón — todo el aparato del shell,
gratis.
- El panel [RUN] tiene ahora una sección [tools] con ⚙ matilda — un clic precarga :matilda plan en el input para que sólo nombres el archivo.