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.
svelte-kit-vice/docs/process/active-architecture-snapsho...

65 lines
3.2 KiB

# active_architecture.md — session snapshot (May 2026)
Pulled out of `src/uix/active_architecture.md` so that doc reads as a timeless
architecture reference. This is the dated session framing (the "Handoff 2026-05-14"
§0 minus its contract table, which stayed as reference) plus the "Estado actual
(2026-05-17)" §10 status snapshot. Kept for traceability; the rules it fixed live
in `active-uix/README` (ownership/degradation) and `contracts.ts` (the table).
---
## Handoff 2026-05-14 (framing)
Estado acordado al cierre de la sesión:
- **No tocar componentes Eidos** hasta cerrar de nuevo la arquitectura.
- **Contratos mínimos fijados antes de seguir** (tabla autoritativa en
`src/uix/contracts.ts`, validada con `src/uix/contracts.test.ts`).
- **Regla de composition roots cerrada**: solo `ActiveApp` y `ActiveUix`
standalone crean servicios compartidos.
Preguntas cerradas tras la revisión: `ActiveUix` expone `uix.prefs` bruto; `Dom`
standalone puede usar `disabledDom`, attach exige `app.dom`; `Sema` fuera de UIX
necesita `dom`/`projector` o `visual:false`; `Eidos` = `ActiveEidos`; `Soma` no
necesita `ActiveSoma`; `langs`↔`prefs.language` / `format`↔`prefs.locale`; `prefs`
es el nombre canónico; `attachActiveUix` exige `langs`+`dom`; la ruta docs
sincroniza prefs y no muta `html[dir]`/`uix.langs` directamente.
Hallazgos P1 resueltos: `createActiveUix({dom:false})` crea `disabledDom` y se lo
pasa a `EngineSemantic`; `ActiveUix.dom` siempre existe; `ActiveUix` no proyecta
prefs al DOM (lo hace `ActivePrefsDomProjection` / `ActiveEidos`); ownership DOM
P1 cerrado (live regions, observers, foco/scroll imperativo vía `ActiveDom`);
`SoundChannel` no registra listeners globales en el constructor; Sema ya no
propaga `motion`/`color`/`presence`.
Hallazgos P2/P3: standalone usa `createSvelteEngineBus`; attach no re-suscribe
`prefs.language → langs`.
Contexto `frontend` cerrado: `arts/frontend` retirado; no reaparece como fuente de
`locale`; `prefs.locale`→`format`, `prefs.language`→`langs`, `prefs.direction`→
`html[dir]` vía `ActivePrefsDomProjection`.
(These rules are now stated, timeless, in `src/uix/active-uix/README.md` §"Reglas
de ownership y degradación".)
---
## Estado actual (2026-05-17)
**Implementado y verificado** (snapshot at that date): `morfo` (115 components,
sium validator, ~265 archetype-classified part declarations, doctrinal event
shape); `soma/morfo/runtime` (`part`/`partProps`/`keydown`/`trigger`, provider
inheritance dropped, domain engines moved to `src/libs`); `sema` (`EngineSemantic`
+ `chans/`, 8 families × 6 intents, SoundChannel with prepare-time priming,
HapticChannel opt-in); `eidos` (`ActiveEidos`, color hierarchy + intents over
12-step scales, discrete `Size`, recipe aliases, `EidosConfigDocument`
persistence); `adom`; `active-uix` + `active-app` (two boot modes, Props bridge V2).
**Pendiente (at that date — several since DONE):** afilar `EidosConfig.recipes`;
reparar demos/rutas en `Provider`/flat-snippets; `persistence` field *(since done)*;
holds-by-intent; topbar-mute → `SoundChannel.masterGain`; polymorphic events
*(since done)*; `a11ySemantic` per event *(since done)*.
**Layers ya muertos:** `src/lib/`, `src/uix/terra/`, `src/uix/air/`,
`src/routes/test`.

Powered by TurnKey Linux.