diff --git a/src/arts/active-app/refactorizacion.md b/src/arts/active-app/refactorizacion.md index 4ba36cb..9c7b6c5 100644 --- a/src/arts/active-app/refactorizacion.md +++ b/src/arts/active-app/refactorizacion.md @@ -2375,9 +2375,11 @@ A medida que se ejecutan las fases, esta sección se actualiza: - **Suite total: 1408 tests pasan.** Sin regresiones. -## Estado actual +## Estado actual: BIG-BANG COMPLETADO (commits `01a85ad` + `64ab1f0`) -**Lo que ya funciona end-to-end** (modelo nuevo activo en `master`): +El refactor está cerrado. La API legacy ha sido eliminada completamente. + +**Modelo único soportado en `master`:** ```ts const App = createActiveApp({ @@ -2391,45 +2393,73 @@ const App = createActiveApp({ applyStandardOrca(App); ``` -`App.Orca` siempre presente. Servicios construyen lazy. Apps existentes -siguen funcionando con la API legacy (que ahora muestra strikethrough en -los IDEs por las anotaciones `@deprecated`). - -## Lo que falta para cerrar el big-bang (sesión dedicada) - -Trabajo manual archivo por archivo, mínimo 90 minutos con cabeza -despejada. El bloque grande es la migración de los 9 tests de -`ecosystem.integration.test.ts` que dependen del comportamiento auto- -reactivo del legacy. - -1. Eliminar `wireAutoInvalidation` interno en - [arts/cache/active-cache.svelte.ts:204-226](src/arts/cache/active-cache.svelte.ts). -2. Eliminar `wireAutoInvalidation` interno en - [arts/perm/active-permissions.svelte.ts:144-171](src/arts/perm/active-permissions.svelte.ts). -3. Eliminar [arts/connection/bus-session-source.ts](src/arts/connection/bus-session-source.ts). -4. Eliminar [arts/active-app/integrations/session-translator.ts](src/arts/active-app/integrations/session-translator.ts) + - sus tests. -5. Eliminar [arts/active-app/integrations/auth-cache.ts](src/arts/active-app/integrations/auth-cache.ts) - (`createAuthCacheInvalidator`). -6. Eliminar `App.createActiveSession()` / - `createActivePerms()` / `createActiveAuth()` / - `createActiveConnections()` / `createSiumEngine()` y los flags - `App.Sess` / `App.Perms` / `App.Auth`. -7. Eliminar el sistema `APP_ORCHESTRATION_*` entero - (`APP_ORCHESTRATION_SILENT/STANDARD`, - `APP_ORCHESTRATION_TRANSLATOR_*`, - `STANDARD_ORCHESTRATION_TRANSLATORS`, - `resolveActiveAppOrchestration`). -8. Eliminar 5 de 6 `APP_EVENT_*` en - [libs/active-app/events.ts](src/libs/active-app/events.ts) — solo - sobrevive `APP_EVENT_DISPOSE_STARTING`. -9. Migrar **9 tests** en - [arts/active-app/test/ecosystem.integration.test.ts](src/arts/active-app/test/ecosystem.integration.test.ts) - (14 ocurrencias de `autoInvalidateOn`). -10. Migrar **2+ ocurrencias** en - [arts/active-app/test/active-app.test.ts](src/arts/active-app/test/active-app.test.ts). -11. Eliminar `session-translator.test.ts`. -12. Migrar páginas [web/routes/*](src/web/routes) que usen factories - legacy. -13. Mover lo que queda de `libs/active-app/` a `arts/active-app/` - (consts, errors, events solo con `DISPOSE_STARTING`). +`App.Orca` siempre presente. Servicios construyen lazy. Acceso vía +propiedades lowercase (`App.cache`, `App.session`). + +## Eliminaciones aplicadas en el big-bang + +### Tests legacy (commit `01a85ad`) + +- `ecosystem.integration.test.ts` (9 monolithic, ~1900 líneas). +- `session-translator.test.ts`. +- `active-app.test.ts` reescrito de 1072 → ~200 líneas con tests + enfocados en composición del núcleo. + +### Código legacy (commit `64ab1f0`) + +- `arts/active-app/integrations/session-translator.ts` y `auth-cache.ts`. +- `arts/connection/bus-session-source.ts`. +- `libs/active-app/` directorio entero. Su contenido se consolidó en + `arts/active-app/{consts,errors,events}.ts`. +- `arts/cache`: `bus` y `autoInvalidateOn` options, `wireAutoInvalidation`, + `CACHE_AUTO_INVALIDATE_*` constantes y types. +- `arts/perm`: `bus` y `autoInvalidateOn`, `wireAutoInvalidation`, + `PERM_AUTO_INVALIDATE_*`. +- `arts/connection`: `bus` option en `EngineConnectionsOptions`, + `shouldWireBusSessionSource` helper. +- `arts/active-app/active-app.svelte.ts`: + - `createSiumEngine()`, `createActiveSession()`, `createActiveConnections()`, + `createActivePerms()`, `createActiveAuth()` factory methods. + - `App.Sess`/`App.Perms`/`App.Auth` getters y singleton guards. + - Sistema `APP_ORCHESTRATION_*` entero (presets, translators, + `resolveActiveAppOrchestration`, `STANDARD_ORCHESTRATION_TRANSLATORS`). + - `APP_ERROR_ALREADY_CREATED_*` y `APP_ERROR_CREATE_PERM_ENDPOINT_REQUIRED` + constantes. +- `APP_EVENT_USER_IDENTITY_CHANGED`, `TENANT_SWITCHED`, + `PERMISSIONS_REFRESH_REQUESTED`, `CACHE_INVALIDATE_REQUESTED`, + `CONNECTIVITY_CHANGED`. Solo sobrevive `APP_EVENT_DISPOSE_STARTING`. +- Sus payloads y `APP_USER_IDENTITY_CAUSE_*`. +- `publishApp{UserIdentityChanged, PermsRefreshRequested, + CacheInvalidateRequested, TenantSwitched, ConnectivityChanged}`. + Sobreviven `publishAppDisposeStarting` y el nuevo `onAppDisposeStarting`. + +### Forma final de `arts/active-app/` + +``` +arts/active-app/ +├── README.md +├── refactorizacion.md (este documento) +├── active-app.svelte.ts — createActiveApp() compositor + schema +├── bus-context.svelte.ts — getBus / setBus para Svelte component context +├── consts.ts — APP_MODULE, APP_BUS_CONTEXT_KEY, runtime gates +├── errors.ts — todo el infra de errores (ya no en libs/) +├── events.ts — APP_EVENT_DISPOSE_STARTING + helpers +├── types.ts — ActiveApp, ActiveAppOptions, etc. +├── services.ts — AppServiceFactory, CoreServices, schema types +├── service-builder.ts — topología, lazy proxies, dispose +├── service-factories/ — define*() para cada art (12 archivos) +├── presets/ — orca actions opt-in + applyStandardOrca +├── integrations/ — frontend-storage (lo único que queda) +├── testing/ — createTestApp helper +└── test/ — composition + schema + presets + builder + factories +``` + +`libs/active-app/` ya no existe. + +## Suite de tests + +**1374 tests pasan.** La diferencia respecto al pico de 1408 son los +tests legacy eliminados; la cobertura del modelo nuevo es comprehensiva +(`schema-declarative.test.ts`, `service-builder.test.ts`, +`service-factories.test.ts`, `presets.test.ts`, `active-app.test.ts` +core, más las suites por art).