Handoff: the reminder and the fuzz target done, the locator as decision 6

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main
dev 4 hours ago
parent eb994c50eb
commit 482748646e

@ -16,7 +16,7 @@ Sirve para retomar sin contexto previo, sea una persona o una sesión de Claude.
| Repo | Rama y commit | Tags | Qué es |
|---|---|---|---|
| `datekeys-go` | `v0.16` y `main` en `b6ff17a`; `v0.15` en `70d907b` | `spec-v0.16` en `b6ff17a`, y los de las versiones anteriores | Spec v0.16 aprobada, implementación de referencia, `testdata` compartido. En `v0.15`, tras su tag: `c49c67c` las palabras al azar, `27a75ee` el alfabeto de cada lista y la fuerza de las palabras, `96d8992` arregla `TestGenerate`, `e671032` la lista inglesa de la EFF, `92e7154` los dados, `aefc8f6` lo que dice el SDK al sellar y `70d907b` la licencia CC BY-ND 4.0. En `v0.16`: el borrador (`a2b71c2`, `2c29625`), su implementación (`7e3b810` a `3fd0e93`) y el cierre (`b6ff17a`) |
| `App` (`datekeys-ts`) | `v0.10` y `main` en `2c305cf` | `v0.5.0` en `2c305cf`, `v0.4.0`, `v0.3.0`, `v0.2.0`, `v0.1.0` | Librería TypeScript `0.5.0`, publicada el 7-10, de la spec 0.16, y páginas `/inspect` y `/create`, con las palabras al azar |
| `App` (`datekeys-ts`) | `v0.10` en `f37da12`; `main` en `2c305cf` | `v0.5.0` en `2c305cf`, `v0.4.0`, `v0.3.0`, `v0.2.0`, `v0.1.0` | Librería TypeScript `0.5.0`, publicada el 7-10, de la spec 0.16, y páginas `/inspect` y `/create`; en desarrollo la `0.6.0`, con el recordatorio |
| `datekeys-dart` | `v0.16` en `b53afdc`; `v0.15` en `e2296b0` | ninguno | Librería Dart completa, de la spec 0.16, con las palabras al azar; las ramas `v0.11` a `v0.15` se quedan atrás |
| `docs` | `main` | — | Este repo |
| `web` | `main` en `f2b8a38` | — | Landing de datekeys.com, sin remoto |
@ -60,9 +60,15 @@ La recuperación a largo plazo quedó hecha con la v0.15, las palabras al azar e
3. **La lista española de palabras**: que la revise alguien que hable español, o rehacerla con el corpus de Leipzig cuando su web vuelva (la descarga el autor: bloquea a los agentes).
4. **Un archivo o servicio de caché de releases** (§50): dónde, quién lo mantiene y si DateKeys ofrece el suyo.
5. **Dónde se publica**: el código (ni GitHub ni el Gitea), la página web (§59) y con ello `words.datekeys.com`, el paquete de recuperación (decisión 5 de la v0.16) y la primera release del módulo de Go.
6. **Menores**: renombrar la carpeta `App` y borrar `enquiry.php` de la raíz (desde el 29-09); un remoto para `web`; el permiso para reportar el posible fallo de dart2js.
6. **El localizador en las páginas** (§44.1): el lector MUST comprobar en cada conexión que la IP a la que resuelve una dirección es pública, y un navegador no ve esa IP. Propuesta: `/inspect` abre el localizador y muestra sus direcciones, la persona descarga el resto por su cuenta y lo da a la página, que no se conecta a nada; `/create` no crea sobres hasta que haya dónde alojar el resto. La otra opción, descargar desde la página, incumple el §44.1.
7. **Menores**: renombrar la carpeta `App` y borrar `enquiry.php` de la raíz (desde el 29-09); un remoto para `web`; el permiso para reportar el posible fallo de dart2js.
**Lo que sigue sin decisiones** («Librerías y clientes»): el aviso local para `round_time` (§62.1, regla 26, MAY), un objetivo de fuzzing para el lector estricto del JSON de drand, y el localizador en las páginas.
**Hecho después del cierre de la v0.16, sin decisiones** (7-10 por la noche):
- `provider.FuzzStrictJSON` (`0eb5aa0`), el objetivo 28 de `scripts/fuzz.sh`: lo que acepta el lector estricto del JSON de drand, `encoding/json` lo lee con los mismos nombres, textos, cadenas y ronda; 60 s sin diferencias.
- **El recordatorio en el calendario** (§62.1, regla 26, MAY): `encrypt -reminder` en Go (`7e6a03d`, `92f8cdc`) y «Descargar el recordatorio» en `/create` (`f37da12`, TypeScript `0.6.0-dev`). Un `.ics` (RFC 5545) a la hora de la ronda, con alarma y lo que hará falta para abrirla; los mismos bytes en Go y TypeScript, comparados con un texto calculado aparte. UID al azar; avisa de que un calendario sincronizado sabrá el nombre y la fecha. Probado en la página construida.
- La fila §62.1 de la trazabilidad decía en `b6ff17a` que la CLI no cumplía las reglas 26 y 27, que cumple desde `aefc8f6`: corregida en `7e6a03d`. El paquete de la revisión congela `b6ff17a`, con esa errata.
Sin decisiones no queda nada en «Librerías y clientes» salvo esperar a grpc 1.85.0.
### Protocolo
@ -88,9 +94,9 @@ La recuperación a largo plazo quedó hecha con la v0.15, las palabras al azar e
- los dados protegen de un generador trucado, no de una app que se quede con las palabras: eso solo lo cubre una app auditable (§59);
- el servicio `words.datekeys.com`, cuando haya sitio propio: ver las decisiones;
- quizá el alfabeto por idioma como regla del SDK en la versión siguiente del spec (§38.1). El riesgo de fondo es la app misma, que puede cambiar el generador: §59, builds reproducibles y releases firmadas.
- **Lo que queda de las recomendaciones al SDK:** el aviso local para `round_time` (§62.1, regla 26, MAY).
- **Las recomendaciones al SDK** están todas: el aviso local para `round_time` (§62.1, regla 26, MAY) es el recordatorio en el calendario (7-10).
- **La página web, cuando se publique** (§59): builds reproducibles con sus hashes, Subresource Integrity y un cliente sin conexión.
- **El localizador en las páginas:** las tres librerías lo tienen, pero `/create` no crea sobres e `/inspect` no descarga el resto.
- **El localizador en las páginas:** las tres librerías lo tienen, pero `/create` no crea sobres e `/inspect` no descarga el resto. Espera la decisión 6 de arriba: un navegador no puede comprobar la IP del §44.1.
- **Go no tiene ninguna release del módulo**; la primera, cuando haya un repo accesible desde fuera para `go get`. govulncheck avisa de GO-2026-6443 en grpc, que el código no alcanza: subir grpc cuando salga la 1.85.0.
- **Dart:** sin versión ni tag. Medir los tiempos en un móvil espera a la app.

@ -53,6 +53,8 @@ La documentación atrasada de la v0.14 (la trazabilidad, los README, la cabecera
### Lo que no he podido comprobar
- Una errata en el commit congelado: la fila §62.1 de `docs/traceability.md` en `b6ff17a` dice que la CLI no cumple las reglas 26 y 27, y las cumple desde `aefc8f6`. Está corregida después del tag, en `7e6a03d`; si el revisor la ve, es documentación atrasada.
- Que el H3 del texto coincide con `h3` de kyber: lo dice el spec y lo comprueban los vectores (`tlock_steps.json`, generado contra kyber), pero quien escribió el paquete no leyó kyber. Está como pregunta Q10.
- Los gates sí se pasaron en los commits congelados de la v0.16, en la misma sesión que puso el paquete al día (ver «Orden», punto 2).

Loading…
Cancel
Save

Powered by TurnKey Linux.