You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aligns InteractionContext<TInput, TOutput> and its related interfaces with the ReactiveUI upstream API changes shipped in the breaking: satisfy the analyzer gate commit (e740afe, #4432, released as part of the 24.x series).
ReactiveUI changes
e740afe (breaking: satisfy the analyzer gate across every target framework, #4432):
InteractionContext<TInput, TOutput> constructor changed from internal to public, allowing external creation for testing/mocking.
IsHandled and GetOutput() switched to Volatile.Read(ref _outputSet) for correct cross-thread visibility of the value written by Interlocked.CompareExchange in SetOutput.
[DebuggerDisplay("Input = {Input}, IsHandled = {IsHandled}")] added to InteractionContext.
XML doc comments added to IInteractionContext<TInput, TOutput>, IOutputContext<TInput, TOutput>, and InteractionContext.
DynamicData changes
No API-affecting upstream changes in the last 7 days. Latest release (9.4.33, 2026-06-30) contained:
Race fix in ExpireAfter for the ForSource variant (R3Ext's ExpireAfter already guards correctly via lock(gate) and items.TryGetValue checks).
Filter fix for Dictionary<,> mutation during enumeration on pre-.NET Core 3.0 targets (not applicable to R3Ext's net8+ targets).
Breaking changes
The InteractionContext<TInput, TOutput> constructor was previously internal; it is now public. This is an additive change — existing code is unaffected. Users can now create InteractionContext instances directly, which is useful for unit testing interaction handlers without going through Interaction<TInput, TOutput>.
Warning
Firewall blocked 7 domains
The following domains were blocked by the firewall during workflow execution:
crl3.digicert.com
crl4.digicert.com
ocsp.digicert.com
s.symcb.com
s.symcd.com
tscrl.ws.symantec.com
tsocsp.ws.symantec.com
To allow these domains, add them to the network.allowed list in your workflow frontmatter:
This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch api-sync/reactiveui-dynamicdata-aug-2026-8edc9981578b46d7.
To fix the permissions issue, go to Settings → Actions → General and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ
Show patch preview (129 of 129 lines)
From e590657b63e2b0b1b78e38b6f34fb2cbff5dd6fc Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 13:39:26 +0000
Subject: [PATCH] fix(interactions): align InteractionContext with ReactiveUI
upstream API
- Make InteractionContext constructor public (upstream uses public ctor)- Use Volatile.Read in IsHandled and GetOutput for correct thread visibility- Add [DebuggerDisplay] attribute to InteractionContext- Add XML doc comments to IInteractionContext, IOutputContext, InteractionContext
Motivated by ReactiveUI breaking: satisfy the analyzer gate (e740afe, #4432)
which updated InteractionContext to use Volatile.Read and added DebuggerDisplay.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
R3Ext/Interactions/IInteractionContext.cs | 13 +++++++++++
R3Ext/Interactions/IOutputContext.cs | 6 +++++
R3Ext/Interactions/InteractionContext.cs | 28 ++++++++++++++++++++---
3 files changed, 44 insertions(+), 3 deletions(-)
diff --git a/R3Ext/Interactions/IInteractionContext.cs b/R3Ext/Interactions/IInteractionContext.cs
index 82de346..c219114 100644
--- a/R3Ext/Interactions/IInteractionContext.cs+++ b/R3Ext/Interactions/IInteractionContext.cs@@ -1,10 +1,23 @@
namespace R3Ext;
+/// <summary>Contains contextual information for an interaction.</summary>+/// <typeparam name="TInput">The type of the interaction's input.</typeparam>+/// <typeparam name="TOutput">The type of the interaction's output.</typeparam>+/// <remarks>+/// Instances of this interface are passed into interaction handlers. The <see cref="Input"/> property exposes+/// the input to the interaction, whilst the <see cref="SetOutput"/> method allows a handler to provide the+/// output. Handlers should call <see cref="SetOutput"/> exactly once; subsequent calls indicate a logic error and+/// will throw. Check <see cref="IsHandled"/> before invoking long-running logic if only one handler should respo
... (truncated)
Summary
Aligns
InteractionContext<TInput, TOutput>and its related interfaces with the ReactiveUI upstream API changes shipped in thebreaking: satisfy the analyzer gatecommit (e740afe, #4432, released as part of the 24.x series).ReactiveUI changes
breaking: satisfy the analyzer gate across every target framework, #4432):InteractionContext<TInput, TOutput>constructor changed frominternaltopublic, allowing external creation for testing/mocking.IsHandledandGetOutput()switched toVolatile.Read(ref _outputSet)for correct cross-thread visibility of the value written byInterlocked.CompareExchangeinSetOutput.[DebuggerDisplay("Input = {Input}, IsHandled = {IsHandled}")]added toInteractionContext.IInteractionContext<TInput, TOutput>,IOutputContext<TInput, TOutput>, andInteractionContext.DynamicData changes
No API-affecting upstream changes in the last 7 days. Latest release (9.4.33, 2026-06-30) contained:
ExpireAfterfor theForSourcevariant (R3Ext'sExpireAfteralready guards correctly vialock(gate)anditems.TryGetValuechecks).Filterfix forDictionary<,>mutation during enumeration on pre-.NET Core 3.0 targets (not applicable to R3Ext's net8+ targets).Breaking changes
The
InteractionContext<TInput, TOutput>constructor was previouslyinternal; it is nowpublic. This is an additive change — existing code is unaffected. Users can now createInteractionContextinstances directly, which is useful for unit testing interaction handlers without going throughInteraction<TInput, TOutput>.Warning
Firewall blocked 7 domains
The following domains were blocked by the firewall during workflow execution:
crl3.digicert.comcrl4.digicert.comocsp.digicert.coms.symcb.coms.symcd.comtscrl.ws.symantec.comtsocsp.ws.symantec.comSee Network Configuration for more information.
Note
This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch
api-sync/reactiveui-dynamicdata-aug-2026-8edc9981578b46d7.Click here to create the pull request
To fix the permissions issue, go to Settings → Actions → General and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ
Show patch preview (129 of 129 lines)