The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## What's Changed
* Added: `@BindingState` (renamed from `@BindableState` in this release) now conditionally conforms to `Sendable` (thanks @jshier, https://github.com/pointfreeco/swift-composable-architecture/pull/1834).
* Added: SwiftUI Transaction helper APIs, including `Effect.transaction`, `ViewStore.send(_:transaction:)`, and `Effect.run { send in send(_:transaction:) }` (thanks @drucelweisse, https://github.com/pointfreeco/swift-composable-architecture/pull/1824).
* Added: `Store.init` now takes a `prepareDependencies` block, for preparing the initial dependencies of a store (`TestStore` introduced a similar API earlier) (https://github.com/pointfreeco/swift-composable-architecture/pull/1844).
* Added: `Effect.send` has been introduced as a new version of `Effect.init(value:)` (https://github.com/pointfreeco/swift-composable-architecture/pull/1859). `Effect.init(value:)` has been soft-deprecated and will be hard-deprecated soon, so prefer using `Effect.send` to synchronously feed actions back into the system.
* Changed: The `@BindableState` property wrapper has been renamed to `@BindingState` (https://github.com/pointfreeco/swift-composable-architecture/pull/1855).
* Changed: `TestStore` ergonomics have been improved to better surface when APIs are unavailable due to lack of an `Equatable` conformance (https://github.com/pointfreeco/swift-composable-architecture/pull/1857).
* Changed: Alert modifiers now use `@StateObject` instead of `@ObservedObject` in iOS 15 and higher (https://github.com/pointfreeco/swift-composable-architecture/pull/1860).
* Changed: Reducer builders have been rewritten to be more performant and to prepare for forthcoming Swift 5.8 changes (https://github.com/pointfreeco/swift-composable-architecture/pull/1863). If you notice any regressions in your app's reducer builders, please [let us know](https://github.com/pointfreeco/swift-composable-architecture/issues/new?assignees=&labels=bug&template=bug_report.yml).
* Changed: The Composable Architecture has been updated to depend on [SwiftUI Navigation 0.6.0](https://github.com/pointfreeco/swiftui-navigation/releases/0.6.0) (https://github.com/pointfreeco/swift-composable-architecture/pull/1865).
> **Warning**: This upgrade contains breaking changes that mostly do not affect the Composable Architecture, which the exception of its UIKit alert helper tools, which will now require you to handle a `nil` alert action for dismissal/cancel buttons with no action attached.
* Fixed: #1802 introduced a slight regression in view store binding animation behavior, so it was reverted back to the original behavior (https://github.com/pointfreeco/swift-composable-architecture/pull/1845).
* Fixed: `Effect` is now hard deprecation as planned (thanks @kalupas226, https://github.com/pointfreeco/swift-composable-architecture/pull/1822).
* Fixed: The Composable Architecture now explicitly depends on Ordered Collections, rather than implicitly via its transitive dependency on Identified Collections (thanks @kalupas226, https://github.com/pointfreeco/swift-composable-architecture/pull/1828).
* Fixed: `TestStore.receive` methods that take predicates and case paths no longer require `Action` equitability (https://github.com/pointfreeco/swift-composable-architecture/pull/1856).
* Infrastructure: Removed and updated a few deprecated, flakey tests (https://github.com/pointfreeco/swift-composable-architecture/pull/1816).
* Infrastructure: Added UI test to catch SwiftUI regressions (https://github.com/pointfreeco/swift-composable-architecture/pull/1815; thanks @tgrapperon in https://github.com/pointfreeco/swift-composable-architecture/pull/1819).
* Infrastructure: Doc fixes (thanks @brennobemoura, https://github.com/pointfreeco/swift-composable-architecture/pull/1843).
* Infrastructure: Document testing gotchas (https://github.com/pointfreeco/swift-composable-architecture/pull/1854).
## New Contributors
* @jshier made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1834
* @brennobemoura made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1843
* @drucelweisse made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1824
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.49.2...0.50.0
## What's Changed
* Fixed: A longstanding bug in SwiftUI can cause bindings to be evaluated in views that are no longer rendered. In apps built in the Composable Architecture, which provides flexible tools for deriving custom bindings, this could lead to accessing state that no longer exists, which at worst could try to evaluate an element of an array at an invalidated index, crashing the application. While this bug was fixed in 0.48.0, it introduced another regression and was reverted in 0.48.1. We have a new workaround (thanks @iampatbrown, https://github.com/pointfreeco/swift-composable-architecture/pull/1802), that appears to be more reliable and work in both cases. If you encounter any regressions in `ViewStore.binding` behavior in your applications, [let us know](https://github.com/pointfreeco/swift-composable-architecture/issues/new?assignees=&labels=bug&template=bug_report.yml)!
* Fixed: `Dependencies` has been force-bumped to 0.1.2 to work around a regression in how effects inherit dependencies (thanks @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/1813).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.49.1...0.49.2
## What's Changed
* Fixed: An internal test helper added in 0.49.0 could prevent builds from working. This has been fixed (https://github.com/pointfreeco/swift-composable-architecture/pull/1809).
* Infrastructure: Fixed UIKit's "Navigate and Load" study (thanks @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/1807).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.49.0...0.49.1
## What's Changed
* Changed: Depend on [swift-dependencies](https://github.com/pointfreeco/swift-dependencies). The `Dependencies` module has been extracted to its own library so that it can be used in non-TCA apps.
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.48.1...0.49.0
## What's Changed
* Fixed: Reverted #1784, which introduced a regression in SwiftUI binding behavior (https://github.com/pointfreeco/swift-composable-architecture/pull/1799).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.48.0...0.48.1
## What's Changed
* Changed: `withTaskCancellation(id:)` now executes on the current executor without suspension (https://github.com/pointfreeco/swift-composable-architecture/pull/1779).
* Deprecated: `Effect` has been temporarily deprecated for `EffectTask` to prepare for renames [coming in 1.0](https://github.com/pointfreeco/swift-composable-architecture/discussions/1477) (https://github.com/pointfreeco/swift-composable-architecture/pull/1788).
* Deprecated: `EffectPublisher` is now soft-deprecated (https://github.com/pointfreeco/swift-composable-architecture/pull/1791).
* Deprecated: The `async` version of `ActorIsolated.withValue` has been deprecated. It can introduce re-entrancy bugs. Instead, we have introduced a synchronous version (https://github.com/pointfreeco/swift-composable-architecture/pull/1792).
* Fixed: `@Dependency(\.openURL)` is now supported in App extensions (thanks @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/1714).
* Fixed: `ButtonRole` and `Button` deprecation warnings have been silenced (thanks @kgrigsby59, https://github.com/pointfreeco/swift-composable-architecture/pull/1715).
* Fixed: A longstanding bug in SwiftUI can cause bindings to be evaluated in views that are no longer rendered. In apps built in the Composable Architecture, which provides flexible tools for deriving custom bindings, this could lead to accessing state that no longer exists, which at worst could try to evaluate an element of an array at an invalidated index, crashing the application. This bug has now been worked around to avoid such crashes. (Thanks @barabashd, https://github.com/pointfreeco/swift-composable-architecture/pull/1784; https://github.com/pointfreeco/swift-composable-architecture/pull/1785).
* Fixed: The predicated-based version of `TestStore.receive` now properly evaluates the given predicate (thanks @pyrtsa, https://github.com/pointfreeco/swift-composable-architecture/pull/1780).
* Infrastructure: Fix typos, etc., in documentation, README, and tests (thanks @ZevEisenberg, https://github.com/pointfreeco/swift-composable-architecture/pull/1701; @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/1702; @yimajo, https://github.com/pointfreeco/swift-composable-architecture/pull/1725; @yuanhang, https://github.com/pointfreeco/swift-composable-architecture/pull/1762; @kalupas226, https://github.com/pointfreeco/swift-composable-architecture/pull/1764; @dy-kim, https://github.com/pointfreeco/swift-composable-architecture/pull/1773; @Iikeli, https://github.com/pointfreeco/swift-composable-architecture/pull/1776; https://github.com/pointfreeco/swift-composable-architecture/pull/1787; @jeffersonsetiawan, https://github.com/pointfreeco/swift-composable-architecture/pull/1793).
* Infrastructure: Fix todo deletion in Todos sample app when the list is filtered (https://github.com/pointfreeco/swift-composable-architecture/pull/1696).
* Infrastructure: Bump SwiftUINavigation and update examples (thanks @iampatbrown, https://github.com/pointfreeco/swift-composable-architecture/pull/1760).
## New Contributors
* @ZevEisenberg made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1701
* @yuanhang made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1762
* @dy-kim made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1773
* @Iikeli made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1776
* @barabashd made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1784
* @pyrtsa made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1780
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.47.2...0.48.0
## What's Changed
* Fixed: Dependency values test context is no longer implicitly inferred, which could cause unexpected behavior for host applications that run during tests (https://github.com/pointfreeco/swift-composable-architecture/pull/1686).
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.47.1...0.47.2
Pinned SwiftUINavigation to its newest release, [0.4.2](https://github.com/pointfreeco/swiftui-navigation/releases/tag/0.4.2), to fix an issue with `ButtonState`'s equatable conformance.
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.47.0...0.47.1
## What's Changed
* Depend on SwiftUINavigation for TextState, AlertState, etc... in https://github.com/pointfreeco/swift-composable-architecture/pull/1685
The `TextState`, `AlertState` and `ConfirmationDialogState` types have been moved out of the library and into [SwiftUINavigation](http://github.com/pointfreeco/swiftui-navigation). It should be completely backwards compatible, and you should not have to change your code, but let us know if you encounter problems.
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.46.0...0.47.0
## What's Changed
* Added: `TestStore` now takes a trailing closure for configuring its dependency values (https://github.com/pointfreeco/swift-composable-architecture/pull/1620). These dependency values are used when processing `initialState`, which means state that relies on `@Dependency` (`\.uuid`, for example) will use these dependencies.
* Changed: `TestStore` was recently, briefly made an `open` class, but we are marking it `final` again (https://github.com/pointfreeco/swift-composable-architecture/pull/1655). We are open to making it `open` again, but would like to know if there are use cases, first.
* Fixed: `@Dependency(\.openURL)`'s `callAsFunction`s overloads are no longer ambiguous in certain cases (https://github.com/pointfreeco/swift-composable-architecture/pull/1621).
* Fixed: Printing is now disabled when running debugged reducers from Xcode previews (thanks @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/1625).
* Fixed: Documentation typos (thanks @PierreCapo, https://github.com/pointfreeco/swift-composable-architecture/pull/1609; @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/1608; @ts, https://github.com/pointfreeco/swift-composable-architecture/pull/1612; @Jager-yoo, https://github.com/pointfreeco/swift-composable-architecture/pull/1638; @hmhv, https://github.com/pointfreeco/swift-composable-architecture/pull/1659).
* Infrastructure: Case Studies modernization (https://github.com/pointfreeco/swift-composable-architecture/pull/1623); CI cleanup (https://github.com/pointfreeco/swift-composable-architecture/pull/1632); documentation additions (https://github.com/pointfreeco/swift-composable-architecture/pull/1642); dependencies test (thanks @crayment, https://github.com/pointfreeco/swift-composable-architecture/pull/1644).
## New Contributors
* @PierreCapo made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1609
* @crayment made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1644
* @hmhv made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/1659
**Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.45.0...0.46.0