v0.7.0 — Reactivity platform (ClientBackend, setup) + engine flatten
Turns reactivity into a batteries-included platform — automatic header resolution, single-call setup(), asset modes, cache scopes — and lands a behavior-preserving engine flatten plus one breaking cleanup.
⚠️ Breaking
- Removed the legacy
inline_js/inline_cssasset API (#35) — useAssetMode(js_mode/css_mode,set_default_js_mode/set_default_css_mode;AssetMode.NONEdisables asset tags). - Reactive keyed authoring changed (#32) — instance keys use a
PjxLoad-annotated field (stampeddata-pjx-load) instead ofdata-pjx-key/ a{{ key }}template var;@mutatestakes state keys only;effective_reacts_to→depends_on.
✨ Reactivity becomes a platform
ClientBackend(#29) —render()resolves the mounted manifest, trigger, and loaded assets from request headers automatically;FastAPIClientBackendwires it via middleware.setup(app, …)(#30) — single-call integration, withREQUESTas the default cache scope.- Header-driven runtime (#28) —
pjx.jsis injected based on theX-PJX-Mountedheader instead of abase_layoutkwarg. Cls.render(*args)auto-load (#32) — a mutation route justreturn Cls.render(...); the primary and its OOB dependents load from the backend (+X-PJX-Trigger).PjxLoadannotated fields replace the ad-hoc key plumbing.- Reactive ergonomics (#24) + demo modernization for the new API.
⚡ Assets & caching
AssetMode.REFERENCE(#25) — emit hashed<script src>/<link rel=stylesheet>references with dedup, alongsideINLINE/NONE.- Load-cache scopes (#27) —
REQUESTvsPROCESS, with cross-worker invalidation (Redis-backedInvalidationHub).
🧹 Engine flatten + footprint — behavior-preserving (#31, #33, #35)
- Reorganized into
core//reactive//config/(#31), then flattened into 16 cohesive top-level modules (#33) —base,renderer,assets,tags,reactive,cache,client, …integrations//builtins//runtime/kept as subpackages. Public import surface frozen (__all__verbatim); net −196 lines. - Footprint sweep (#35): frozen
AssetPolicy, de-duped load-cache reverse index, dropped template-loader wrappers. Engine 3,564 → 3,450 lines. All Tier-3 features kept (builtins UI kit, REFERENCE assets, PROCESS scope + Redis).
📚 Docs
- Flat package layout, the
setup()/ClientBackendpatterns, asset modes, and the removed legacyinline_*API reflected across README, usage tiers, and the Renderer / assets / reactivity docs.
Full changelog: v0.5.2...v0.7.0