You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
14 KiB
14 KiB
Next Steps
Estado al cierre:
- Gate completo verde:
npm run test:all->check+test+build+test:static+test:bundle. - Suite unitaria verde:
npm test-> 108 archivos, 1208 tests. - Typecheck verde:
npm run check-> 0 errores, 0 warnings. - Build estatico verde:
npm run build. - Static smoke verde:
npm run test:static-> 6 assets/rutas generadas verificadas. - Bundle smoke verde:
npm run test:bundle->createActiveApp({})en 65.30 KB gzip, limite por defecto 70 KB viaACTIVE_BUNDLE_GZIP_LIMIT_KB. fmtsverde:npx vitest run src/arts/fmts-> 14 archivos, 39 tests.connverde:npx vitest run src/arts/conn-> 5 archivos, 28 tests.authverde:npx vitest run src/arts/auth src/svrs/auth src/libs/auth-> 4 archivos, 14 tests.- Refactor tecnico posterior:
svrs/auth/engine-auth.tsya delega CSRF encsrf-flow.ts, coherente con password/session/recovery/device flows.svrs/auth/handlers.tsdelega helpers HTTP/CSRF/error-safe enhandler-runtime.ts; conserva solo rutas y delegacion al engine.arts/aapp/active-app.svelte.tsdelega invalidacion Auth -> Permissions/Cache enintegrations/auth-cache.ts.libs/cach/engine.tscentraliza eventos de lectura conemitForContext(...).arts/conn/connection.tsusacreateConnectionIdFactory(...)desde helpers.arts/conn/connection.tsdelega auth/request/ACK request-reply enconnection-requests.ts.svrs/auth/adapters/memory-store.tsqueda como composition root de 39 lineas; la logica se reparte en stores internos de credentials, flows, linked accounts, sessions/devices, refresh y state/snapshot.arts/perm/client.tsdelega transporte HTTP/JSON enclient-http.ts; el cliente queda centrado en cache, snapshot y fallback.arts/perm/client.tsdelega TTL, cache positiva, backoff de fallos e invalidacion por prefijo enclient-cache.ts.arts/http/engine-http.tsdelega ejecucion de cada intento, hooks pre-request y diagnosticos request/network enrequest-attempt.ts.arts/timr/engine-timers.tsdelegaTimerHandlecancel/reschedule entimer-handle.ts.arts/stor/engine-storage.tsdelega IDs de adapter, bus keys y suscripciones cross-tab enadapter-registry.ts.arts/stor/engine-storage.tsdelega el registro de defaults conflictivos endefaults-registry.ts.libs/cach/engine.tsdelega creacion/escritura/fetch-store de envelopes enruntime-io.ts.libs/cach/engine.tsdelega safe-delete y clear enruntime-delete.ts.arts/sess/engine-session.tsdelega la clasificacionnone/anonymous/identifiedensession-identity.ts.arts/sess/engine-session.tsdelega snapshot, generation, dispatch, persistencia y commits ensession-state.ts.arts/sess/engine-session.tsdelega la resolucion de revoke local/global/degradado ensession-revoke.ts.arts/sess/engine-session.tsdelega refresh, stale-generation, validacion y diagnosticos de refresh ensession-refresh.ts.arts/perm/client.tsdelega claves/scope de cache enclient-keys.tsy lectura de snapshot enclient-snapshot.ts.arts/stor/engine-storage.tsdelega lectura/escritura/validacion/migracion de entradas enentry-runtime.ts.arts/stor/entry-runtime.tsdelega defaults, serializer, validate y merge-defaults enentry-values.ts.arts/timr/engine-timers.tsdelega armado nativo, ejecucion, finalizacion e intervalos entimer-runner.ts.arts/cach/active-cache.svelte.tsdelega la entry reactiva enactive-cache-entry.svelte.tsy normalizacion de errores en helper compartido.arts/auth/active-auth.svelte.tsdelega CSRF, POST autenticados, validacion de respuestas, normalizacion de errores e invalidacion de cache enactive-auth-runtime.ts.arts/conn/connection.tsdelega apertura/cierre logico eisConnectedenconnection-lifecycle.ts.arts/conn/connection.tsdelega la programacion de reconnect y exhaustion enconnection-reconnect-runtime.ts.libs/perm/evaluator.tsdelega helpers puros de resultado, dependencias, cadenas logicas y comparacion enevaluator-helpers.ts.arts/http/engine-http.tsdelega la validacion preflight debodySchemaenrequest-validation.ts.arts/http/engine-http.tsdelega la resolucion final de response/error enresponse-resolution.ts.arts/sium/core/pipe.tsqueda centrado en composicion; factoriesrefine/transform/codec/metaviven ensteps.ts.libs/cach/engine.tsdelega lecturaget()enruntime-get.ts.libs/cach/engine.tsdelega escrituraset()enruntime-set.ts.libs/cach/engine.tsdelegaquery()enruntime-query.ts; conserva composition root para context/io/delete/invalidate/mutate/explain.arts/sium/engine-sium.tsdelega resolucion Lang/fallback e issues enengine-resolver.ts.arts/sium/engine-sium.tsdelega wrappersvalidate/validateSyncy diagnostico de validacion enengine-validation.ts.arts/conn/connection.tsdelega decode/routing de frames entrantes enconnection-message-router.ts.arts/conn/connection.tsdelega el intento open/auth/flush/join enconnection-connect.ts.arts/conn/connection.tsdelega current transport, attach/detach y close enconnection-transport-runtime.ts.arts/conn/connection.tsdelega cierre intencional y close-event handling enconnection-close.ts.arts/conn/connection.tsdelega disposed/reuse/singleflight de connect enconnection-connect-controller.ts.arts/timr/engine-timers.tsdelega fan-out de listeners y diagnostico de listeners entimer-events.ts.arts/timr/engine-timers.tsdelega la construccion de entradas internas entimer-entry.ts.arts/timr/engine-timers.tsdelega cancelacion y seleccion por scope entimer-cancel.ts.arts/timr/engine-timers.tsdelega entrada viva, contexto de task y max-runs entimer-entry.ts.libs/color/segments.tsreutiliza helpers locales para canales requeridos y parsing por rango RGB/HSL.libs/days/segments.tscentraliza el formateo de hora 12h y mantiene imports agrupados.
- Integracion total ampliada:
Auth.signOut()valida anonimizacion, invalidacion dePermissionsy eventoCache.invalidate. - Tanda focalizada verde:
npx vitest run src/arts/conn src/libs/cach src/arts/cach src/svrs/cach src/arts/auth src/svrs/auth src/libs/auth src/arts/aapp/test/ecosystem.integration.test.ts-> 19 archivos, 82 tests. /test/ecosystemrevisado en navegador: carga sin errores de consola,arcambia artl, Formats se actualiza por locale, Perm cambia con rolviewer, Cach re-scopea por locale y Conn loopback publica/recibe.src/arts/aapp/test/ecosystem.integration.test.tsampliado para cubrir rolviewerno-allow y cache re-scoped por locale.- Referencias residuales de marca anterior eliminadas de
src/fuera de rutas temporales: docs, páginas de test y constantes de cookies/headers auth usan ahoraActive/active. src/arts/conn/README.mdampliado: contrato de raíz/conexión/canal, estados, transportes, request/reply, reconnect, heartbeat, sesión, diagnostics/logger, errores y testing.src/arts/fmts/README.mdampliado con guia de uso,LocaleSource, contrato auto/manual, submodulos, listeners, integracion conaappy tests.fmtsredujo boilerplate activo con helpersreadFrom/writeToy los engines comparten directamente las funciones decreateFormatsLocaleState; APIs públicas sin cambios.src/web/routes/temp/corregido: scripts tipados, warnings Svelte eliminados y compatible connpm run check.aappintegration reforzado:Connectionscreadas antes deSessreciben eventos posteriores de sesion y cierran en revoke.aappcomposition reforzado:Frontend.dirreacciona a locale solo mientras esta enauto; los overrides manuales no se pisan.src/arts/fend/README.mdampliado: API, composicion via App, contrato auto/manual, locale/dir, salida DOM, integracionadom, persistencia, SSR y tests.src/arts/logr/README.mdaclara contrato comunLoggeren$libs/logryDiagnosticscomo capa catalogada encima del logger, sin mini-loggers por modulo.- Checklist
before_0_1.mdalineada con el estado real: CI sin lint global de momento,test:allcomo gate de release, presupuesto de bundle en 70 KB gzip y docs de versionado/public surface. - Nuevo smoke estatico
scripts/static-smoke.mjsintegrado en CI ytest:all; verifica landing docs, instalacion, AI agents, security,/test/ecosystemy manifest. - Docs de
/active/get-started/installation,/versioningy/ai-agentsactualizadas con vocabulario de gates (check,test,build,test:static,test:bundle,test:all). - Tests de superficie pública en
src/arts/aapp/test/active-app.test.tscubren roots always-present y factorias scoped. - Tests de
permcubren stalebatch()ywhat()tras cambio de actor/snapshot. svrs/permtiene contrato DB operativo:loadActivePermissionPolicies,createPermissionDatabaseProviders, repositorios tipados para políticas/relaciones, tests focales y SQL PostgreSQL reforzado con target generated columns, índice por target, unique active-version y check de effect en audit.- Docs de
svrs/permy/active/docs/permexplican tablas, lifecycle de políticas, provider de relaciones, tenant resolution, wiring server y audit de decisiones. svrs/cach/README.mdcreado: documenta boundary server/client, API deEngineCache, scopes seguros, policies, invalidacion por epochs, integracion auth/sess/perm, contrato de adapters, observabilidad, seguridad y tests.svrs/authtiene SQL PostgreSQL de referencia ensrc/svrs/auth/sql/postgres.sqly README ampliado con mappingAuthRepository, tablas, reglas de produccion, refresh rotation con locks y limpieza periodica./active/docs/authy/active/docs/cachreflejan ahora las piezas server: persistencia DB de auth, tablas de referencia,createDbAuthAdapter, boundary cache server/client y modelos de adapter.before_0_1.mdalineado con evidencias actuales: S1/S2/S3/S4/S5/S6/S7 y A1/A2/A3/A4/A5 quedan cerrados;SECURITY.mdcubre cookie scopes, CSRF, refresh rotation, OAuth state/PKCE, MFA actual y actor/tenant model.before_0_1.mdtambien marca como cerrados repo hygiene, build/tooling y assets de marca segun ficheros reales (README,SECURITY,CONTRIBUTING,CHANGELOG,.github,static/*,app.html)..gitignoreevita que estado local de.claude/,.opencode/y.idea/vcs.xmlentre accidentalmente en commits.- Memory adapters de auth/cache emiten warning productivo deduplicado; los harness de test lo suprimen donde corresponde.
cachexponedefaultMemoryAdapterpara configurar solo el adapter memory implícito cuando no se pasaadapter; las rutas/test/aapp,/test/cach,/test/conn,/test/ecosystemy/test/permlo usan para silenciar el warning productivo de forma explícita en demos/prerender sin apagarlo para apps reales.- Validación focal posterior al ajuste de
cach:npm run check,npx vitest run src/libs/cach src/svrs/cach src/arts/cach src/arts/aapp/test/active-app.test.ts,npm run buildynpm run test:staticverdes. - Documentación de
busscorregida para reflejar el código real:App.Buscentral, contratos en$libs/buss, engine en$buss, eventos públicos víapublishApp*/onApp*,BusEnvelopereal (at, no CloudEvents puro) y sin sección obsoleta de gaps ya implementados. - Tests de
aapp/connnormalizados para publicarAPP_EVENT_USER_IDENTITY_CHANGEDmediantepublishAppUserIdentityChanged(...), de modo que la suite ejercita las mismas guardas de runtime/payload que la app. - Validación focal posterior al ajuste de
buss:npx vitest run src/arts/buss/test/engine-bus.test.ts src/libs/aapp/test/events.test.ts src/arts/aapp/test/active-app.test.ts src/arts/aapp/test/session-translator.test.ts src/arts/aapp/test/ecosystem.integration.test.ts src/arts/conn/test/connection.test.ts-> 6 archivos, 74 tests verdes;npm run checkverde. - Integración total ampliada con un caso
permissionsRefresh + tenantSwitched + localemientras una conexión de chat sigue abierta:permissionsRefreshinvalida solo Permissions,tenantSwitchedlimpia Permissions + Cache sin reautenticar el socket, y el cambio de locale re-scopea Cache/Formats/Frontend sin reauth. - Integración total ampliada con un caso de webhook/realtime de permisos:
connrecibepermissions.changed, la app publicaAPP_EVENT_PERMISSIONS_REFRESH_REQUESTEDmediante helper seguro,Permissionsinvalida por opt-in, descarta respuestas stale en vuelo yCache/Connectionsno hacen side-effects destructivos. - Integración total ampliada con un caso de revocación remota de sesión por realtime:
connrecibesession.revoked, la app revocaSess,aapppublica cambio de identidad,Permissions/Cachelimpian estado identity-scoped y el chat queda cerrado sin reutilizar credenciales. - Validación focal posterior al nuevo caso compuesto:
npx vitest run src/arts/aapp/test/ecosystem.integration.test.ts-> 9 tests verdes;npx vitest run src/arts/aapp/test/ecosystem.integration.test.ts src/arts/aapp/test/active-app.test.ts src/arts/buss/test/engine-bus.test.ts src/libs/aapp/test/events.test.ts src/arts/conn/test/connection.test.ts src/arts/cach src/arts/perm-> 7 archivos, 90 tests verdes;npm run checkverde. - No commitear
.idea/,.claude/ni.opencode/. - No commitear ni tocar
src/web/routes/temp/salvo peticion explicita; hay cambios locales entemp/c2que quedan fuera del commit de cierre.
Pendiente para manana:
- Revisar documentacion restante de todos los modulos con ojo de consumidor externo: API real, factories, metodos, opciones, errores, ejemplos, dinamicas auto/manual y errores comunes.
- Prioridad especial siguiente: decidir si los SQL de referencia de
auth/permson cierre suficiente para0.1o si hace falta un adapter ejecutable para un ORM concreto. - Continuar la reduccion de archivos grandes: prioridad
conn/connection.ts,svrs/auth/engine-auth.ts, helpers decachy piezas repetidas en docs/test harness. - Ampliar tests de integracion cruzada:
auth + sess + perm + cach + http + stor + fmts + conn + timr + logr, incluyendo login/logout, cambio de actor, invalidacion cache, cambio locale, permisos y reconnect. - Revisar la adopcion final del contrato comun
Logger/ diagnostics en todos los modulos, sin acoplar artefactos aarts/logr; primera pasada limpia salvoaappcomo composition root,arts/logry tests. - Mantener
npm run test:allcomo gate regular antes de commits grandes;npm run lintsigue siendo deuda global separada, no meter nueva deuda en archivos tocados.