diff --git a/HANDOFF.md b/HANDOFF.md index ff29b6a..5b9d9a3 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -11,17 +11,31 @@ Sirve para retomar sin contexto previo, sea una persona o una sesión de Claude. **Para empezar:** 1. Abre la sesión en `G:\bussines\datekeys`, la raíz, no en `App`. Comprueba que corre en Opus. La memoria buena es la de la raíz. 2. Comprueba los repos con `git status` y `git log`: - - `datekeys-go`: rama `v0.12` y `main` en `fe405e2`, con el tag `spec-v0.12`; - - `App`: rama `v0.10` en `45e7e49`; - - `datekeys-dart`: rama `v0.12` en `62107d7`; la `v0.11` se queda en `bb66e48`; + - `datekeys-go`: rama `v0.12` y `main` en `fe405e2`, con el tag `spec-v0.12`; rama `v0.13` en `e9d4cec`, el borrador v0.13; + - `App`: rama `v0.10` en `a741efe`; + - `datekeys-dart`: rama `v0.12` en `62107d7` y rama `v0.13` en `4a0d4f7`; la `v0.11` se queda en `bb66e48`; - `docs`: rama `main` en el commit de este handoff. -3. **Lo siguiente lo decide el autor.** La v0.12 está cerrada y la librería Dart, completa. Lo abierto: - - las cinco decisiones pendientes del localizador, en el apartado de la sesión del 5 y 6 de octubre. Van a una v0.13, porque la v0.12 está cerrada; tocan a Go primero; - - el TypeScript: el localizador, la nota en la página y cerrar `0.2.0`; + + Si no se subieron al cerrar, `git status` lo dice: todo lo del 6-10 por la tarde y la noche se subió solo con permiso del autor. +3. **Lo siguiente lo decide el autor.** Lo abierto: + - aprobar el borrador v0.13, NAT64; + - las otras cuatro cuestiones del localizador (el CID no canónico, `[[…]]`, `ParseInfo` y el 1 MiB de `Open`), que irían también a la v0.13; tocan a Go primero; + - en TypeScript, la nota pública en la página y cerrar `0.2.0`; - medir el área de 32 KiB con firmas reales: la v0.12 se aprobó sin esa medida. **La app Flutter queda archivada** para más adelante, por decisión del autor del 6-10 («la aplicación de Flutter de momento se archiva para un futuro»). La librería Dart está lista para cuando se retome. +**NAT64 y el TypeScript (6-10, noche).** El autor dijo «adelante con el NAT64» y «sigues con TypeScript». +- **Borrador v0.13**, `datekeys-go` rama `v0.13` (`a83b44d`, `e9d4cec`), sin aprobar. El §44.1 cuenta una dirección de NAT64 a la que resuelve un nombre, de `64:ff9b::/96` o del prefijo de la red (RFC 6052, RFC 7050), por la IPv4 que lleva dentro; una dirección de NAT64 escrita en el localizador se sigue rechazando. El prefijo de la red tiene una longitud de RFC 6052 y está en `64:ff9b::/16` o es público, y una dirección suya cuenta solo por su IPv4 aunque el prefijo sea público: el primer código no lo hacía, y la sesión lo corrigió antes del commit. El §76 tiene el cambio 1 con su caso. `locator.CheckResolvedIP` y `testdata/vectors/resolved_ip.json`, 42 casos. `SpecVersion` sigue en 0.12. +- **Dart**, rama `v0.13` (`d65e218`, `4a0d4f7`): `checkResolvedIp(ip, nat64:)`, con los textos de Go. +- **TypeScript**, `v0.10`, de dos agentes Opus en paralelo, revisados e integrados: + - el localizador (`0d895bf`, `e2c51bc`): el paquete `locator` de Go entero, con un lector y escritor de `age` propio (`ageio.ts`) para reproducir los textos de `age` y fijar el azar. 6 531 casos contra Go con el mismo texto, sellado y sobres byte a byte, y Go abre lo que escribe TypeScript; + - NAT64 (`28f0c3f`), por la sesión; + - las claves de autor y la firma al escribir (`96614d5`, `9e5e3ba`, `a741efe`): `authorkey.ts`, `ed25519sign.ts` (firma propia) y los enganches `authorKey`, `cmsSigner`, `sealer` y `largeArea` del escritor. Ocho cápsulas firmadas y selladas byte a byte como Go, y Go abre las de TypeScript con los mismos veredictos. + + Ningún módulo nuevo: todos los de noble y `age-encryption` que importan ya estaban. `npm run verify` pasa con 8 017 pruebas y una aplazada. +- Los gates de Go y Dart pasan, con 2 175 pruebas en la VM de Dart y 665 en Node. + **La v0.12, aprobada (6-10, tarde).** El autor dijo «apruebo el borrador». Se aprobó el texto tal como estaba, sin añadir texto normativo, para no repetir el fallo E1 de la v0.11: - `datekeys-go` `fe405e2`: la cabecera del spec dice «6 octubre 2026, aprobado por su autor ese día», y es lo único que cambia del texto. `SpecVersion` 0.12; el campo `spec` de todo `testdata`, regenerado, y en los congelados `security_cms.json` y `locator.json`, cambiado a mano, solo ese campo. `spec/README.md` registra el SHA-256, `afc31fd8105d650773d093ac01bd2f5e0b56af04726f4e75c652e2cf9308ac3f`. Los README, `SECURITY.md`, la trazabilidad, `testdata/README.md` y el CHANGELOG nombran la v0.12. - El tag anotado `spec-v0.12` está en `fe405e2`, y `main` avanzó hasta él sin fusión.