The author authorized the push and the tag. The branch v0.10 of
datekeys-go and the annotated tag spec-v0.10 are on the remote at
cc35d2c; main stays at v0.9.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Handoff DateKeys, 26 de septiembre de 2026 (actualizado el 30 por la noche: el formato 3 implementado en la referencia Go)
# Handoff DateKeys, 26 de septiembre de 2026 (actualizado el 30 por la noche: el formato 3 implementado en la referencia Go y la spec v0.10 cerrada con su tag)
Estado al parar la sesión del 26 por el límite semanal de uso. Se actualizó el 28 de septiembre tras cerrar la v0.8.2 del spec (§2.1), el 29 de madrugada tras cerrar la fase 2 (§2.2), el 29 a mediodía tras reorganizar el espacio de trabajo (§0) y el 29 por la noche tras implementar el formato 2 de la v0.9 en Go y en TypeScript, poner el tag `spec-v0.9` y escribir el writer TypeScript con su interoperabilidad con Go (§2.5). El 30 de madrugada se diseñó el formato de cápsula 3 y Fable lo revisó; a mediodía se aplicaron al diseño esa revisión y las decisiones del autor, y quedó separado en tres entregas; por la tarde, el autor cerró las preguntas de la entrega 1, y se redactó y revisó el borrador del spec v0.10 (§2.5, al final). Por la noche, el autor aprobó ese borrador, con Unicode 18.0.0 y la regla de invisibles, y la referencia Go implementó el formato 3 (§2.5, al final). Sirve para retomar sin contexto previo, sea una persona o una sesión de Claude.
@ -37,7 +37,7 @@ Los repos con remoto están en el Gitea privado `g.activething.com` (solo LAN, c
| `datekeys-go` (`go/DateKeys`) | `main` | `7e2d83c` | Spec v0.9 cerrada, con el tag anotado **`spec-v0.9`** en `7e2d83c`; SHA-256 del spec `36189e1e62f0f835b7665219aa63df7200cd89ac4e4e924f2705f970fa7c40a9`. Implementa el formato 2 (`f24a280`): lo escribe y lee los formatos 1 y 2. `scripts/check.sh 60s` limpio. La v0.8.2 sigue en su tag, `spec-v0.8.2` (`9ac9cd9`). |
| | `v0.8.2` | `9ac9cd9` | El commit del tag; ya no hace falta. |
| | `v0.9` | `7e2d83c` | Igual que `main`; ya no hace falta. |
| | `v0.10` | `6fa2b54` | Spec v0.10, entrega 1 del formato 3, aprobada por el autor el 30-09 e implementada: escribe el formato 3 y lee los formatos 1 a 3, con `SpecVersion` 0.10. SHA-256 del spec `7f26419a444aa3e89a3aa8afbbba9d952af69e048aee1e93cd70732c2d1d99d1`. `scripts/check.sh 60s` limpio. Sin subir: la rama y el tag `spec-v0.10` esperan la autorización del autor (§2.5). |
| | `v0.10` | `cc35d2c` | Spec v0.10, entrega 1 del formato 3, aprobada por el autor el 30-09, cerrada con el tag anotado **`spec-v0.10`** en `cc35d2c` e implementada: escribe el formato 3 y lee los formatos 1 a 3, con `SpecVersion` 0.10. SHA-256 del spec `7f26419a444aa3e89a3aa8afbbba9d952af69e048aee1e93cd70732c2d1d99d1`. `scripts/check.sh 60s` limpio. Subida con autorización del autor; `main` sigue en la v0.9. |
| `datekeys-ts`, antes `App` (`go/DateKeys-App`) | `main` | `da26862` | Desde `5ee8813`, sin `docs/` y con el paquete `datekeys-ts` (§0). Versión `0.2.0-dev` desde `8c08c97`, con `v0.1.0` cerrada en `d577283`; implementa el spec 0.9 desde `0118890` (`VERSION` y `SPEC_VERSION`, también en el pie de la página). Escribe el formato 2 y tiene la página `/create` (fase 3, §2.5). Librería TypeScript con la inspección (pasos 1 a 8) y la apertura (pasos 9 a 18) de los formatos 1 y 2, en memoria o desde un `Blob` hacia un stream de salida, como un fichero OPFS. Página `/inspect` con la acción "abrir", que muestra el formato y avisa del 1. `testdata` sincronizado a `7e2d83c` (`spec-v0.9`). Fase 2 completa (pasos 2 a 8), incluidos el cifrado tlock y la interoperabilidad de TypeScript a Go. Los 125 casos del corpus pasan por `open` con el código, el paso y el texto de Go. En `0118890`, 5 425 tests, ninguno saltado; la fase 3 añadió los suyos, con `npm run verify` en verde en cada paso (§2.5). |
| `docs` (solo local) | `main` | | Este repo: handoff, planes, revisiones y reglas. |
@ -91,7 +91,7 @@ El vector de GT (`vectors/tlock_ibe.json`) ya está cubierto en `App`. El paso 9
### 2.5 Sesiones del 29-09: v0.9 del spec y formato 2 en Go (retomar aquí)
**Estado al parar (30-09 por la tarde). Retomar por el formato 3, al final de esta sección:** el borrador del spec v0.10 de la entrega 1 está redactado y revisado en `datekeys-go`, rama `v0.10` (`9d1cd2e`, sin subir). El autor eligió Unicode 18.0.0 y dio el visto bueno al texto con «la 18.0.0, adelante». Antes de implementar faltan dos respuestas suyas: el permiso para descargar los datos de Unicode 18.0.0 y de WindowsBestFit, y la propuesta sobre los caracteres invisibles, que Unicode 18 señala como vía de ataque a aplicaciones de IA.
**Estado al parar (30-09 por la noche). Retomar por el formato 3, al final de esta sección:** la spec v0.10, entrega 1 del formato 3, está aprobada, implementada en la referencia Go y cerrada con el tag `spec-v0.10`, todo subido en la rama `v0.10` de `datekeys-go` (`cc35d2c`). Lo siguiente es el formato 3 en `datekeys-ts`.
**Estado al cerrar la fase 3 (29-09 por la noche):**
- Pasos 1 a 5 hechos. El spec v0.9 está cerrado con el tag `spec-v0.9` (`7e2d83c`, en `main` de `datekeys-go`), y las dos implementaciones leen el formato 2: Go desde `f24a280`, que también lo escribe, y TypeScript desde `0118890`.
@ -247,11 +247,11 @@ El vector de GT (`vectors/tlock_ibe.json`) ya está cubierto en `App`. El paso 9
1. Hecho: el autor eligió Unicode 18.0.0 («no vamos a trabajar con unicodes ya pasados») y dio el visto bueno al texto. El borrador lo recoge en su rama, y el diseño, en su decisión 4.
2. Hecho: el autor aprobó la regla de invisibles («sí a las dos»), que el spec recoge en R4b y en §29.6 (`631d09c`).
3. Hecho: con su permiso se descargaron los 19 ficheros de datos, 8,25 MB, en `datekeys-go/.cache/`, fuera de git.
4. Hecho: la referencia Go implementa el formato 3, con el [plan](PLAN_formato3_go.md) y el detalle de abajo. **Pendiente del autor:** autorizar la subida de la rama `v0.10` y el tag `spec-v0.10`, como en la v0.9.
4. Hecho: la referencia Go implementa el formato 3, con el [plan](PLAN_formato3_go.md) y el detalle de abajo. Con la autorización del autor («sí, sube la rama y pon el tag»), la rama `v0.10` y el tag anotado `spec-v0.10` están en el remoto, en `cc35d2c`, que solo cambia textos para nombrar el tag. `main` sigue en la v0.9.
5. **Siguiente:**`datekeys-ts` sincroniza `testdata` y lee y escribe el formato 3, con un plan propio.
6. La entrega 2 abre la versión siguiente del spec, y la 3 espera al documento «Servicio de sellado DateKeys v1». Para otra revisión externa, el artefacto hay que volver a publicarlo desde el diseño nuevo.
**Hecho el 30-09 por la noche: el formato 3 en Go.** Rama `v0.10` de `datekeys-go`, sin subir, un commit o varios por paso del plan:
**Hecho el 30-09 por la noche: el formato 3 en Go.** Rama `v0.10` de `datekeys-go`, subida con el tag `spec-v0.10` en `cc35d2c`, un commit o varios por paso del plan:
- `631d09c`, el spec con la regla de invisibles; `6fba1dd`, paso 1, `internal/pathrule` con las tablas de Unicode 18.0.0 y best-fit generadas y su `TablesDigest`; `72e86b8`, paso 2, el códec de `BODY`, `security` y el head.
- `7249ef4`, paso 3, el lector: `capsule.Sink`, `ErrSinkRequired` justo tras el paso 2, el paso 17 en subpasos con su precedencia, y lecturas de `BODY` que crecen con los bytes recibidos (§57).
- `8955c0f`, paso 4, el escritor `capsule.EncryptFiles`, que lee cada fichero dos veces; `Encrypt` solo escribe el formato 2 con `EncryptOptions.TestVectors`.
@ -296,7 +296,7 @@ Están en el [README](README.md#reglas) de este repo, que el `CLAUDE.md` de la r
- En este repo están los planes, la revisión del protocolo y los papeles de la v0.9. El [README](README.md#documentos) los lista.
- En `datekeys-go`:
- `spec/DateKeys_Protocol_Specification_v0.10.md`, aprobado e implementado en la rama `v0.10`, pendiente de su tag; `spec/DateKeys_Protocol_Specification_v0.9.md`, cerrado con el tag `spec-v0.9`; `spec/DateKeys_Protocol_Specification_v0.8.2.md`, `spec/datekeys.cddl` y `spec/README.md`;
- `spec/DateKeys_Protocol_Specification_v0.10.md`, cerrado con el tag `spec-v0.10`; `spec/DateKeys_Protocol_Specification_v0.9.md`, cerrado con el tag `spec-v0.9`; `spec/DateKeys_Protocol_Specification_v0.8.2.md`, `spec/datekeys.cddl` y `spec/README.md`;
- `testdata/README.md`, que documenta los ficheros compartidos para segundas implementaciones;
- `docs/traceability.md` y `CHANGELOG.md`.
- Las herramientas de verificación de las sesiones del 26 al 28-09 estaban en carpetas temporales y pueden haber desaparecido: el diferencial Go/TypeScript de `tsreview/` y las copias congeladas `dkgo-ref-<commit>`. Su descripción está en los mensajes de los commits de `datekeys-ts` y en su README.
# Plan: formato 3 en la referencia Go (spec v0.10, entrega 1)
*Estado, 30-09 por la noche: pasos 0 a 8 hechos en la rama `v0.10`, sin subir; el tag `spec-v0.10` espera la autorización del autor. Detalle en el [handoff](HANDOFF.md), §2.5.*
*Estado, 30-09 por la noche: pasos 0 a 8 hechos; la rama `v0.10` está subida, con el tag `spec-v0.10` en `cc35d2c`. Detalle en el [handoff](HANDOFF.md), §2.5.*
*30 de septiembre de 2026. Implementa en `datekeys-go`, rama `v0.10`, el texto que el autor aprobó ese día: la entrega 1 del formato 3, con Unicode 18.0.0 y la regla de invisibles. Fuentes: el spec v0.10 de esa rama y [spec_v0.10/formato3_diseno.md](spec_v0.10/formato3_diseno.md). Después, `datekeys-ts` seguirá con su propio plan.*
@ -23,7 +23,7 @@
| 5 | CLI | Hecho, `a0de80f` |
| 6 | Datos de prueba | Hecho, de `3c39336` a `18eb3c3` |
| 7 | Documentación y versión | Hecho, `20f9959`; `SpecVersion` pasó a 0.10 en el paso 6 |
| 8 | Verificación y cierre | Hecho, `6fa2b54`, salvo el tag `spec-v0.10`, que espera al autor |
| 8 | Verificación y cierre | Hecho, `6fa2b54`; el tag `spec-v0.10`, en `cc35d2c`, con la autorización del autor |