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/continue.md

6.5 KiB

Continue

Fecha de corte: 2026-05-13. Rama: active-uix.

Estado validado

  • ActiveUix ya no crea ni conoce Soma ni Eidos.
  • Solo ActiveApp y createActiveUix(...) standalone crean servicios compartidos.
  • attachActiveUix(app) reutiliza servicios de ActiveApp y falla temprano si faltan langs o dom.
  • El servicio runtime de traducciones se llama langs. No confundir:
    • prefs.language alimenta langs.
    • prefs.locale alimenta format.
    • prefs.direction, prefs.motion, prefs.sound y prefs.haptic se proyectan mediante createActivePrefsDomProjection(...).
  • events es el nombre publico del motor perceptivo en ActiveUix; semantic queda solo como payload de morfo.events[].semantic.
  • ActiveEidos queda aplanado: no existe engine visual separado ni directorio engine bajo Eidos.
  • Los helpers de configuracion/render/persistencia de Eidos viven en src/uix/eidos/lib.
  • ActiveEidos asume configuracion, validacion, contrato CSS, render, persistencia y scope visual.
  • Los componentes Eidos siguen congelados salvo orden explicita.

Validaciones ejecutadas en esta fase:

  • npx vitest run src/uix/eidos/active-eidos.test.ts src/uix/eidos/active-eidos-config.test.ts -> 37 tests OK.
  • npx vitest run src/arts/adom/test/active-dom.test.ts src/uix/soma/runtime.svelte.test.ts src/uix/morfo/registry.test.ts src/uix/sema/resolver.test.ts src/uix/sema/chans/sound.test.ts src/uix/sema/chans/visual.test.ts src/uix/eidos/active-eidos.test.ts src/uix/eidos/active-eidos-config.test.ts src/uix/contracts.test.ts -> 115 tests OK.
  • npm run check -> 0 errores, 3 warnings conocidos en web/routes/uix/components/toast/+page.svelte.

Arquitectura acordada

La regla central queda asi:

ActiveApp o ActiveUix standalone crean servicios.
ActiveUix expone servicios y prefs.
Morfo declara contrato y translations.
Soma consume ActiveUix/Soma scope y transcribe morfo al DOM via uix.dom.
Sema/events emite ocurrencias perceptivas; no debe inventar servicios.
ActiveEidos consume ActiveUix y resuelve config/tokens/CSS runtime.
Los componentes no crean servicios compartidos.

portal queda como preferencia/target generico de ActiveUix; Soma lo adapta a su portalTo. No usar nombres como somaPortalTo en ActiveUix.

P1 cerrado

  1. Auditoria DOM iniciada en src/uix/dom_audit.md.
    • Corregido: TextSelection ya escribe/restaura user-select via ActiveDom.apply.
    • Corregido: announcers/live regions de Soma y descripciones ocultas de date/time usan ActiveDom.writeNode/writeText/removeNode.
    • Correcto: ActiveUix prefs, SomaRuntime, VisualChannel/DomSignalProjector y ActiveEidos usan ActiveDom.
    • Barrido P1 sin escrituras directas de produccion restantes; quedan lecturas DOM y fixtures de tests.
  2. Tabla de contratos minimos cerrada como codigo/tests: src/uix/contracts.ts + src/uix/contracts.test.ts cubren ActiveUix, SomaRuntime, EngineSemantic/events, ActiveEidos y Morfo.
  3. Sema queda purgado de las slices visuales motion, color y presence. El mapa canonico resuelve solo hold, sound y haptic; Eidos reacciona visualmente a data-event-* y a sus propios tokens CSS.
  4. Naming langs revisado en mensajes/docs/tipos principales. Quedan solo usos tecnicos validos (<script lang="ts">, v.langRef(...)) o menciones historicas explicitas.
  5. attachActiveUix(app) no crea sustitutos si faltan servicios requeridos.
  6. SoundChannel ya no registra listeners globales en el constructor; prima el contexto en prepare() solo cuando una senal sonora entra en el gesto.
  7. createActivePrefsDomProjection(...) proyecta dir, data-motion, data-sound y data-haptic; ActiveEidos proyecta data-theme, data-mode y data-density.
  8. SomaRuntime, registerMorfo y applyMapOverrides tienen optimizaciones basicas de churn/copia aplicadas.

Pendiente P2

  1. Soma: la API canonica publica de parte es runtime.part(...). registerContract(...) ya no se llama desde Soma; registerMorfo(...) lo registra todo. createAttrs(...) queda solo como helper tipado para querySelector/tooling, no como mecanismo runtime.
  2. Morfo: los atributos data-* con valor libre ya se modelan con emit: 'value'; progress/meter declaran data-value, data-min y data-max en morfo y SomaRuntime lo cubre con test dedicado.
  3. Morfo translations: mantener translations en el morfo, commonRef para textos compartidos y langs.ts solo como constantes imperativas legacy.
  4. Frontend/ActiveApp: cerrado para esta fase. frontend es servicio legacy opt-in; no pertenece al core de ActiveApp ni a UIX. Las preferencias transversales se proyectan desde arts/prefs; las visuales pertenecen a ActiveEidos.
  5. ActiveApp docs: actualizado que langs, dom, format, events y frontend son servicios opt-in, y que frontend no debe usarse para codigo UIX nuevo.

Pendiente Eidos

  1. Primitivas visuales sin tocar componentes: layout ya queda incorporado al EidosConfig con containerWidth, containerPaddingInline, contentWidth y aspectRatio, y se genera en CSS/contrato como --container-width-*, --container-padding-inline, --content-width-* y --aspect-ratio-*.
  2. Mantener EidosConfig como authoring object persistible y CSS-only como modo valido mediante themeSource: 'css'.
  3. Density queda como primitive bridge: scale, spaceScale, controlScale y contentScale para compact, comfortable, spacious; ActiveEidos proyecta data-density y Eidos publica aliases activos como --density-space-scale.
  4. src/uix/eidos/generated/base.css queda como primer artefacto CSS generado desde EidosConfig base mediante npm run generate:eidos-css; index.css lo importa como foundation estatica.
  5. Pendiente: decidir que tokens per-component de tokens/components/* quedan como recipe estable y cuales deben salir de EidosConfig.
  6. Pendiente: retirar contracts/, tokens/ o themes/base/ del entrypoint estatico cuando las recipes ya no dependan de aliases historicos.
  7. No reintroducir engine visual separado, carpeta engine, ni wrapper Eidos sin contrato propio.

Pendiente de limpieza

  • Resolver los 3 warnings de toast cuando se vuelva a tocar la demo.
  • No commitear logs temporales: .codex-vite-dialog*.log, debug.log, md.
  • Antes de seguir con componentes, releer src/uix/active_architecture.md, src/uix/active-uix/README.md, src/uix/eidos/README.md, src/uix/soma/README.md y este archivo.

Powered by TurnKey Linux.