Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: reactiveui/ReactiveUI
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 23.2.19
Choose a base ref
Loading
...
head repository: reactiveui/ReactiveUI
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 23.2.27
Choose a head ref
Loading
  • 8 commits
  • 9 files changed
  • 2 contributors

Commits on May 4, 2026

  1. Fixes 4331 Handle null load state; add tests (#4349)

    <!-- Please be sure to read our [Contribute
    guide](https://www.reactiveui.net/contribute/index.html) before opening
    a PR. -->
    
    ## What kind of change does this PR introduce?
    <!-- Bug fix, feature, docs update, refactor, ci, ... -->
    Fix
    ## What is the current behavior?
    <!-- You can also link to an open issue here. Use "Closes #123" to
    auto-close on merge. -->
    
    Closes #4331
    
    ## What is the new behavior?
    <!-- If this is a feature change -->
    
    Do not assign a potentially-null loaded state directly to
    AppState/AppStateValue.
    
    Capture the result of ISuspensionDriver.LoadState into a local (object?
    / TAppState?) and assign item.AppState/item.AppStateValue to the loaded
    value or fallback to CreateNewAppState/CreateNewAppStateTyped.
    
    Add tests in SuspensionHostExtensionsTests and
    SuspensionHostExtensionsAotTests that verify GetAppState creates and
    stores a new app state when no persisted state exists.
    
    Add ReturnNullOnLoad to TestSuspensionDriver to simulate drivers
    returning null.
    
    Change SuspensionHostTestExecutor to inherit from AppBuilderTestExecutor
    and delegate ExecuteTest to the base implementation (and add the
    required using).
    
    These changes ensure null-returning drivers are handled safely and
    covered by tests.
    
    ## What might this PR break?
    
    ## Checklist
    - [x] I have read the [Contribute
    guide](https://www.reactiveui.net/contribute/index.html)
    - [x] Tests have been added or updated (for bug fixes / features)
    - [ ] Docs have been added or updated (for bug fixes / features)
    - [x] Changes target the `main` branch
    - [x] PR title follows [Conventional
    Commits](https://www.conventionalcommits.org/)
    
    ## Additional information
    ChrisPulman authored May 4, 2026
    Configuration menu
    Copy the full SHA
    03ccb2e View commit details
    Browse the repository at this point in the history
  2. Fix 3921 Support inherited DependencyProperty lookup (#4350)

    <!-- Please be sure to read our [Contribute
    guide](https://www.reactiveui.net/contribute/index.html) before opening
    a PR. -->
    
    ## What kind of change does this PR introduce?
    <!-- Bug fix, feature, docs update, refactor, ci, ... -->
    Fix
    ## What is the current behavior?
    <!-- You can also link to an open issue here. Use "Closes #123" to
    auto-close on merge. -->
    Closes #3921 
    ## What is the new behavior?
    <!-- If this is a feature change -->
    
    Use DependencyPropertyDescriptor.FromName to resolve dependency
    properties declared on base control types (via
    DependencyObjectType.SystemType) and return the descriptor's
    DependencyProperty when found; fall back to existing enumeration
    otherwise.
    
    Add System.ComponentModel using and unit tests covering inherited
    property lookup (Selector.SelectedValue, TextBoxBase.IsReadOnly) and a
    BindWithValidation test for ComboBox.SelectedValue, plus a small
    TestViewWithComboBox and SelectedValue on the test view model.
    
    ## What might this PR break?
    
    ## Checklist
    - [x] I have read the [Contribute
    guide](https://www.reactiveui.net/contribute/index.html)
    - [x] Tests have been added or updated (for bug fixes / features)
    - [ ] Docs have been added or updated (for bug fixes / features)
    - [x] Changes target the `main` branch
    - [x] PR title follows [Conventional
    Commits](https://www.conventionalcommits.org/)
    
    ## Additional information
    ChrisPulman authored May 4, 2026
    Configuration menu
    Copy the full SHA
    79661cf View commit details
    Browse the repository at this point in the history
  3. chore(deps): update dependency microsoft.windowsappsdk to v2 (#4347)

    This PR contains the following updates:
    
    | Package | Change |
    [Age](https://docs.renovatebot.com/merge-confidence/) |
    [Confidence](https://docs.renovatebot.com/merge-confidence/) |
    |---|---|---|---|
    |
    [Microsoft.WindowsAppSDK](https://redirect.github.com/microsoft/windowsappsdk)
    | `1.8.260416003` → `2.0.1` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.WindowsAppSDK/2.0.1?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.WindowsAppSDK/1.8.260416003/2.0.1?slim=true)
    |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>microsoft/windowsappsdk (Microsoft.WindowsAppSDK)</summary>
    
    ###
    [`v2.0.1`](https://redirect.github.com/microsoft/WindowsAppSDK/releases/tag/v2.0.1):
    Windows App SDK 2.0 (2.0.1) 🎉
    
    WinAppSDK 2.0 is the next major release of the Windows App SDK, the
    first major version update since 1.0 (November 2021) and the first
    release on the new [Semantic Versioning](https://semver.org/) scheme. It
    ships new XAML capabilities, a modernized Storage Pickers surface,
    expanded popup and anchoring APIs in `Microsoft.UI.Content`, a new
    package deployment and validation framework, a refactored Windows ML
    stack, and additions across the Windows AI surface.
    
    ##### What's new in WinAppSDK 2.0:
    
    - **Semantic Versioning.** Windows App SDK 2.0 standardizes on [SemVer
    2.0.0](https://semver.org/) and aligns the SDK version with the NuGet
    package version, so there's no separate date-based build number to
    track. The package family name now aligns with the major version, so the
    next side-by-side release will be 3.0.0.
    - **WebView2 (WinUI 3) drag support.** Dragging text, HTML, images, and
    URLs out of WebView2 content hosted in WinUI 3 is now supported, along
    with drag cancellation, custom drag visuals, and customizable drag data.
    (Requires WebView2 Runtime 144.0.3719.11 or higher.)
    - **Package deployment and validation.** The
    `Microsoft.Windows.Management.Deployment` namespace adds a new
    `IPackageValidator` framework with three built-in validators
    (`PackageCertificateEkuValidator`, `PackageFamilyNameValidator`,
    `PackageMinimumVersionValidator`), plus a new `PackageVolume` API for
    managing the storage volumes that packages are staged onto.
    - **Windows ML refactor.** Core Windows ML features have been refactored
    into a new base package, `Microsoft.Windows.AI.MachineLearning`, with a
    minimal set of dependencies that supports apps down to Windows 10 v1903.
    The existing `Microsoft.WindowsAppSDK.ML` package continues to support
    Windows 10 v1809. The included **ONNX Runtime** version has been updated
    to 1.24.5.
    - **Windows AI additions.** New `AIFeatureReadyState` values
    (`CapabilityMissing`, `NotCompatibleWithSystemHardware`,
    `OSUpdateNeeded`) help apps explain transient and durable failures
    during AI model acquisition so users get actionable guidance instead of
    a generic "not ready" condition. Phi Silica APIs are now enforced as
    part of a Limited Access Feature (LAF); see [Phi
    Silica](https://learn.microsoft.com/windows/ai/apis/phi-silica) for
    details.
    - **Storage Pickers updates.** The `Microsoft.Windows.Storage.Pickers`
    API (introduced in 1.8) is extended with file type choice grouping,
    persistent settings identifiers, suggested start folders, custom titles,
    multi-folder picking, and more, across `FileOpenPicker`,
      `FileSavePicker`, and `FolderPicker`.
    - **`SystemBackdropElement`** is a new lightweight `FrameworkElement`
    that lets apps place a system backdrop such as Mica or Acrylic anywhere
    within the XAML layout, with a `CornerRadius` property for rounded
    backdrop areas. It closes a long-standing WinUI 3 gap where in-app
    acrylic effects (previously straightforward in WinUI 2 via
    `AcrylicBrush.BackgroundSource`) had no direct equivalent.
    - **Custom XAML Conditionals (`IXamlCondition`)** enable developers to
    define custom conditions that integrate with XAML's conditional
    namespace syntax and are evaluated at XAML parse time. This replaces the
    experimental `IXamlPredicate` interface and unlocks conditional XAML
    based on feature flags, device capabilities, business logic,
    configuration settings, and other runtime conditions.
    - **Relative popup positioning** in `Microsoft.UI.Content`. The new
    `PopupAnchor` API allows `DesktopPopupSiteBridge` to anchor to its
    owning window or island instead of being limited to absolute screen
    coordinates, with new `AnchoringBehavior` and `AnchoringPixelAlignment`
    properties to control the behavior.
    
    ##### Notable bug fixes:
    
    - Fixed an issue where the WindowsAppSDK installer showed no progress
    during installation, making it appear stalled. The installer now
    provides clearer progress feedback.
    - Fixed `MSB8027` and `LNK4042` build warnings caused by duplicate
    `ClCompile` items in Windows App SDK NuGet `.targets` files.
    - Fixed a ListView crash that could occur during keyboard navigation
    (Tab/Shift+Tab) after the items list was updated.
    - Fixed an issue where WinUI 3 could crash if focus was moved to the
    `CoreWebView2Controller` while the controller was not visible.
    - Fixed a Windows ML bug where calling `RegisterCertifiedAsync` again in
    the same process incorrectly returned 0 execution providers (EP).
    
    **To see everything that's new and changed, including upgrade guidance
    and known issues, see the full [Windows App SDK 2.0 release
    notes](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/release-notes/windows-app-sdk-2-0?pivots=stable).**
    
    ##### Try it out
    
    - Download the [2.0.1
    NuGet](https://www.nuget.org/packages/Microsoft.WindowsAppSDK/2.0.1)
    package to use WinAppSDK 2.0 in your app.
    - Download and update the [WinUI
    Gallery](https://www.microsoft.com/store/productId/9P3JFPWWDZRC) to see
    the WinUI 3 updates firsthand.
    
    ##### Getting started
    
    To get started using Windows App SDK to develop Windows apps, check out
    the following documentation:
    
    - [Install developer
    tools](https://docs.microsoft.com/windows/apps/windows-app-sdk/set-up-your-development-environment).
    - [Create a WinUI 3
    app](https://docs.microsoft.com/windows/apps/winui/winui3/create-your-first-winui3-app).
    - [Continue your development
    journey](https://docs.microsoft.com/windows/apps/develop).
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: (UTC)
    
    - Branch creation
      - At any time (no schedule defined)
    - Automerge
      - At any time (no schedule defined)
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/reactiveui/ReactiveUI).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJEZXBlbmRlbmN5IE1hbmFnZW1lbnQiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 4, 2026
    Configuration menu
    Copy the full SHA
    adb2598 View commit details
    Browse the repository at this point in the history
  4. chore(deps): update dependency microsoft.testing.platform.msbuild to …

    …2.2.2 (#4348)
    
    This PR contains the following updates:
    
    | Package | Change |
    [Age](https://docs.renovatebot.com/merge-confidence/) |
    [Confidence](https://docs.renovatebot.com/merge-confidence/) |
    |---|---|---|---|
    |
    [Microsoft.Testing.Platform.MSBuild](https://redirect.github.com/microsoft/testfx)
    | `2.2.1` → `2.2.2` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.Testing.Platform.MSBuild/2.2.2?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.Testing.Platform.MSBuild/2.2.1/2.2.2?slim=true)
    |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>microsoft/testfx (Microsoft.Testing.Platform.MSBuild)</summary>
    
    ###
    [`v2.2.2`](https://redirect.github.com/microsoft/testfx/releases/tag/v2.2.2)
    
    See release notes
    [here](https://redirect.github.com/microsoft/testfx/blob/main/docs/Changelog.md#222---2021-03-15).
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: (UTC)
    
    - Branch creation
      - At any time (no schedule defined)
    - Automerge
      - At any time (no schedule defined)
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/reactiveui/ReactiveUI).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJEZXBlbmRlbmN5IE1hbmFnZW1lbnQiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 4, 2026
    Configuration menu
    Copy the full SHA
    6eb0c7f View commit details
    Browse the repository at this point in the history
  5. chore(deps): update xamarin & androidx to 1.6.0 (#4340)

    This PR contains the following updates:
    
    | Package | Change |
    [Age](https://docs.renovatebot.com/merge-confidence/) |
    [Confidence](https://docs.renovatebot.com/merge-confidence/) |
    |---|---|---|---|
    | [Xamarin.AndroidX.Collection.Jvm](https://aka.ms/android-libraries)
    ([source](https://redirect.github.com/xamarin/AndroidX)) | `1.5.0.5` →
    `1.6.0` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Xamarin.AndroidX.Collection.Jvm/1.6.0?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Xamarin.AndroidX.Collection.Jvm/1.5.0.5/1.6.0?slim=true)
    |
    | [Xamarin.AndroidX.Collection.Ktx](https://aka.ms/android-libraries)
    ([source](https://redirect.github.com/xamarin/AndroidX)) | `1.5.0.5` →
    `1.6.0` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Xamarin.AndroidX.Collection.Ktx/1.6.0?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Xamarin.AndroidX.Collection.Ktx/1.5.0.5/1.6.0?slim=true)
    |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: (UTC)
    
    - Branch creation
      - At any time (no schedule defined)
    - Automerge
      - At any time (no schedule defined)
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about these
    updates again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/reactiveui/ReactiveUI).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJEZXBlbmRlbmN5IE1hbmFnZW1lbnQiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 4, 2026
    Configuration menu
    Copy the full SHA
    5cd13f6 View commit details
    Browse the repository at this point in the history
  6. chore(deps): update dependency microsoft.windows.sdk.buildtools to 10…

    ….0.28000.1839 (#4346)
    
    This PR contains the following updates:
    
    | Package | Change |
    [Age](https://docs.renovatebot.com/merge-confidence/) |
    [Confidence](https://docs.renovatebot.com/merge-confidence/) |
    |---|---|---|---|
    | [Microsoft.Windows.SDK.BuildTools](https://aka.ms/WinSDKProjectURL) |
    `10.0.28000.1721` → `10.0.28000.1839` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.Windows.SDK.BuildTools/10.0.28000.1839?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.Windows.SDK.BuildTools/10.0.28000.1721/10.0.28000.1839?slim=true)
    |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: (UTC)
    
    - Branch creation
      - At any time (no schedule defined)
    - Automerge
      - At any time (no schedule defined)
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/reactiveui/ReactiveUI).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJEZXBlbmRlbmN5IE1hbmFnZW1lbnQiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 4, 2026
    Configuration menu
    Copy the full SHA
    0943b5d View commit details
    Browse the repository at this point in the history
  7. chore(deps): update akavache to v12 (major) (#4345)

    This PR contains the following updates:
    
    | Package | Change |
    [Age](https://docs.renovatebot.com/merge-confidence/) |
    [Confidence](https://docs.renovatebot.com/merge-confidence/) |
    |---|---|---|---|
    | [Akavache.Sqlite3](https://redirect.github.com/reactiveui/akavache) |
    `11.6.1` → `12.0.12` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Akavache.Sqlite3/12.0.12?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Akavache.Sqlite3/11.6.1/12.0.12?slim=true)
    |
    |
    [Akavache.SystemTextJson](https://redirect.github.com/reactiveui/akavache)
    | `11.6.1` → `12.0.12` |
    ![age](https://developer.mend.io/api/mc/badges/age/nuget/Akavache.SystemTextJson/12.0.12?slim=true)
    |
    ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Akavache.SystemTextJson/11.6.1/12.0.12?slim=true)
    |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>reactiveui/akavache (Akavache.Sqlite3)</summary>
    
    ###
    [`v12.0.12`](https://redirect.github.com/reactiveui/Akavache/releases/tag/12.0.12)
    
    [Compare
    Source](https://redirect.github.com/reactiveui/akavache/compare/12.0.8...12.0.12)
    
    ##### 🗞️ What's Changed
    
    ##### 🐛 Fixes
    
    -
    [reactiveui/Akavache@`6d921bd`](https://redirect.github.com/reactiveui/Akavache/commit/6d921bdf3c20ed08dc1696604e1aec9b7125e367)
    Fixed initialization example after v12 API changes
    ([#&#8203;1187](https://redirect.github.com/reactiveui/akavache/issues/1187))
    [@&#8203;markuspalme](https://redirect.github.com/markuspalme)
    -
    [reactiveui/Akavache@`5b1a4cd`](https://redirect.github.com/reactiveui/Akavache/commit/5b1a4cd867fa1f6d94965888fd6091a8e0939dc0)
    fix: read Akavache 11.x encrypted databases with v12
    ([#&#8203;1192](https://redirect.github.com/reactiveui/akavache/issues/1192))
    [@&#8203;markuspalme](https://redirect.github.com/markuspalme)
    
    ##### 📦 Dependencies
    
    -
    [reactiveui/Akavache@`bc5628f`](https://redirect.github.com/reactiveui/Akavache/commit/bc5628faf5f4a424af556ef13e956c5911329054)
    chore(deps): update dependency microsoft.sourcelink.github to 10.0.203
    ([#&#8203;1181](https://redirect.github.com/reactiveui/akavache/issues/1181))
    [@&#8203;renovate](https://redirect.github.com/renovate)\[bot]
    
    ##### 📌 Other
    
    -
    [reactiveui/Akavache@`be23347`](https://redirect.github.com/reactiveui/Akavache/commit/be233471e3258d01d1d25723b557a86d2d79672a)
    Revise serializer compatibility details in README
    [@&#8203;glennawatson](https://redirect.github.com/glennawatson)
    
    🔗 **Full Changelog**:
    <reactiveui/Akavache@12.0.8...12.0.12>
    
    ##### 🙌 Contributions
    
    🌱 New contributors since the last release:
    [@&#8203;markuspalme](https://redirect.github.com/markuspalme)
    💖 Thanks to all the contributors:
    [@&#8203;glennawatson](https://redirect.github.com/glennawatson),
    [@&#8203;markuspalme](https://redirect.github.com/markuspalme)
    
    🤖 Automated services that contributed:
    [@&#8203;renovate](https://redirect.github.com/renovate)\[bot]
    
    ###
    [`v12.0.8`](https://redirect.github.com/reactiveui/Akavache/releases/tag/12.0.8)
    
    [Compare
    Source](https://redirect.github.com/reactiveui/akavache/compare/11.6.1...12.0.8)
    
    ##### DANGER.
    
    Note this is a major upgrade release.
    
    We have moved away from the high level SQLite library, and moved towards
    a low level library.
    
    ##### What's Changed
    
    - feat: V12 API modernization, AOT-safe assembly config, V10→V11
    migration, and full coverage by
    [@&#8203;glennawatson](https://redirect.github.com/glennawatson) in
    [reactiveui/Akavache#1178](https://redirect.github.com/reactiveui/Akavache/pull/1178)
    - perf: allocation reduction sweep across Rx, SQLite and serializer hot
    paths by
    [@&#8203;glennawatson](https://redirect.github.com/glennawatson) in
    [reactiveui/Akavache#1179](https://redirect.github.com/reactiveui/Akavache/pull/1179)
    - breaking: replace sqlite-net-pcl with SQLitePCLRaw, extract
    Akavache.Http by
    [@&#8203;glennawatson](https://redirect.github.com/glennawatson) in
    [reactiveui/Akavache#1182](https://redirect.github.com/reactiveui/Akavache/pull/1182)
    - chore(deps): update dependency verify.tunit to 31.16.0 by
    [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
    [reactiveui/Akavache#1183](https://redirect.github.com/reactiveui/Akavache/pull/1183)
    - chore(deps): update dependency microsoft.windowsappsdk to
    1.8.260416003 by
    [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
    [reactiveui/Akavache#1185](https://redirect.github.com/reactiveui/Akavache/pull/1185)
    - chore(deps): update dependency verify.tunit to 31.16.2 by
    [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
    [reactiveui/Akavache#1184](https://redirect.github.com/reactiveui/Akavache/pull/1184)
    - chore: Rename Akavache.Http → Akavache.HttpDownloader to avoid NuGet
    name collision by [@&#8203;Copilot](https://redirect.github.com/Copilot)
    in
    [reactiveui/Akavache#1186](https://redirect.github.com/reactiveui/Akavache/pull/1186)
    
    **Full Changelog**:
    <reactiveui/Akavache@11.6.1...12.0.8>
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: (UTC)
    
    - Branch creation
      - At any time (no schedule defined)
    - Automerge
      - At any time (no schedule defined)
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about these
    updates again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/reactiveui/ReactiveUI).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJEZXBlbmRlbmN5IE1hbmFnZW1lbnQiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored May 4, 2026
    Configuration menu
    Copy the full SHA
    b54d29b View commit details
    Browse the repository at this point in the history
  8. Fix for 4280 interaction async handler scheduling (#4351)

    <!-- Please be sure to read our [Contribute
    guide](https://www.reactiveui.net/contribute/index.html) before opening
    a PR. -->
    
    ## What kind of change does this PR introduce?
    <!-- Bug fix, feature, docs update, refactor, ci, ... -->
    Fix
    ## What is the current behavior?
    <!-- You can also link to an open issue here. Use "Closes #123" to
    auto-close on merge. -->
    Closes #4280 
    ## What is the new behavior?
    <!-- If this is a feature change -->
    
    This pull request refactors the `Interaction` handler registration and
    execution logic in `ReactiveUI` to improve consistency, reliability, and
    testability, especially around asynchronous handler scenarios. It
    introduces a unified handler registration core, ensures asynchronous
    handlers yield to the current context, and updates tests to use modern
    async/await patterns. Several new tests are also added to verify
    scheduler release behavior for both task-based and observable handlers.
    
    **Core handler registration and async context improvements:**
    
    * Introduced a private `RegisterHandlerCore` method to centralize
    handler registration and disposal logic, replacing duplicated code in
    `RegisterHandler` overloads.
    [[1]](diffhunk://#diff-4c32538b51e31225de509d21d08ea6cfd573a7df738530957077df781d5d3ba9L90-R129)
    [[2]](diffhunk://#diff-4c32538b51e31225de509d21d08ea6cfd573a7df738530957077df781d5d3ba9R172-R192)
    * Added a private `YieldToCurrentContext` method to ensure asynchronous
    handlers (both `Task` and `IObservable`-based) yield execution before
    invoking user code, preventing scheduler trampoline issues and improving
    nested interaction support.
    [[1]](diffhunk://#diff-4c32538b51e31225de509d21d08ea6cfd573a7df738530957077df781d5d3ba9L90-R129)
    [[2]](diffhunk://#diff-4c32538b51e31225de509d21d08ea6cfd573a7df738530957077df781d5d3ba9R172-R192)
    
    **Test modernization and reliability:**
    
    * Updated all relevant tests in `InteractionsTest.cs` to use
    `async`/`await` and `ToTask()` instead of synchronous blocking
    (`Wait()`/`FirstAsync().Wait()`), improving test reliability and better
    reflecting real-world async usage.
    [[1]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceL26-R28)
    [[2]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceL45-R60)
    [[3]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceL177-R258)
    [[4]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceL210-R277)
    [[5]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceL225-R304)
    [[6]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceL264-R345)
    * Marked the `InteractionsTest` class with `[NotInParallel]` to ensure
    tests are not run in parallel, avoiding flakiness due to shared state.
    
    **Expanded test coverage for async handler behavior:**
    
    * Added tests to verify that both `Task`-based and `IObservable`-based
    handlers release the current scheduler before executing user code,
    ensuring nested interactions are not blocked and behave as expected.
    
    **Test improvements for handler precedence and subscription timing:**
    
    * Enhanced tests to more reliably detect when handlers are subscribed
    and to ensure correct handler precedence, especially in asynchronous
    scenarios, using `TaskCompletionSource` for precise subscription
    tracking.
    [[1]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceR100-R120)
    [[2]](diffhunk://#diff-f2ed870457c71b058a31b5f78fde682cb52406c51bd54a6626d8f71de439d2ceR129)
    
    These changes collectively make handler registration more robust,
    improve async interaction patterns, and ensure that both the
    implementation and test suite are future-proof and reliable.
    ## What might this PR break?
    
    ## Checklist
    - [x] I have read the [Contribute
    guide](https://www.reactiveui.net/contribute/index.html)
    - [x] Tests have been added or updated (for bug fixes / features)
    - [ ] Docs have been added or updated (for bug fixes / features)
    - [x] Changes target the `main` branch
    - [x] PR title follows [Conventional
    Commits](https://www.conventionalcommits.org/)
    
    ## Additional information
    ChrisPulman authored May 4, 2026
    Configuration menu
    Copy the full SHA
    303d184 View commit details
    Browse the repository at this point in the history
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.