From 8f2d8e2a0c1bd50ea2aea219b29c0af1da7efc40 Mon Sep 17 00:00:00 2001 From: dev Date: Tue, 29 Sep 2026 13:12:30 +0200 Subject: [PATCH] Handoff: the 22 v0.9 corrections are applied datekeys-go 4a025d1 applies all 22 corrections of the final review of the v0.9 draft, plus four places that repeated them. The author decided correction 2 on 29-09: the section 56 rule is softened, so the streaming readers of Go and TypeScript stay valid. Correction 10 drafts open question 4 as a MAY. Step 1 of the work order is done; next is the author's approval of the text. Co-Authored-By: Claude Opus 5.5 --- HANDOFF.md | 26 +++++++++++++------------- spec_v0.9/README.md | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index 4e9bc6f..9608f1b 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -34,7 +34,7 @@ Los repos con remoto están en el Gitea privado `g.activething.com` (solo LAN, c |---|---|---|---| | `datekeys-go` (`go/DateKeys`) | `main` | `3e4755e` | Spec v0.8.2 cerrada, con el tag anotado **`spec-v0.8.2`** en `9ac9cd9`. Después, `datekeys.SpecVersion`, `datekeys.Version()` y `datekeys version`, sin cambios en `testdata`. | | | `v0.8.2` | `9ac9cd9` | El commit del tag; ya no hace falta. | -| | `v0.9` | `1189f2f` | Borrador del spec v0.9, sin aprobar (§2.5). | +| | `v0.9` | `4a025d1` | Borrador del spec v0.9 con las 22 correcciones del repaso final, sin aprobar (§2.5). | | `datekeys-ts`, antes `App` (`go/DateKeys-App`) | `main` | `5ee8813` | Desde `5ee8813`, sin `docs/` y con el paquete `datekeys-ts` (§0). Versión `0.1.0-dev`, que implementa el spec 0.8.2 (`VERSION` y `SPEC_VERSION`, también en el pie de la página). Librería TypeScript con la inspección (pasos 1 a 8) y la apertura (pasos 9 a 18), en memoria o desde un `Blob` hacia un stream de salida, como un fichero OPFS. Página `/inspect` con la acción "abrir". `testdata` sincronizado a `9ac9cd9`. Fase 2 completa (pasos 2 a 8), incluidos el cifrado tlock y la interoperabilidad de TypeScript a Go. Los 65 casos del corpus pasan por `open` con el código y el paso de Go. 2 611 tests, ninguno saltado; `npm run verify` en verde. | | `docs` (solo local) | `main` | | Este repo: handoff, planes, revisiones y reglas. | | `web` (solo local) | `main` | `f2b8a38` | Landing de datekeys.com. | @@ -89,14 +89,14 @@ El vector de GT (`vectors/tlock_ibe.json`) ya está cubierto en `App`. El paso 9 ### 2.5 Sesión del 29-09 por la noche: fase 3 y v0.9 del spec (retomar aquí) **Estado al parar:** -- `datekeys-go`, rama `v0.9` (`1189f2f`, subida): borrador del spec v0.9, sin aprobar, en `spec/DateKeys_Protocol_Specification_v0.9.md`, con `spec/datekeys.cddl` actualizado. `main` no cambia. -- El repaso final encontró 22 problemas, no 21, cada uno con su arreglo propuesto. Están en [spec_v0.9/review.md](spec_v0.9/review.md), la salida del workflow `spec-v0.9-draft`. -- **Comprobado el 29-09 a mediodía: no hay ninguno aplicado.** El borrador no cambió después de la revisión: los números de línea coinciden, y los 15 problemas que se revisaron uno a uno conservan el texto original. -- Hay que aplicarlos todos y verificarlos. Tres puntos: - - el 2.º, el MUST NOT de §56 frente a los lectores que escriben en streaming, necesita una decisión del autor: suavizarlo, o mantenerlo entre las reglas que tiene que confirmar; - - el 10.º, sobre §70, da por respondida la pregunta abierta 4; - - el 4.º es la entrada v0.9 de `spec/README.md`. -- Después hay que ejecutar `go test ./...`, por si algún test lee el CDDL. +- `datekeys-go`, rama `v0.9` (`4a025d1`, subida): borrador del spec v0.9, sin aprobar, en `spec/DateKeys_Protocol_Specification_v0.9.md`, con `spec/datekeys.cddl` y la entrada v0.9 de `spec/README.md`. `main` no cambia. +- El repaso final encontró 22 problemas, no 21, cada uno con su arreglo propuesto: [spec_v0.9/review.md](spec_v0.9/review.md). El 29-09 a mediodía no había ninguno aplicado. +- **Hecho el 29-09 (`4a025d1`):** aplicadas las 22 correcciones, más cuatro sitios que repetían los mismos problemas: las reglas 1 y 4 del §62.1 y los cambios 4 y 10 del §76. Los números de la corrección 1 se recalcularon con un Padmé en BigInt, y `go test ./...` pasa. +- La corrección 2 la decidió el autor el 29-09: se suaviza el §56. + - El lector MUST NOT presentar el contenido como válido antes de que termine el paso 17. + - Un lector en streaming MUST NOT escribir el relleno y MUST señalar el error para que se descarte lo escrito. + - Así siguen valiendo `Open(dst)` de Go y la salida en streaming de TypeScript. +- La corrección 10 redacta la pregunta abierta 4 como MAY: solo un generador de vectores de prueba puede escribir el formato 1 (§62.1, regla 1, y §70). El autor puede cambiarlo al aprobar el texto. - En este repo están [PLAN_fase3_escritura.md](PLAN_fase3_escritura.md), el plan del writer TypeScript, y [REVISION_completitud_protocolo.md](REVISION_completitud_protocolo.md), la revisión del protocolo. El plan describe aún el writer de la v0.8.2 y hay que replantearlo sobre la v0.9. **Decisiones del autor del 29-09 para la v0.9:** @@ -117,16 +117,16 @@ El vector de GT (`vectors/tlock_ibe.json`) ya está cubierto en `App`. El paso 9 1. L como `bstr` de 8 bytes, no como `uint`. 2. Si el lector informa del formato con SHOULD o con MAY. 3. Si se mantienen el objetivo 8 de §4 y el no objetivo nuevo de §5. -4. Un generador de pruebas que escriba el formato 1. +4. Un generador de pruebas que escriba el formato 1. Está redactada como MAY (corrección 10). 5. El prefijo `format2_` en los fixtures. 6. Señuelos como claves públicas aleatorias válidas, sin clave privada. 7. Puntos del twist: MAY o SHOULD. -Hay además reglas añadidas fuera de D1-D7 que confirmar: L_MAX = 2⁵³ − 2⁴⁶, el orden uniforme de los stanzas, y el MUST NOT de §56 sobre entregar el contenido antes de que termine el paso 17. +Hay además dos reglas añadidas fuera de D1-D7 que confirmar: L_MAX = 2⁵³ − 2⁴⁶ y el orden uniforme de los stanzas. La tercera, la del §56, ya está decidida: se suaviza (corrección 2). **Orden de trabajo:** -1. Aplicar y verificar las 22 correcciones. -2. El autor aprueba el texto de la v0.9. +1. Aplicar y verificar las 22 correcciones. Hecho el 29-09 (`4a025d1`). +2. El autor aprueba el texto de la v0.9, con las preguntas abiertas y las dos reglas de arriba. 3. La referencia Go implementa el formato 2, con fixtures nuevos y mutaciones, y pasa `check.sh`. 4. Se pone el tag `spec-v0.9`. 5. `datekeys-ts` sincroniza `testdata` y el lector TypeScript abre el formato 2. diff --git a/spec_v0.9/README.md b/spec_v0.9/README.md index 972a93f..193e231 100644 --- a/spec_v0.9/README.md +++ b/spec_v0.9/README.md @@ -8,6 +8,6 @@ Salida del workflow `spec-v0.9-draft` del 29-09-2026, que redactó el borrador d | [security.md](security.md) | Revisión adversarial del diseño: seguridad y privacidad | | [consistency.md](consistency.md) | Revisión del diseño: coherencia, compatibilidad e implementabilidad | | [report.md](report.md) | Informe de la redacción: secciones cambiadas y comprobaciones | -| [review.md](review.md) | Revisión final del borrador: 22 correcciones, sin aplicar a 29-09 | +| [review.md](review.md) | Revisión final del borrador: 22 correcciones, aplicadas el 29-09 en `4a025d1` | Los números de línea de `review.md` se refieren al borrador de `1189f2f`.