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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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.