EffectWeb 0.2.1
EffectWeb 0.2.1 consolidates query ownership and adds compact controller task declarations. It also includes the authoring, compiler diagnostics, and immutable snapshot improvements developed across TeleVecha, LocalChat, and Inbox since 0.1.1.
- Query callbacks can change selection, reset the cache, or dispose without delivering stale results or losing subscription cleanup.
modelOwner,observeQuery, anddefineTasks(owner, definitions)share existing Effect execution and lifetime rules. Controller task arguments and service requirements remain inferred.pages(definition).create(props)uses the same pagination reducer as components. Equivalent input reconciliation preserves model identity.- The Oxc compiler supports destructured view inputs and provides Oxlint diagnostics through
@effectweb/compiler/oxlint. - Development Vite builds detect mutation of published plain snapshot data. Production builds retain immutable snapshots without the development checks.
- List updates avoid unnecessary movement planning when retained identities remain in order. Unused compiled views can be removed by the bundler.
Upgrade runtime, compiler, Lucide, and native packages together to 0.2.1. Use effectweb() from @effectweb/compiler/vite, compile() for direct compilation, and makeQueryCache() for query caches. Legacy compiler/cache aliases and the resource, pagedResource, and makePagedResource helpers are removed. Use typed queries and queryResource/observeQuery, or pages for pagination.
Validation: 156 framework unit tests, nine Rust tests, 28 framework browser tests, packed-package consumption and all five native platform jobs passed. TeleVecha passed 301 unit and 302 browser tests; LocalChat passed 28 unit and 23 browser tests with 13 existing skips; Inbox passed 21 unit and 37 browser tests.
The 0.2.0 workflow stopped at a stale test-file path before any npm publication. This release fixes that workflow; no 0.2.0 packages were published.