docs(roadmap): Fases 3/4/6 → ✅, Fase 5 ✅ con CRASHED diferido, estado actual al día
Sincroniza las cabeceras con la realidad: tras cerrar la op del watcher (Fase 3) y la anidación LIFO (Fase 2), ningún ítem de las fases 0–6 queda abierto salvo CRASHED real, explícitamente diferido al track posterior. Reescribe "Estado actual" (seguía describiendo el día 1) con el bucle agéntico validado, 214 tests verdes y el siguiente paso: bootstrap from-scratch del track posterior. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
fe9a2d50cf
commit
9f7c1aa040
+15
-8
@@ -54,7 +54,7 @@ pre-requisito de validación.
|
||||
`overlay_nested_stack_inside_userns`, gated en `HAMMER_OVERLAY_TESTS`. Pendiente menor:
|
||||
unicidad de orden entre procesos concurrentes (track posterior).
|
||||
|
||||
### Fase 3 — Diario de mutaciones ▶ *en progreso*
|
||||
### Fase 3 — Diario de mutaciones ✅
|
||||
- [x] Crate `hammer-journal`: `MutationEvent`, `Source` (HammerHydrate/HammerCommit/External),
|
||||
append/read/tail/follow JSON-líneas. RFC 3339 sin chrono.
|
||||
- [x] `hammerd` con `fanotify` (FAN_CLOSE_WRITE) sobre `/bin`,`/sbin`,`/usr/bin`,`/usr/sbin`,
|
||||
@@ -77,7 +77,7 @@ pre-requisito de validación.
|
||||
resuelve. El watcher hashea cada `CLOSE_WRITE` y usa `record_dedup`: una reescritura sin
|
||||
cambios ni ensucia el diario ni despierta el bus.
|
||||
|
||||
### Fase 4 — Formato y flujo `.swm` ▶ *en progreso*
|
||||
### Fase 4 — Formato y flujo `.swm` ✅
|
||||
- [x] `Swm` de/serialización YAML estable (roundtrip).
|
||||
- [x] `verify_schema` (estructura + invariantes por mutación) y `verify_base` (distro_version
|
||||
+ pins) con `BaseRef` / `BaseCompat`.
|
||||
@@ -107,7 +107,7 @@ pre-requisito de validación.
|
||||
`config_edit` + `file_drop`. `source_patch` reusa el camino de Fase 0/1 (gated en
|
||||
`HAMMER_NETWORK_TESTS`).
|
||||
|
||||
### Fase 5 — Bus de agente ▶ *en progreso*
|
||||
### Fase 5 — Bus de agente ✅ *(queda `CRASHED` real, diferido al track posterior)*
|
||||
- [x] `/run/init.control` (FIFO humano): `mkfifo`, reader que loguea cada línea, y
|
||||
`hammer ctl <line>` que escribe al FIFO con error claro si no existe.
|
||||
- [x] `/run/agent.sock` (JSON-líneas) con handshake `Hello/Welcome`, auth via
|
||||
@@ -136,7 +136,7 @@ pre-requisito de validación.
|
||||
gating `no_cap`, `Query`, `Modified` fan-out, `Init`→FIFO. Un `Compile` real reusa el
|
||||
camino de Fase 0/1 (gated en `HAMMER_NETWORK_TESTS`).
|
||||
|
||||
### Fase 6 — Integración de la IA ▶ *en progreso*
|
||||
### Fase 6 — Integración de la IA ✅
|
||||
- [x] Crate `hammer-agent` con tres piezas:
|
||||
- `AgentClient`: cliente síncrono del bus (handshake, `compile`/`inject`/`query`/`init`
|
||||
bloqueantes, drenado de eventos asíncronos).
|
||||
@@ -186,10 +186,17 @@ pre-requisito de validación.
|
||||
---
|
||||
|
||||
## Estado actual
|
||||
- ✅ Repo y workspace Rust inicializados.
|
||||
- ✅ SDDs y ADRs redactados.
|
||||
- ✅ Esqueletos de crates que compilan (`hammer build` stub).
|
||||
- ⏭️ Siguiente: implementar el sandbox de build real (Fase 0) y montar la VM/LXC Alpine.
|
||||
- ✅ **Fases 0–6 cerradas** sobre Alpine: build determinista → hidratación → overlay
|
||||
(con anidación LIFO) → diario (con `op` Create/Edit/Delete) → `.swm` firmado → bus de
|
||||
agente → bucle agéntico con IA (mock + Claude real tras `llm-claude`).
|
||||
- ✅ El bucle completo está validado: una intención en lenguaje natural produce un cambio
|
||||
probado en overlay, presentado para `commit` humano.
|
||||
- ✅ 214 tests verdes en el workspace (1 e2e de overlayfs gated en `HAMMER_OVERLAY_TESTS`;
|
||||
los de red en `HAMMER_NETWORK_TESTS`).
|
||||
- ⏳ Único ítem de las fases diferido: `CRASHED` real (necesita supervisión de servicios →
|
||||
init propio del track posterior).
|
||||
- ⏭️ **Siguiente: arrancar el track posterior** (distro propia). Primer paso natural sin
|
||||
bloquear nada: el bootstrap from-scratch Stage 0/1 con `zig`/`musl-cross-make`.
|
||||
|
||||
## Notas de entorno
|
||||
- Desarrollo principal: laptop del autor.
|
||||
|
||||
Reference in New Issue
Block a user