EffectWeb 0.6.0
EffectWeb 0.6.0 simplifies the public authoring API, adds identity diagnostics, and improves routing and test utilities.
Breaking changes and migration
- Import recommended application APIs from
effectweb. Specialized APIs such aslistView,lazyView,projectionSource,shareValue,scopedQueryCache,pages, anddefineFieldnow live ineffectweb/advanced. - Replace the former per-module subpaths (
effectweb/program,/source,/cache,/session,/form, and others) with the root or advanced entry point.effectweb/testing,/jsx,/jsx-runtime,/jsx-dev-runtime, and the compiler-facing/domremain available. - Replace
UiLoadwithEffect.Effect,loadEffectwithEffect.suspend, and application-specificcachedLoad/httpJsonhelpers with application-owned code using Effect. - Replace
taskComponent,taskControls, andkeyedTaskswithdefineTasks, owned commands, and stable command slots. UsecommandSlots(name)for work keyed by domain identity. - Replace
queryResourcewithobserveQuery(owner, cache, query, changed).lifetime()now implements resource ownership throughown(). - Use native input event handlers instead of the removed
inputText,inputChecked, andinputNumberwrappers.submitremains available.
The package includes AUTHORING.md, a tested guide to choosing APIs, owning work, and rendering immutable snapshots.
Additions and fixes
clock(interval)publishes time while observed;commandSlots(name)provides stable per-key command identities.renderViewineffectweb/testingmounts fixed-input views, records messages, and supports model updates and cleanup.createLink(router)in@effectweb/tanstack-routerprovides typed anchors, active/disabled state, and in-place navigation. External destinations, modified clicks, and downloads retain native browser behavior.- DOM setup functions may return nothing, with cleanup and close semantics preserved.
- Optional
effectweb/identitylint warns about positional stateful rows, unstable DOM setup callbacks, fresh command slots, and sources created during render (EW3001–EW3004). - Render-safety lint checks list and slot callbacks and reports multiple independent issues. It checks work evaluated when selecting an observed source while allowing stable controller source references.
- Identity diagnostics catch filtered, sliced, conditional, and spread-derived rows whose positions can shift.
All 14 npm packages share version 0.6.0. The Effect peer remains effect@4.0.0-rc.112. Native compiler packages support glibc Linux x64/arm64, macOS x64/arm64, and Windows x64.
Packaging
The six adapter packages include a packaging-only follow-up adding the repository metadata required by npm provenance. Runtime and compiler code are unchanged from the v0.6.0 tag. The completed release workflow verifies all platforms and publishes the remaining packages without replacing existing versions.