Guard Sema runtime boundaries

active-uix
dev 5 months ago
parent e3689c1080
commit f276ef964f

@ -114,6 +114,9 @@ Actualizacion 2026-05-16:
- Cerrado: eliminado `soma/core/langs.ts`, que era una fachada muerta sobre
`src/uix/langs.ts`. El vocabulario `common.*` pertenece a UIX y
`ActiveUix` lo registra; Soma solo lo referencia mediante `v.commonRef`.
- Guardia nueva: Sema no puede registrar listeners globales nativos
(`document/window.addEventListener`) ni usar `console.*` en produccion; los
canales deben pasar por servicios inyectados y logger.
- Documentacion corregida: README, arquitectura y comentario de
`core/soma.svelte.ts` ya no recomiendan que el propio Soma importe desde
`$soma/*`.

@ -489,6 +489,19 @@ describe('UIX layer contracts', () => {
expect(() => new EngineSemantic({ visual: false })).not.toThrow();
});
it('guards Sema production code from direct global listeners and console output', () => {
const violations = listSourceFiles(join(HERE, 'sema'))
.filter((file) => {
const source = stripComments(readFileSync(file, 'utf8'));
return /(?:document|window)\.(?:addEventListener|removeEventListener)\(|console\./.test(
source
);
})
.map((file) => file.replace(REPO_ROOT, ''));
expect(violations).toEqual([]);
});
it('ActiveEidos is the visual runtime and does not recreate an engine layer', () => {
expect(UIX_LAYER_CONTRACTS.activeEidos.publicRuntime).toBe('ActiveEidos');
expect(existsSync(new URL('./eidos/engine', import.meta.url))).toBe(false);

@ -1010,7 +1010,7 @@ eidos → enhanced visual layer: motion, sound, advanced interactions
air/eidos consume soma:
- Importa componentes: `import { Accordion } from '$uix/soma'`
- Importa componentes: `import { Accordion } from '$soma/components'`
- Responde a data-\*: `[data-accordion][data-state='open'] { ... }`
- Añade props visuales: `size`, `variant`, `color`
- Usa mismas translations: `#?common.buttons.close|Close`, `#?components.dialog.trigger|Open dialog`

Loading…
Cancel
Save

Powered by TurnKey Linux.