@ -248,7 +248,7 @@ El vector de GT (`vectors/tlock_ibe.json`) ya está cubierto en `App`. El paso 9
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. 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. Después, a petición suya («sí, avanza main hasta la v0.10»), `main` avanzó hasta `cc35d2c` sin fusión y está subida.
5. **En curso:**`datekeys-ts` lee y escribe el formato 3 con su [plan](PLAN_formato3_ts.md). En la rama `v0.10` de `App`, sin subir, están hechos los pasos 0 y 1 (`fbb90b2`, las tablas y las reglas de rutas y de texto), del paso 5 el CRC-32 y la disposición del ZIP (`36096a9`), el paso 2 (`d9a9cf5`, el códec) el paso 3 (`b176ad2`, la lectura del formato 3 con `testdata` en `spec-v0.10`) y el paso 4 (de `3daa1f7` a `2efc8bc`: `encryptFiles`, `encrypt` solo con `testVectors`, `/create` en formato 3 con un fichero, y la interoperabilidad con Go). Sigue el paso 5, el ZIP y el sumidero de la página.
5. **En curso:**`datekeys-ts` lee y escribe el formato 3 con su [plan](PLAN_formato3_ts.md). En la rama `v0.10` de `App`, sin subir, están hechos los pasos 0 y 1 (`fbb90b2`, las tablas y las reglas de rutas y de texto), del paso 5 el CRC-32 y la disposición del ZIP (`36096a9`), el paso 2 (`d9a9cf5`, el códec) el paso 3 (`b176ad2`, la lectura del formato 3 con `testdata` en `spec-v0.10`) y el paso 4 (de `3daa1f7` a `2efc8bc`: `encryptFiles`, `encrypt` solo con `testVectors`, `/create` en formato 3 con un fichero, y la interoperabilidad con Go). El paso 5, el ZIP y el sumidero de la página, está en `ee82f43`. Sigue el paso 6, la página `/inspect`.
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`, subida con el tag `spec-v0.10` en `cc35d2c`, un commit o varios por paso del plan:
| 2 | Códec del formato 3, sin tocar la trama: `BODY`, `security` y head, y `ERR_HEAD_INVALID` | Hecho el 30-09, `d9a9cf5`: los casos de las pruebas Go, con los textos de Go sacados de la referencia |
| 3 | Lector y `testdata` en `spec-v0.10`: `VERSION` 3, control de versión 3, paso 17 en subpasos, sumidero y lectura hasta EOF | Hecho el 30-09, `b176ad2`: los 209 casos del corpus con el texto exacto de Go, congelado en `testing/mutation-texts.json` |
| 4 | Escritor: `encryptFiles`, en dos fases y con dos lecturas; `encrypt` solo para vectores | Hecho el 30-09, de `3daa1f7` a `2efc8bc`: los cinco fixtures de `EncryptFiles` byte a byte, los textos de Go, `/create` en formato 3 con un fichero, y Go abre seis cápsulas de formato 3 de TypeScript |
| 5 | ZIP de la página y su sumidero en OPFS | Hechos el CRC-32 y la disposición del ZIP. Falta que `archive/zip` de Go lea lo que escribe la página |
| 5 | ZIP de la página y su sumidero en OPFS | Hecho el 30-09, `36096a9` y `ee82f43`: `ZipSink` con escrituras posicionadas, y `archive/zip` de Go lee las muestras, 65 535 entradas incluidas |
| 6 | Página `/inspect`: veredictos, autor, comentario, rutas y descargas | Un fichero suelto o un ZIP en OPFS, con la descarga de cada fichero |
| 7 | Página `/create`: ficheros y carpetas, rutas editables, exclusiones, comentario, autor y mtime | Tamaño exacto antes de escribir, y una cápsula que abren Go y la propia página |
| 8 | Documentación, verificación y revisión adversarial | README, CHANGELOG, `npm run verify` y una revisión adversarial del lector, del escritor y de las páginas |