hammer-upgrade: upgrades atómicos con generaciones y rollback (Etapa E4, primer corte)

Crate hammer-upgrade + CLI 'hammer upgrade apply|rollback|status'. Aplica un
árbol Stage1/producto del store sobre el FHS vivo dejando una generación
(manifest + backup de bytes previos), atómico fichero-a-fichero con 'current'
como commit-point. Rollback restaura EXACTO al árbol anterior (o pre-upgrades).
Cada cambio al journal (HammerHydrate, replay-able). Verificación opcional del
of_tree esperado (índice de mirror E3 / release firmada). Maneja ficheros +
symlinks. 7 tests unitarios + scripts/upgrade-e2e-test.sh (apply v1->v2->
rollback->rollback contra el binario real). SDD 13 actualizado.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 21:46:14 -04:00
co-authored by Claude Opus 4.8
parent 30daab35e6
commit d23946fa3d
8 changed files with 953 additions and 2 deletions
Generated
+15
View File
@@ -545,6 +545,7 @@ dependencies = [
"hammer-journal",
"hammer-mirror",
"hammer-overlay",
"hammer-upgrade",
"hex",
"serde_json",
"sha2",
@@ -613,6 +614,20 @@ dependencies = [
"tracing-subscriber",
]
[[package]]
name = "hammer-upgrade"
version = "0.0.1"
dependencies = [
"anyhow",
"hammer-core",
"hammer-journal",
"serde",
"serde_json",
"tempfile",
"thiserror",
"tracing",
]
[[package]]
name = "hammerd"
version = "0.0.1"