# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -------------------------------------------------------------------------------- ## [0.4.1] - 2026-07-11 ### Added - `tag()` action for adding CollectionService tags to instances. Supports static strings and arrays as well as reactive sources for dynamic tag sets. Tags are automatically removed when the surrounding scope is destroyed. ### Changed - `branch()` is now allowed to be used within a reactive scope. ### Deprecated - `create()` overloads. Supported is now only `create(class)(props)`. ### Fixed - `create()` types in the new solver should now work without `::`. -------------------------------------------------------------------------------- ## [0.4.0] - 2026-01-17 ### Added - `create("ClassName", { props })` and `create(Instance, { props })` syntax. - `cleanup()` now accepts `thread` types. - Implicit effects to set children can now recursively create more implicit effects to set children. - `spring()` returns a second value, a setter to set position, velocity and impulse. - Improved `spring()` updating and unscheduling. - `show()` now receives a source to its callback returning the current value of the condition. - Ignore `false` passed as a child. - Flag `vide.defaults` to disable the setting of default properties. - Delayed scope destruction for control flow functions: `show()` `switch()` `indexes()` `values()`. - Better `create()` types for the new type solver. ### Changed - A scope can no longer be destroyed while it is active. Strict mode will check for this. - Implicit effects to set children now unparent all children when the effect is destroyed. - Error reporting should be improved with better formatting when effects invoke other effects and no more loss of stack traces. - Nesting parent properties now work, and they are now also checked for duplicates like other properties. ### Removed - Aggregate construction when setting properties with `create()`. -------------------------------------------------------------------------------- ## [0.3.1] - 2024-10-09 ### Added - Context functions now also return results. - `version` table with current version. -------------------------------------------------------------------------------- ## [0.3.0] - 2024-10-06 ### Added - `context()`. ### Changed - `root()` now returns its destructor as the first value by default. ### Fixed - Error stack traces being lost. - `root()` now destroys the scope automatically if an error occurs during call. -------------------------------------------------------------------------------- ## [0.2.0] - 2023-11-22 ### Added - Batched updates with `batch()`. ### Changed - Improved graph updating algorithm. - Graph nodes when destroyed no longer destroy children; only owned. ### Fixed - Graph edge case where a destroyed node can be readded if it was queued for rerun before being destroyed. - Some properties not being applied when `create()` is used recursively. -------------------------------------------------------------------------------- ## [0.1.1] - 2023-09-30 ### Added - `cleanup()` accepts objects with a `Destroy()` or `Disconnect()` interface. - `read()` as a utility to read sources or passthrough a non-source value. ### Changed - Reactive scopes created within reactive scopes are now destroyed on rerun. - `untrack()` can be called outside of reactive scopes. - `changed()` will also run its callback with the initial property value. ### Fixed - `show()` and `switch()` not updating when in strict mode. -------------------------------------------------------------------------------- ## [0.1.0] - 2023-09-20 - Initial release