Skip to content

core: v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Jul 09:00
e314dba

0.3.0 (2026-07-20)

⚠ BREAKING CHANGES

  • runtime: the AtomRegistry must now OUTLIVE the mount's Scope. h.track deriveds live in the registry, so disposing it severs every live subscription. mount(app, el).pipe(Effect.provide(VerrexLive)) is now wrong — it scopes the layer to the mount effect, which completes as soon as the DOM attaches, and the UI renders once then silently stops updating. Build the layer into a longer-lived scope instead (Layer.build under Scope.provide); the README shows the shape. This requirement is not expressible in mount's type today — R says the registry is required, not that it must outlive the scope — so the broken form still type-checks and fails at runtime. Tracked in #167.
  • runtime: an app whose event handler returns a failing or service-requiring Effect no longer compiles until the error meets a Catch or the Layer is provided at the root. The runtime sink still contains untyped failures.
  • compiler: lower component tags to direct calls — generics survive, Tag* folds die (#104)

Features

  • check: --watch, severity flags, colored summary (astro-check parity) (#97) (49e13e0), closes #78
  • compiler: lower component tags to direct calls — generics survive, Tag* folds die (#104) (898d1eb), closes #71
  • runtime: Async without failure arm puts E on the live channel (#86) (9e81c7f), closes #73
  • runtime: AsyncHandle — public refetch for asyncRef, Async accepts handles (#101) (8156fc1)
  • runtime: Component.make — the canonical component constructor (#103) (8b42741), closes #70
  • runtime: retry callback for Async failure arms (#95) (f30431c)
  • runtime: tag-selective failure arm for Async (mirrors Catch's tag map) (#88) (1f61c66)
  • runtime: typed event handlers — fold handler E onto View<E>, R into the element (#110) (e7a0577)

Bug Fixes

  • deps: bump effect to 4.0.0-beta.98 (#149) (5b85faf)
  • deps: upgrade Babel to 8 (coordinated family bump) (#150) (2404da1)
  • language: survive unparseable mid-edit .vx source (#102) (7529433)
  • runtime: form-control props as DOM properties, remove attrs on falsy (#155) (ab8ade8)
  • runtime: reject undispatched tag-map shapes at construction (#94) (d2654ab)
  • runtime: tear down h.track derived subscriptions on subtree unmount (#136) (ca2825d)
  • suppress Component.make's name-slot inlay hint in .vx files (#113) (26ea8b3)

Code Refactoring

  • runtime: h.track deriveds become demand-driven registry-owned Atoms (#153) (e1942d0)