docs: Stage 2 — auto-alojamiento bit-a-bit confirmado in-VM (✓ REPRODUCIBLE)

Cierra la deriva entre los docs y lo ya probado/commiteado (818c157):
el rebuild in-rootfs corrió end-to-end (host↔VM) y of_tree(stage1')=
0039b2b9… igualó la referencia ⇒ ✓ REPRODUCIBLE.

- roadmap §track posterior: Stage 2 ☐→; "Siguiente" reapunta al
  auto-alojamiento puro (variante b) + ítems Stage 1 (bus único, atestación).
- SDD 11 §5/CLI: marcadores stage2 ◑→; §7 (intro/7.4/8) el rebuild in-VM
  deja de ser "lo que falta" y queda la variante (b) como corte pleno.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 09:01:19 -04:00
co-authored by Claude Opus 4.8
parent 818c157596
commit 44e04ca4a0
2 changed files with 42 additions and 15 deletions
+16 -4
View File
@@ -194,8 +194,14 @@ Diseño completo en [SDD 11 — Bootstrap from-scratch](11-bootstrap.md). Resume
init propio que la Fase 5 difirió ([ADR 0007](adr/0007-arje-como-init-propio.md)). Diseño en
[SDD 12](12-init-real.md); corrida y fixes en el [runbook](runbooks/stage1-vm-boot.md). Pendiente:
bus único (B.2: exponer el `CRASHED` a la capa de IA) y atestación (A1/A2).
- **Stage 2** — rebuild nativo dentro del rootfs y diff de hashes ⇒ auto-alojamiento
bit-reproducible.
- **Stage 2** — rebuild nativo dentro del rootfs y diff de hashes ⇒ **auto-alojamiento
bit-reproducible CONFIRMADO end-to-end (host↔VM)**. `KVM=1 MEM=24576
./scripts/selfhost-verify.sh` reconstruye los 4/4 dentro del rootfs Stage 1 con sólo su
propio toolchain (arje-zero cu=1 compila en ~27 min in-VM), sella el rootfs y su
`of_tree(stage1') = b3:0039b2b9…` **iguala** la referencia ⇒ `✓ REPRODUCIBLE: stage1' ==
stage1`. El último no-determinismo (#3, `arje-zero`/`codegen-units`) se cazó y eliminó
imponiendo `CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1` en el sandbox (commit `4c9bcc0`).
Corrida y veredicto en el [runbook](runbooks/stage1-vm-boot.md) §8.
- Reemplazar el init de Alpine por **tu init** (bus por pipes nativo) — habilita el `CRASHED`
real que la Fase 5 dejó diferido. **Decisión: adoptar `arje`** (init from-scratch ya existente
en el monorepo `tawasuyu`, con PID 1 + supervisión real) en lugar de escribir uno nuevo —
@@ -219,8 +225,14 @@ Diseño completo en [SDD 11 — Bootstrap from-scratch](11-bootstrap.md). Resume
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`.
- **Track posterior arrancado y con su hito mayor cerrado:** bootstrap from-scratch
Stage 0 → Stage 1 (booteado en QEMU, arje-zero como PID 1, `CRASHED` real) → **Stage 2
auto-alojamiento bit-a-bit confirmado** (`✓ REPRODUCIBLE`, host↔VM). Baseline reproducible
4/4: `of_tree(stage1)=b3:0039b2b9…` (cu=1).
- ⏭️ **Siguiente:** (1) auto-alojamiento *puro* — que hammer construya el toolchain semilla
desde fuente (no el zip de zig + Alpine como sustrato del builder), camino (b) de
[SDD 11 §7](11-bootstrap.md); (2) ítems Stage 1 pendientes: bus único (B.2: exponer el
`CRASHED` a la capa de IA) y atestación arje (A1/A2).
## Notas de entorno
- Desarrollo principal: laptop del autor.