DEV Community

Sui Gn
Sui Gn

Posted on

.me Kernel Checkpoint — 2026-04-05

Estado actual

La fase actual de hardening de .me se considera cerrada por ahora.
El kernel está estable, usable y testeado.
No hay un blocker activo que impida movernos a GUI.

Qué se hizo

Se endureció el plano secreto sin romper el contrato público:

  • Se mejoró el manejo de blobs secretos en /Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/src/crypto.ts.
  • Se mantuvo compatibilidad con blobs legacy.
  • Se agregó no determinismo por escritura (nonce por write).
  • Se agregó verificación de integridad fail-closed para blobs secretos.
  • Se acotó retención de material sensible en memoria en /Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/src/secret.ts.
  • Se agregó limpieza explícita de buffers temporales sensibles en /Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/src/crypto.ts.

Cambios concretos

/Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/src/crypto.ts

  • Hardening compatible del formato secreto actual.
  • Fallback de lectura para blobs legacy.
  • Verificación de integridad en tiempo constante.
  • Zeroing de Uint8Array temporales cuando fue posible.
  • Compatibilidad de entorno preservada para build/browser/UMD.

/Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/src/secret.ts

  • scopeCache acotado con LRU simple.
  • effectiveSecretCache acotado con LRU simple.
  • decryptedBranchCache acotado con LRU simple.
  • Se redujo la retención prolongada de objetos descifrados en memoria.

/Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/tests/contracts/dsl.contract.test.mjs

  • Test de no determinismo entre escrituras iguales.
  • Test de tampering fail-closed.
  • Test de compatibilidad con snapshots legacy XOR.
  • Test de caches secretos acotados bajo recorrido amplio.

Qué NO se hizo

  • No se migró a AES-GCM/ChaCha20 en el hot path del kernel.
  • No se volvió async me("path").
  • No se cambió el contrato del Proxy.
  • No se tocó el constructor que devuelve Proxy.
  • No se cambió el shape público de snapshots.
  • No se implementó v3.

Decisión importante

v3 NO es necesario para seguir avanzando hoy.
v3 queda como idea de infraestructura futura, no como trabajo inmediato.

Si en el futuro se cambia de verdad el layout del blob secreto, la derivación o el esquema crypto de forma incompatible, entonces sí debe existir un v3.
No se debe “parchar v2” cambiando el formato real sin cambiar versión.

Por qué se rechazaron algunas propuestas externas

No se adoptaron propuestas que:

  • cambiaban el formato real de v2 sin cambiar versión
  • rompían compatibilidad con blobs ya emitidos
  • ignoraban compatibilidad de entorno/UMD
  • quitaban o degradaban el hardening de memoria ya hecho
  • proponían crypto async en un kernel que hoy depende de lectura síncrona

Riesgos residuales reales

Estos sí quedan pendientes para una siguiente fase:

  • effectiveSecret sigue viviendo en Memory y snapshots en /Users/suign/Desktop/Neuroverse/neurons.me/this/.me/npm/src/types.ts.
  • La crypto sync actual está endurecida, pero no es todavía una AEAD estándar pura en el plano secreto principal.
  • Los strings en JavaScript no se pueden zeroear de forma real.
  • Un endpoint totalmente comprometido sigue siendo un escenario duro, como en cualquier app similar.

Siguiente fase recomendada para .me

Cuando se retome .me, el siguiente frente serio es:

  • reducir o eliminar exposición de effectiveSecret en memories/snapshots
  • revisar si conviene separar secretos persistidos de secretos operativos
  • evaluar un rediseño crypto más profundo sólo si se acepta el impacto arquitectónico

Validación que pasó

Se validó con éxito:

  • npm run test:ts
  • node tests/phases.test.js
  • npm run build
  • npm run test:contracts
  • npm run test:umd
  • npm run test:prebuild

Conclusión

.me queda estable para esta fase.
No está “perfecto para siempre”, pero sí quedó suficientemente endurecido, compatible y verificado como para mover el foco a GUI sin dejar un incendio atrás.

Top comments (0)