- Split crypto: crypto-node.ts (node:crypto) · crypto-web.ts GENUINO
(subtle+getRandomValues, cero node:crypto en su grafo; sin subtle LANZA
AuthConfigError {port:'crypto'} — el fallback silencioso web→node MUERE:
quien quiera node lo pide) · crypto-test.ts queda solo el determinista.
- Entry $svrs/auth/testing: las 12 factorías test/mock salen del entry de
producción (index.ts conserva scrypt, db y los dos cryptos reales). Guard
de producción compartido adapters/production-warning.ts (warn única
indexada POR MENSAJE — memory-store conserva su semántica exacta y su
API vía alias de tipo); constante nueva en $libs/auth/consts. 7 suites
migradas al entry nuevo. svrs/index.ts NO reexporta testing (a propósito).
- verifyPassword (scrypt): guard temprano de longitud
(> PASSWORD_MAX_LENGTH ⇒ {ok:false} sin ejecutar scrypt — anti-DoS; el
camino de signIn no pasaba por la política de longitudes) y pre-check de
longitudes ante timingSafeEqual ({ok:false} en vez del RangeError de
node con params inconsistentes).
- test/server-boundary.test.ts: censo real de importadores de $svrs/auth
en arts/uix/web (6218 ficheros inspeccionados, umbral anti-vacío, los
hits de docs son template literals blanqueados y el matcher se
auto-testea con fixtures). La convención *.server.ts NO se introduce:
decisión de framework del AUTOR, dicha en el handoff.
- Docs: authExample del docs-site deja de enseñar el hasher de test como
receta (scrypt + crypto explícito); README de auth corrige logr→logger /
timr→timer.
- Tests nuevos: scrypt roundtrip/longitud/params corruptos/needsRehash ·
cryptos web+node · entry testing con su warn. Suite auth 67/67 (14
ficheros); check estable en 71.
Deudas NOMBRADAS (no ampliadas): scryptAsync puede lanzar con params que
node rechace de raíz (catch amplio taparía fallos reales) · README:103
sigue optimista sobre validación en signIn (la política solo corre en
signUp/reset; el guard del hasher tapa el DoS).
Ejecutado por agente Opus 5 sobre medición previa citada; sesión
coordinando y verificando (index limpio, testing poblado, guards en sitio,
suite re-corrida).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>