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.
6.5 KiB
6.5 KiB
Continue
Fecha de corte: 2026-05-13. Rama: active-uix.
Estado validado
ActiveUixya no crea ni conoceSomaniEidos.- Solo
ActiveAppycreateActiveUix(...)standalone crean servicios compartidos. attachActiveUix(app)reutiliza servicios deActiveAppy falla temprano si faltanlangsodom.- El servicio runtime de traducciones se llama
langs. No confundir:prefs.languagealimentalangs.prefs.localealimentaformat.prefs.direction,prefs.motion,prefs.soundyprefs.hapticse proyectan mediantecreateActivePrefsDomProjection(...).
eventses el nombre publico del motor perceptivo enActiveUix;semanticqueda solo como payload demorfo.events[].semantic.ActiveEidosqueda aplanado: no existe engine visual separado ni directorioenginebajo Eidos.- Los helpers de configuracion/render/persistencia de Eidos viven en
src/uix/eidos/lib. ActiveEidosasume 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 enweb/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
- Auditoria DOM iniciada en
src/uix/dom_audit.md.- Corregido:
TextSelectionya escribe/restaurauser-selectviaActiveDom.apply. - Corregido: announcers/live regions de Soma y descripciones ocultas de date/time
usan
ActiveDom.writeNode/writeText/removeNode. - Correcto:
ActiveUixprefs,SomaRuntime,VisualChannel/DomSignalProjectoryActiveEidosusanActiveDom. - Barrido P1 sin escrituras directas de produccion restantes; quedan lecturas DOM y fixtures de tests.
- Corregido:
- Tabla de contratos minimos cerrada como codigo/tests:
src/uix/contracts.ts+src/uix/contracts.test.tscubrenActiveUix,SomaRuntime,EngineSemantic/events,ActiveEidosyMorfo. - Sema queda purgado de las slices visuales
motion,colorypresence. El mapa canonico resuelve solohold,soundyhaptic; Eidos reacciona visualmente adata-event-*y a sus propios tokens CSS. - Naming
langsrevisado en mensajes/docs/tipos principales. Quedan solo usos tecnicos validos (<script lang="ts">,v.langRef(...)) o menciones historicas explicitas. attachActiveUix(app)no crea sustitutos si faltan servicios requeridos.SoundChannelya no registra listeners globales en el constructor; prima el contexto enprepare()solo cuando una senal sonora entra en el gesto.createActivePrefsDomProjection(...)proyectadir,data-motion,data-soundydata-haptic;ActiveEidosproyectadata-theme,data-modeydata-density.SomaRuntime,registerMorfoyapplyMapOverridestienen optimizaciones basicas de churn/copia aplicadas.
Pendiente P2
- 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 paraquerySelector/tooling, no como mecanismo runtime. - Morfo: los atributos
data-*con valor libre ya se modelan conemit: 'value';progress/meterdeclarandata-value,data-minydata-maxen morfo ySomaRuntimelo cubre con test dedicado. - Morfo translations: mantener
translationsen el morfo,commonRefpara textos compartidos ylangs.tssolo como constantes imperativas legacy. - Frontend/ActiveApp: cerrado para esta fase.
frontendes servicio legacy opt-in; no pertenece al core deActiveAppni a UIX. Las preferencias transversales se proyectan desdearts/prefs; las visuales pertenecen aActiveEidos. - ActiveApp docs: actualizado que
langs,dom,format,eventsyfrontendson servicios opt-in, y quefrontendno debe usarse para codigo UIX nuevo.
Pendiente Eidos
- Primitivas visuales sin tocar componentes:
layoutya queda incorporado alEidosConfigconcontainerWidth,containerPaddingInline,contentWidthyaspectRatio, y se genera en CSS/contrato como--container-width-*,--container-padding-inline,--content-width-*y--aspect-ratio-*. - Mantener
EidosConfigcomo authoring object persistible y CSS-only como modo valido mediantethemeSource: 'css'. - Density queda como primitive bridge:
scale,spaceScale,controlScaleycontentScaleparacompact,comfortable,spacious;ActiveEidosproyectadata-densityy Eidos publica aliases activos como--density-space-scale. src/uix/eidos/generated/base.cssqueda como primer artefacto CSS generado desdeEidosConfigbase mediantenpm run generate:eidos-css;index.csslo importa como foundation estatica.- Pendiente: decidir que tokens per-component de
tokens/components/*quedan como recipe estable y cuales deben salir deEidosConfig. - Pendiente: retirar
contracts/,tokens/othemes/base/del entrypoint estatico cuando las recipes ya no dependan de aliases historicos. - No reintroducir engine visual separado, carpeta
engine, ni wrapperEidossin 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.mdy este archivo.