2.4 KiB
2.4 KiB
Changelog
All notable changes to Ebox are documented here.
2.0.0 (Unreleased)
Added
- Direct dependencies on the independent ECSS 0.1.0 cascade engine and TP 1.0.0 retained/reactive text runtime.
- ECSS-backed property schemas, selectors, stylesheets, inheritance, cascade layers, custom properties, computed values, and provenance for Box, Flex, and Grid nodes.
- Surface-scoped region handles through
ebox-region-resolve, retained TP publication throughebox-render-to-bufferandebox-display-buffer, and atomic handle/selector/viewport/scroll updates. - Typography longhands and inherited foreground projection that keep text readable when child boxes override background colors.
- A public, nestable framework render-burst boundary that covers pre-commit allocation, shares interactive deferred GC ownership with Ebox commits, and restores batch GC settings without collecting at the boundary.
Changed
- ECSS is the only selector matcher and cascade winner. Ebox adapts node trees to ECSS subjects, interprets computed values for measurement/layout/paint, and classifies their layout impact.
- TP is the only live buffer writer. Ebox produces retained surface candidates and semantic dirty-owner plans; TP owns diff execution, marker-backed mounts, revisions, transactions, and rollback.
- Flex and Grid container/item declarations enter the same ECSS pipeline as ordinary boxes instead of maintaining a parallel style path.
- Region updates use opaque surface-scoped handles. The same declarative source may be mounted in multiple buffers without sharing live identity.
Removed
ebox-pop-to-buffer,ebox-switch-to-buffer, and the private erase-and-evaluate buffer writer they exposed.- Ebox's duplicate selector parser/matcher and duplicate cascade winner.
- Bundled playground fixtures. Executable
.eboxreferences live in the independentebox-playgroundpackage.
Migration
- Install ECSS 0.1.0 and TP 1.0.0, in either order, before Ebox 2.0.0.
- Replace numeric region-id mutation with
ebox-region-resolvefollowed byebox-region-updateon the returned handle. - Replace
ebox-pop-to-bufferorebox-switch-to-bufferwithebox-display-buffer, or callebox-render-to-bufferwhen display is controlled by the caller. - Ebox does not scan previously rendered text to reconstruct runtime identity. Remount the declarative source through Ebox 2.0.