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

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.