Keep framework runtimes native
React, Svelte, and Lit keep their normal browser packages and APIs. PliegoRS does not reimplement their renderers. Each fixture is exposed through a Custom Element and admitted through adapter API v1, leaving the real integration point visible to developers.
Match the admitted descriptor
Before registration, the exported component tag, adapter API version, lifecycle exports, and capabilities must match the exact admitted manifest descriptor. Reserved or malformed Custom Element names and incoherent lifecycle combinations are rejected.
- mount
- Create one owned framework root
- update
- Apply live properties to the admitted generation
- HMR
- Dispose the old root before importing and mounting a fresh generation
- destroy
- Retire roots, listeners, timers, channels, and adapter scopes
Run real browser conformance
npm run check:opensdk:browser-frameworksThe headless Chrome gate covers mount, live property update, reduced-motion propagation, HMR replacement, runtime destruction, and listener cleanup for React, Svelte, and Lit.
Measure cleanup under adversarial ownership
A separate adversarial adapter owns a real interval, document listener, abort scope, and MessageChannel. HMR must replace them without duplication; destroy must reduce all four counters to zero, and later events or time may not change the retired counter stream.