From 7a708aa282a49996b791676d715960984407b464 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 3 Jul 2026 01:11:21 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20SDD=2015=20=C2=A7H2a=20hecho=20?= =?UTF-8?q?=E2=80=94=20auditor=C3=ADa=20de=20determinismo=20wasm=20de=20wa?= =?UTF-8?q?wa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El subconjunto puro ya existe (ejecutar_dinamico/_v2, linker vacío); H2a lo sella con un contrato de clave de caché + hash-de-entorno. Deliverable en tawasuyu/03_ukupacha/wawa/SDD-determinismo.md. Desbloquea H2b (prototipo de memoización local blake3(módulo)⊕blake3(entrada)→salida). Co-Authored-By: Claude Opus 4.8 --- docs/15-frontier-ai-native.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/15-frontier-ai-native.md b/docs/15-frontier-ai-native.md index 26090726..05b4daef 100644 --- a/docs/15-frontier-ai-native.md +++ b/docs/15-frontier-ai-native.md @@ -101,10 +101,17 @@ capacidad expuesta (tiempo, random, I/O) filtre no-determinismo a la salida hash spike de wawa, no de hammer. **Tickets (spike, no fase):** -- **H2a** — Auditar determinismo del runtime wasm de wawa: enumerar toda fuente de no-determinismo +- **H2a** ✅ — Auditar determinismo del runtime wasm de wawa: enumerar toda fuente de no-determinismo alcanzable por una app (`wawa-kernel/src/wasm/`), y definir el subconjunto "puro" (módulo + entrada explícita, sin syscalls no deterministas). Salida: un doc `wawa/SDD` §determinismo con el veredicto honesto (qué es puro, qué no). + **Hecho (2026-07-03):** `tawasuyu/03_ukupacha/wawa/SDD-determinismo.md`. Veredicto: el subconjunto + puro **ya existe** en el código (`ejecutar_dinamico`/`_v2`, `wasm/mod.rs:335,430` — linker VACÍO + + reloj virtual + fuel/memoria fijos + wasmi 1.0 sin simd). H2a no era construirlo sino **sellarlo**: + contrato de clave `blake3(módulo)⊕blake3(entrada)⊕E` con `E` = hash-de-entorno (pin wasmi/features/ + fuel/mem/ABI); único vector residual acotado = payload de NaN vía `reinterpret` (sólo cross-build, + irrelevante para H2b local). La superficie de capacidades (`env/*.rs`) reintroduce no-determinismo + o efectos ⇒ NO memoizable; sólo la vía linker-vacío lo es. - **H2b** — Prototipo de `blake3(módulo)+blake3(entrada) → blake3(salida)` como caché local (un `LwwMap` de `shared/crdt`), sin malla todavía. Test: misma entrada ⇒ hit; recompute ⇒ byte-idéntico (o el determinismo está roto y H2a mintió).