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.
14 KiB
14 KiB
Continue
Fecha de corte: 2026-05-15. Rama: active-uix.
Actualizacion 2026-05-15:
Intentqueda como vocabulario unico ensrc/uix/intent.ts. No existen aliasEidosIntent,UixIntent,ToastIntentniSemaIntent; Sema usaIntentBinding/IntentPolicycuando necesita especializar el contrato del evento, pero el intent canonico no pertenece a una capa concreta.MorfoDatavalida nombresdata-*: solo acepta atributos publicos lowercase kebab-case;data-_*queda reservado para estado privado del provider y no puede declararse en morfo.frontendqueda eliminado del arbol activo: no haysrc/arts/frontend, factorydefineActiveFrontend, alias$frontend, ruta/active/docs/fendni servicioservices.frontend. Las referencias documentales restantes son notas explicitas de retirada o usos genericos de la palabra frontend.themeDimension(...)ydensityDimension(...)fueron retiradas del catalogo publico de$prefs. Las preferencias visualestheme/mode/densityson entradas deActiveEidos;prefsmantiene solo dimensiones transversales o custom via primitivas genericas.SemaActiveChannelfue eliminado. La unica fuente publica para canales esSemaChannelId.- Verificaciones ejecutadas despues de la retirada:
npm run check-> 0 errores, 0 warnings.npm run test-> 165 archivos, 2002 tests OK.
- Commits nuevos empujados:
a4cbe0c0—Tighten intent and morfo contractsfbacd113—Remove frontend art68dd40ef—Remove visual prefs dimensions
Actualizacion 2026-05-14:
- Revision post-cambios aplicada. La supuesta perdida de proyeccion cross-modal
queda resuelta como aclaracion de ownership: la proyeccion vive en
arts/prefsmediantecreateActivePrefsDomProjection(...), no enActiveUix. - Documentacion de ecosistema actualizada en
src/uix/*ysrc/arts/*: ownership de prefs/proyeccion/Eidos, naming canonico (langs,events,active-app,storage,connection,session,cache,timer,logger) y marcas historicas en docs de diseno antiguas. - Archivos documentales de revision retirados. Las conclusiones vigentes quedan
absorbidas por
src/uix/active_architecture.md, los README de capa ysrc/uix/contracts.ts. - Limpieza Eidos CSS/runtime aplicada:
index.cssya solo importa fonts,generated/base.css,archetypes.css,events.cssy recipes activas. Se retiraron CSS historicos decontracts/,themes/base/,tokens/motion.css,tokens/index.cssy los token files de componentes. - Migracion Eidos recipe tokens aplicada: los aliases
--{component}-*viven enEidosConfig.recipes, el tema base los define ensrc/uix/eidos/lib/recipes/base.ts, ygenerated/base.csslos publica desdenpm run generate:eidos-css. - Superficie de consulta de recipes aplicada:
ActiveEidos.listRecipes()ygetRecipeTokens(component)exponen aliases para editores de theme sin inspeccionar CSS ni devolver handles mutables del config interno. - La shell
/uixya no carga fuentes remotas; reutiliza las fuentes locales de Eidos (Instrument Sans,Azeret Mono) para que las validaciones Playwright no dependan de red externa. src/uix/contracts.test.tsahora incluye guardias de regresion para queActiveUixno vuelva a bootear Soma/Eidos, los providers Soma no usenregisterContract/registerPart, y la shell/uixno escribaprefs.theme.- Naming
langs: constantes runtime y diagnosticos ya usanlangs/langs.mono; se corrigieron menciones documentales residuales[lang]ylang.mono. - Contrato directo fuera de
ActiveUixaclarado:EngineSemanticcon visual activo necesitadomoprojectory falla conSemaConfigErrorsi faltan;ADomdirecto solo usadisabledDomcuando el caller lo pide. src/arts/prefs/README.mdreescrito al modelo actual schema-based. Se elimina la arquitectura historica de capabilities como guia principal; las dimensiones visualestheme/mode/densitypertenecen aActiveEidos.src/uix/morfo/README.mdactualizado: fijatranslations,commonRef, registro viaregisterMorfoysoma.runtime(...)como contrato vigente.frontendretirado como artefacto: no queda factory, alias ni ruta activa.- Validacion global ejecutada:
npm run check, tests focales UIX/arts ynpm run buildpasan. Solo queda el warning de chunks grandes del build. - Eidos general queda cerrado sin tocar componentes: no hay
EngineEidos, wrapperEidos,eidos/enginenieidos/core/headless; se anade guardia de regresion encontracts.test.ts. recipesqueda comoRecipeTokenSetplano por decision: subir a tipo estructurado solo cuando exista builder/consumer real que lo necesite.- Commits nuevos empujados:
694eb5c5—Clarify prefs projection contract223cdf9e—Align sema docs with channel ownership3dc775f4—Update UIX architecture notesb1215549—Fix UIX docs theme and popover dismiss6da10987—Prune legacy Eidos CSS runtimed822597f—Generate Eidos recipe tokens from config65958538—Expose Eidos recipe token queries4233be62—Update UIX continuation notes2df58074—Use local fonts in UIX docs8ad04714—Refresh UIX architecture docse2ba371b—Add UIX architecture regression guards71e05765—Align langs diagnostic wording607dfdbb—Clarify direct UIX service contracts475ac775—Refresh prefs architecture docs35958a49—Clarify morfo translation contractbd37e5dd—Clarify legacy frontend density docs
- Validado de nuevo:
npx vitest run src/uix/contracts.test.ts src/arts/prefs/test/dom-projection.test.ts src/uix/active-uix/active-uix.svelte.test.ts src/uix/eidos/active-eidos.test.ts src/uix/soma/runtime.svelte.test.ts-> 79 tests OK.npx vitest run src/uix/sema/engine.test.ts src/uix/soma/runtime.svelte.test.ts-> 48 tests OK.npx vitest run src/uix/eidos/active-eidos-config.test.ts src/uix/eidos/generated-css.test.ts src/uix/eidos/active-eidos.test.ts src/uix/contracts.test.ts-> 52 tests OK.npm run check-> 0 errores, 0 warnings.npx vitest run src/uix/contracts.test.ts-> 12 tests OK.npm run checktras wordinglangs-> 0 errores, 0 warnings.- Playwright
/uix: toggle dark actualizahtml[data-theme="base-dark"],html[data-mode="dark"]y mantienehtml[data-density="comfortable"]; sinpageerror, sin errores de consola y sinrequestfailed.
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.- Shells UIX deben pasar modo/densidad visuales a
ActiveEidosmediantemodeSource/densitySource; no escribirprefs.theme. - 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, 0 warnings.
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
- Ownership DOM P1 cerrado.
- 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.frontendretirado;ActiveAppya no puede declarar un servicio visual shell heredado.themeDimension/densityDimensionretiradas; el catalogo$prefsno ofrece dimensiones visuales UIX.
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.
frontendno existe como artefacto activo ni como servicio opt-in. Las preferencias transversales se proyectan desdearts/prefs; las visuales pertenecen aActiveEidos. - ActiveApp docs: actualizado que
langs,dom,formatyeventsson servicios opt-in; no hay servicio visual shell heredado.
Eidos cerrado para modulo general
- 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.- Cerrado: los tokens per-component de las recipes activas quedan como
aliases estables y authorables en
EidosConfig.recipes. - Los CSS historicos de
contracts/ythemes/base/quedan retirados del arbol activo. El contrato se publica desdeActiveEidos.getCssContract()/renderContractCss()y el base desdegenerated/base.css. tokens/ya no forma parte del entrypoint estatico. Las recipes CSS consumen los mismos custom properties, pero los valores salen degenerated/base.css.ActiveEidos.listRecipes()ygetRecipeTokens(component)exponen los aliases para editores de theme sin leer CSS. El tipado plano derecipeses intencional mientras no haya builder/consumer estructurado.- No reintroducir engine visual separado, carpeta
engine, ni wrapperEidossin contrato propio.
Pendiente de limpieza
- Validacion navegador
/uixcerrada despues de mover recipe tokens y retirar fuentes remotas: carga sinrequestfailed, sin errores de consola y el toggle dark sigue aplicandodata-theme,data-modey estilos visuales. - Siguiente foco recomendado: reauditar componentes Eidos option C solo cuando se autorice explicitamente. No mezclar esa fase con runtime ni arquitectura general.
- Warnings de toast resueltos;
npm run checkqueda en 0 errores / 0 warnings. - 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.