Skip to content

refactor!: iter2 major — ClaimCheck/Outbox/ScatterGather migrate to PatternKit (with legacy adapters)#27

Merged
JerrettDavis merged 21 commits into
mainfrom
feat/iter2-major-interface-migrations
May 23, 2026
Merged

refactor!: iter2 major — ClaimCheck/Outbox/ScatterGather migrate to PatternKit (with legacy adapters)#27
JerrettDavis merged 21 commits into
mainfrom
feat/iter2-major-interface-migrations

Conversation

@JerrettDavis
Copy link
Copy Markdown
Owner

Summary

Phase 3 of the PatternKit adoption plan: three EIP steps re-rooted on PatternKit v0.113.0 typed interfaces. All three ship legacy adapters and [Obsolete] bridge overloads so existing consumers are not immediately broken.

  • ClaimCheckIClaimCheckStorePatternKit.Messaging.Transformation.IClaimCheckStore<object>; step self-generates its own claim ID (Guid); LegacyClaimCheckStoreAdapter bridges old impls for one release.
  • TransactionalOutboxIOutboxStorePatternKit.Messaging.Reliability.IOutboxStore<object>; uses EnqueueObjectAsync; LegacyOutboxStoreAdapter bridges old impls for one release.
  • ScatterGather — new typed Recipient(name, handler) contract replaces IStep-based shared-context mutation; uses AsyncScatterGather<IWorkflowContext,object?,IReadOnlyList<object?>> with AllOrTimeout; deprecated IEnumerable<IStep> overload retained for one release.

BREAKING / Deprecation Notes

Consumers using the old WF interfaces will see [Obsolete] warnings (error: false) — builds will not break but warnings are emitted. The adapters and deprecated overloads will be removed in the next major version.

Interface Status Action
WF.Extensions.Integration.Abstractions.IClaimCheckStore [Obsolete] Switch to PatternKit.Messaging.Transformation.IClaimCheckStore<object>
WF.Extensions.Integration.Abstractions.IOutboxStore [Obsolete] Switch to PatternKit.Messaging.Reliability.IOutboxStore<object>
ScatterGatherStep(IEnumerable<IStep>, ...) ctor [Obsolete] Switch to ScatterGatherStep(IEnumerable<ScatterGatherStep.Recipient>, ...)
WorkflowBuilderExtensions.ClaimCheck(IClaimCheckStore, ...) [Obsolete] Use overload accepting IClaimCheckStore<object>
WorkflowBuilderExtensions.ClaimRetrieve(IClaimCheckStore, ...) [Obsolete] Use overload accepting IClaimCheckStore<object>

Migration Guide

ClaimCheck (before → after)

// Before
var store = new MyClaimCheckStore();  // implements WF IClaimCheckStore
builder.ClaimCheck(store, ctx => ctx.Properties["payload"]!);

// After
var store = new MyClaimCheckStore();  // now implements PatternKit IClaimCheckStore<object>
builder.ClaimCheck(store, ctx => ctx.Properties["payload"]!);
// OR use PatternKit's InMemoryClaimCheckStore<object> for tests/dev:
var store = new InMemoryClaimCheckStore<object>();

Implement PatternKit.Messaging.Transformation.IClaimCheckStore<object>:

  • StoreAsync(string claimId, object payload, MessageHeaders headers, CancellationToken ct)
  • TryLoadAsync(string claimId, CancellationToken ct) -> ValueTask<ClaimCheckStoredPayload<object>?>

TransactionalOutbox (before → after)

// Before
var store = new MyOutboxStore();  // implements WF IOutboxStore

// After
var store = new MyOutboxStore();  // implements PatternKit IOutboxStore<object>

Implement PatternKit.Messaging.Reliability.IOutboxStore<object>:

  • EnqueueAsync(Message<object> message, ...) -> ValueTask<OutboxMessage<object>>
  • SnapshotPendingAsync(...)
  • MarkDispatchedAsync(Guid id, ...)
  • MarkFailedAsync(Guid id, ...)

ScatterGather (before → after)

// Before — IStep array, results written to shared context via __Result_{Name}
var recipients = new IStep[] { new MyStep("A"), new MyStep("B") };
builder.ScatterGather(recipients, (results, ctx) => ..., timeout);

// After — typed Recipient array, results returned directly (no shared-context mutation)
var recipients = new[]
{
    new ScatterGatherStep.Recipient("A", async (ctx, ct) => await GetResultA(ctx, ct)),
    new ScatterGatherStep.Recipient("B", async (ctx, ct) => await GetResultB(ctx, ct)),
};
builder.ScatterGather(recipients, (results, ctx) => ..., timeout);

Behavioral changes to be aware of:

  • OperationCanceledException in a recipient is swallowed without a null entry (PatternKit omits timed-out branches entirely rather than null-padding).
  • Result ordering is non-deterministic (PatternKit uses ConcurrentBag internally). Do not rely on index-based result access; use predicate-based queries.

Removal Timeline

All [Obsolete] symbols (adapters, deprecated overloads, old interfaces) will be removed in the next major version (no sooner than one full minor-version release cycle after this PR merges).

Test Plan

  • dotnet test WorkflowFramework.Tests — net8.0 / net9.0 / net10.0 — all green (1955 tests × 3 TFMs)
  • dotnet test WorkflowFramework.Tests.TinyBDD — net8.0 / net9.0 / net10.0 — all green (588 tests × 3 TFMs)
  • No new [Obsolete] warnings in production code (only in adapters and deprecated bridge overloads, which are intentionally marked)
  • docs/patternkit-adoption.md updated with §8, §9, §10 adoption entries

🤖 Generated with Claude Code

JerrettDavis and others added 21 commits April 28, 2026 21:16
… execution

- Replace qwen3:30b-instruct with qwen2.5:1.5b (1.5B params, <=2B constraint)
  everywhere the model is configured: OllamaAgentProvider default, OllamaFixture,
  SemanticKernelE2ETests, AiDsl sample, TaskStream sample extension
- Reduce OllamaFixture warmup timeout from 300s to 120s; remove /no_think from
  warmup prompt (qwen3-specific; harmless on qwen2.5 but unnecessary)
- Add xunit.runner.json to Tests.E2E with parallelizeTestCollections:false and
  maxParallelThreads:1 – combined with the existing [Collection("Ollama")] attribute
  this guarantees all Ollama-backed tests run one at a time
- Update OllamaFactAttribute skip message to reference new model
- Update OllamaOptionsTests default model assertion to match new default
- Update prerequisite XML doc comment in AgentLoopOllamaE2ETests

To run the Ollama-backed E2E tests locally:
  ollama pull qwen2.5:1.5b
  dotnet test tests/WorkflowFramework.Tests.E2E/WorkflowFramework.Tests.E2E.csproj \
    --filter Category=E2E

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… seeded workflow

Adds the AI DSL Emitter demo to the dashboard in two complementary ways:

1. Template ("New from Template" browser): id=ai-dsl-emitter, name="AI DSL Emitter",
   category="AI & Agents", marked IsFeatured=true with preview SVG.
2. Seeded workflow (open-existing list): id=sample-ai-dsl-emitter,
   name="AI DSL Emitter", immediately visible in the workflow list on startup.

Step types used match the Extensions.AI implementation:
  SelectProvider (Action) → EmitSteps (DslEmitterStep) → ApprovePlan (ApprovalStep)
  → BridgeContext (Action) → ExecuteEmittedSteps (WorkflowDslExecutorStep)

Also registers DslEmitterStep and WorkflowDslExecutorStep in StepTypeRegistry
so the designer UI can render their config schemas.

Tests: 43/43 passed (WorkflowTemplateLibraryTests + SampleWorkflowSeederTests).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…orkflow

The SelectProvider step in SampleWorkflowSeeder had the old expression
"Resolve the agent provider from {provider} (echo or ollama)..." with an
unresolved {provider} template variable. This made the seeded/open-existing
workflow appear broken in the dashboard.

Aligned the expression to match InMemoryWorkflowTemplateLibrary:
"Provider is configured as echo (offline/demo default). To run live,
change the provider field in EmitSteps to ollama before executing."

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t IClaimCheckStore<T>

OBSOLETION: WorkflowFramework.Extensions.Integration.Abstractions.IClaimCheckStore
is now [Obsolete(error: false)]. Migrate to PatternKit.Messaging.Transformation
.IClaimCheckStore<object>. LegacyClaimCheckStoreAdapter bridges old implementations
for one release; it will be removed in the next major version.

BEHAVIOR CHANGE: ClaimCheckStep now generates its own claim ID (Guid.NewGuid().ToString("N"))
rather than accepting one from the caller. The ID is stored under ClaimTicketKey as before.
Tests updated to assert the ticket is non-null/non-empty rather than a caller-supplied value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nKit IOutboxStore<T>

OBSOLETION: WorkflowFramework.Extensions.Integration.Abstractions.IOutboxStore
is now [Obsolete(error: false)]. Migrate to PatternKit.Messaging.Reliability
.IOutboxStore<object>. Use OutboxStoreExtensions.EnqueueObjectAsync for the
common case of enqueueing plain objects without custom headers.
LegacyOutboxStoreAdapter bridges old implementations for one release.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t AsyncScatterGather<T>

BREAKING (behavioral): Recipient contract changed to ScatterGatherStep.Recipient
(typed name + ValueTask-returning handler). The shared-context mutation pattern
(__Result_{Name} keys) is removed — it was a concurrency hazard with no isolation.

OBSOLETION: The IEnumerable<IStep> constructor overload is now [Obsolete] and
bridges to the typed API for one release. Migrate to ScatterGatherStep.Recipient.

BEHAVIOR CHANGE (OperationCanceledException): PatternKit swallows non-caller-
initiated OperationCanceledException without adding a failure envelope. A cancelled
branch produces 0 results, not a null entry in results. Tests updated accordingly.

BEHAVIOR CHANGE (result ordering): PatternKit uses ConcurrentBag internally;
result order is non-deterministic. Tests changed from index-based to predicate
assertions (ContainSingle) where ordering assumptions existed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…cy addition

Added PatternKit.Core package reference to Abstractions project; regenerated
lock files for all four affected projects via --force-evaluate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…terGather as Adopted

Added §8, §9, §10 documenting Phase 3 adoption details for each step.
Moved the three steps from Future Evaluation Targets to strikethrough
entries linking to the new Adopted sections.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Code Coverage

Summary
  Generated on: 05/23/2026 - 05:59:48
  Coverage date: 05/23/2026 - 05:57:23 - 05/23/2026 - 05:59:41
  Parser: MultiReport (101x Cobertura)
  Assemblies: 43
  Classes: 397
  Files: 293
  Line coverage: 93.3%
  Covered lines: 7849
  Uncovered lines: 556
  Coverable lines: 8405
  Total lines: 23928
  Branch coverage: 85% (3228 of 3795)
  Covered branches: 3228
  Total branches: 3795
  Method coverage: 97.2% (1810 of 1861)
  Full method coverage: 92.7% (1726 of 1861)
  Covered methods: 1810
  Fully covered methods: 1726
  Total methods: 1861

WorkflowFramework                                                                                    96.4%
  WorkflowFramework.Attributes.StepDescriptionAttribute                                               100%
  WorkflowFramework.Attributes.StepNameAttribute                                                      100%
  WorkflowFramework.Attributes.StepOrderAttribute                                                     100%
  WorkflowFramework.Attributes.StepRetryAttribute                                                     100%
  WorkflowFramework.Attributes.StepTimeoutAttribute                                                   100%
  WorkflowFramework.Attributes.WorkflowAttribute                                                      100%
  WorkflowFramework.Builder.TimeoutMiddleware                                                         100%
  WorkflowFramework.Builder.TryCatchBuilderImpl                                                       100%
  WorkflowFramework.Builder.WorkflowBuilder                                                          97.7%
  WorkflowFramework.Builder.WorkflowBuilder<T>                                                       98.1%
  WorkflowFramework.Builder.WorkflowBuilderExtensions                                                 100%
  WorkflowFramework.Checkpointing.CheckpointingBuilderExtensions                                      100%
  WorkflowFramework.Checkpointing.CheckpointingMiddleware                                             100%
  WorkflowFramework.Checkpointing.InMemoryWorkflowCheckpointStore                                     100%
  WorkflowFramework.Checkpointing.ResumableWorkflowContext                                            100%
  WorkflowFramework.Checkpointing.WorkflowCheckpoint                                                  100%
  WorkflowFramework.Checkpointing.WorkflowResumeEngine                                                 98%
  WorkflowFramework.Internal.ConditionalStep                                                          100%
  WorkflowFramework.Internal.ConditionalStep<T>                                                       100%
  WorkflowFramework.Internal.DelayStep                                                                100%
  WorkflowFramework.Internal.DelegateStep                                                             100%
  WorkflowFramework.Internal.DelegateStep<T>                                                          100%
  WorkflowFramework.Internal.DoWhileStep                                                              100%
  WorkflowFramework.Internal.ForEachStep<T>                                                           100%
  WorkflowFramework.Internal.ParallelStep                                                             100%
  WorkflowFramework.Internal.RetryGroupStep                                                           100%
  WorkflowFramework.Internal.SubWorkflowStep                                                          100%
  WorkflowFramework.Internal.TimeoutStep                                                              100%
  WorkflowFramework.Internal.TryCatchStep                                                             100%
  WorkflowFramework.Internal.TypedCompensatingStepAdapter<T>                                          100%
  WorkflowFramework.Internal.TypedStepAdapter<T>                                                      100%
  WorkflowFramework.Internal.TypedWorkflowAdapter<T>                                                  100%
  WorkflowFramework.Internal.WhileStep                                                                100%
  WorkflowFramework.Internal.WorkflowStatusMachine                                                    100%
  WorkflowFramework.Persistence.WorkflowState                                                         100%
  WorkflowFramework.Pipeline.Pipeline                                                                 100%
  WorkflowFramework.Pipeline.PipelineBuilder<T1, T2>                                                  100%
  WorkflowFramework.Registry.WorkflowRegistry                                                         100%
  WorkflowFramework.Registry.WorkflowRunner                                                           100%
  WorkflowFramework.StepBase                                                                          100%
  WorkflowFramework.StepBase<T>                                                                       100%
  WorkflowFramework.StepExecutionException                                                            100%
  WorkflowFramework.Triggers.CronExpression                                                          95.7%
  WorkflowFramework.Triggers.Sources.AudioInputTriggerSource                                         95.9%
  WorkflowFramework.Triggers.Sources.FileWatchTriggerSource                                          95.6%
  WorkflowFramework.Triggers.Sources.ManualTriggerSource                                             95.8%
  WorkflowFramework.Triggers.Sources.ScheduleTriggerSource                                             52%
  WorkflowFramework.Triggers.TriggerContext                                                           100%
  WorkflowFramework.Triggers.TriggerDefinition                                                        100%
  WorkflowFramework.Triggers.TriggerEvent                                                             100%
  WorkflowFramework.Triggers.TriggerServiceCollectionExtensions                                       100%
  WorkflowFramework.Triggers.TriggerSourceFactory                                                     100%
  WorkflowFramework.Triggers.TriggerTypeInfo                                                          100%
  WorkflowFramework.Triggers.WorkflowTriggerService                                                  95.2%
  WorkflowFramework.Validation.DefaultWorkflowValidator                                               100%
  WorkflowFramework.Validation.ValidationError                                                        100%
  WorkflowFramework.Validation.ValidationResult                                                       100%
  WorkflowFramework.Validation.WorkflowSpec                                                           100%
  WorkflowFramework.Versioning.VersionedWorkflowRegistry                                              100%
  WorkflowFramework.Workflow                                                                          100%
  WorkflowFramework.WorkflowAbortedException                                                          100%
  WorkflowFramework.WorkflowContext                                                                   100%
  WorkflowFramework.WorkflowContext<T>                                                                100%
  WorkflowFramework.WorkflowEngine                                                                   97.3%
  WorkflowFramework.WorkflowError                                                                     100%
  WorkflowFramework.WorkflowEventsBase                                                                100%
  WorkflowFramework.WorkflowException                                                                 100%
  WorkflowFramework.WorkflowOptions                                                                   100%
  WorkflowFramework.WorkflowResult                                                                    100%
  WorkflowFramework.WorkflowResult<T>                                                                 100%

WorkflowFramework.Extensions.Agents                                                                  97.8%
  WorkflowFramework.Extensions.Agents.AgentBuilderExtensions                                          100%
  WorkflowFramework.Extensions.Agents.AgentLoopOptions                                                100%
  WorkflowFramework.Extensions.Agents.AgentLoopStep                                                    94%
  WorkflowFramework.Extensions.Agents.AgentToolingOptions                                             100%
  WorkflowFramework.Extensions.Agents.CheckpointInfo                                                  100%
  WorkflowFramework.Extensions.Agents.CodeHook                                                        100%
  WorkflowFramework.Extensions.Agents.CommandHook                                                    97.5%
  WorkflowFramework.Extensions.Agents.CompactionOptions                                               100%
  WorkflowFramework.Extensions.Agents.CompactionResult                                                100%
  WorkflowFramework.Extensions.Agents.ContextAggregator                                               100%
  WorkflowFramework.Extensions.Agents.ContextDocument                                                 100%
  WorkflowFramework.Extensions.Agents.ContextSnapshot                                                 100%
  WorkflowFramework.Extensions.Agents.ConversationMessage                                             100%
  WorkflowFramework.Extensions.Agents.DefaultContextManager                                           100%
  WorkflowFramework.Extensions.Agents.DefaultTokenEstimator                                           100%
  WorkflowFramework.Extensions.Agents.Diagnostics.AgentActivitySource                                 100%
  WorkflowFramework.Extensions.Agents.DslEmitterOptions                                               100%
  WorkflowFramework.Extensions.Agents.DslEmitterStep                                                 96.2%
  WorkflowFramework.Extensions.Agents.HookContext                                                     100%
  WorkflowFramework.Extensions.Agents.HookPipeline                                                   96.1%
  WorkflowFramework.Extensions.Agents.HookResult                                                      100%
  WorkflowFramework.Extensions.Agents.InMemoryCheckpointStore                                         100%
  WorkflowFramework.Extensions.Agents.LlmCompactionStrategy                                           100%
  WorkflowFramework.Extensions.Agents.PromptHook                                                      100%
  WorkflowFramework.Extensions.Agents.ServiceCollectionExtensions                                     100%
  WorkflowFramework.Extensions.Agents.SlidingWindowCompactionStrategy                                 100%
  WorkflowFramework.Extensions.Agents.ToolCallStep                                                    100%
  WorkflowFramework.Extensions.Agents.ToolDefinition                                                  100%
  WorkflowFramework.Extensions.Agents.ToolRegistry                                                    100%
  WorkflowFramework.Extensions.Agents.ToolResult                                                      100%

WorkflowFramework.Extensions.Agents.Mcp                                                              97.8%
  WorkflowFramework.Extensions.Agents.Mcp.HttpMcpTransport                                            100%
  WorkflowFramework.Extensions.Agents.Mcp.McpBuilderExtensions                                        100%
  WorkflowFramework.Extensions.Agents.Mcp.McpClient                                                   100%
  WorkflowFramework.Extensions.Agents.Mcp.McpJsonRpcError                                             100%
  WorkflowFramework.Extensions.Agents.Mcp.McpJsonRpcMessage                                           100%
  WorkflowFramework.Extensions.Agents.Mcp.McpResourceContent                                          100%
  WorkflowFramework.Extensions.Agents.Mcp.McpResourceInfo                                             100%
  WorkflowFramework.Extensions.Agents.Mcp.McpResourceProvider                                         100%
  WorkflowFramework.Extensions.Agents.Mcp.McpServerConfig                                             100%
  WorkflowFramework.Extensions.Agents.Mcp.McpServiceCollectionExtensions                              100%
  WorkflowFramework.Extensions.Agents.Mcp.McpToolCallResult                                           100%
  WorkflowFramework.Extensions.Agents.Mcp.McpToolInfo                                                 100%
  WorkflowFramework.Extensions.Agents.Mcp.McpToolProvider                                             100%
  WorkflowFramework.Extensions.Agents.Mcp.StdioMcpTransport                                          85.4%

WorkflowFramework.Extensions.Agents.Skills                                                           97.2%
  WorkflowFramework.Extensions.Agents.Skills.SkillContextSource                                       100%
  WorkflowFramework.Extensions.Agents.Skills.SkillDefinition                                          100%
  WorkflowFramework.Extensions.Agents.Skills.SkillDiscovery                                          86.1%
  WorkflowFramework.Extensions.Agents.Skills.SkillFrontmatter                                         100%
  WorkflowFramework.Extensions.Agents.Skills.SkillLoader                                              100%
  WorkflowFramework.Extensions.Agents.Skills.SkillOptions                                             100%
  WorkflowFramework.Extensions.Agents.Skills.SkillServiceCollectionExtensions                         100%
  WorkflowFramework.Extensions.Agents.Skills.SkillToolProvider                                        100%

WorkflowFramework.Extensions.AI                                                                      99.3%
  WorkflowFramework.Extensions.AI.AgentDecisionOptions                                                100%
  WorkflowFramework.Extensions.AI.AgentDecisionRequest                                                100%
  WorkflowFramework.Extensions.AI.AgentDecisionStep                                                   100%
  WorkflowFramework.Extensions.AI.AgentPlanOptions                                                    100%
  WorkflowFramework.Extensions.AI.AgentPlanStep                                                       100%
  WorkflowFramework.Extensions.AI.AgentTool                                                           100%
  WorkflowFramework.Extensions.AI.AiBuilderExtensions                                                 100%
  WorkflowFramework.Extensions.AI.AnthropicAgentProvider                                              100%
  WorkflowFramework.Extensions.AI.AnthropicOptions                                                    100%
  WorkflowFramework.Extensions.AI.EchoAgentProvider                                                   100%
  WorkflowFramework.Extensions.AI.HuggingFaceAgentProvider                                            100%
  WorkflowFramework.Extensions.AI.HuggingFaceOptions                                                  100%
  WorkflowFramework.Extensions.AI.LlmCallOptions                                                      100%
  WorkflowFramework.Extensions.AI.LlmCallStep                                                         100%
  WorkflowFramework.Extensions.AI.LlmRequest                                                          100%
  WorkflowFramework.Extensions.AI.LlmResponse                                                         100%
  WorkflowFramework.Extensions.AI.OllamaAgentProvider                                                 100%
  WorkflowFramework.Extensions.AI.OllamaOptions                                                       100%
  WorkflowFramework.Extensions.AI.OpenAiAgentProvider                                                 100%
  WorkflowFramework.Extensions.AI.OpenAiOptions                                                       100%
  WorkflowFramework.Extensions.AI.PromptTemplateRenderer                                             88.8%
  WorkflowFramework.Extensions.AI.SemanticKernelAgentProvider                                        98.7%
  WorkflowFramework.Extensions.AI.SemanticKernelOptions                                               100%
  WorkflowFramework.Extensions.AI.TokenUsage                                                          100%
  WorkflowFramework.Extensions.AI.ToolCall                                                            100%

WorkflowFramework.Extensions.Approvals                                                               93.5%
  WorkflowFramework.Extensions.Approvals.ApprovalRehydrationHostedService                            77.2%
  WorkflowFramework.Extensions.Approvals.ApprovalsBuilder                                            97.6%
  WorkflowFramework.Extensions.Approvals.ApprovalsOptions                                             100%
  WorkflowFramework.Extensions.Approvals.ApprovalsServiceCollectionExtensions                         100%
  WorkflowFramework.Extensions.Approvals.CompositeApprovalChannel                                    95.3%
  WorkflowFramework.Extensions.Approvals.EscalatingTimeoutChannel                                    97.5%
  WorkflowFramework.Extensions.Approvals.InMemoryApprovalStore                                        100%
  WorkflowFramework.Extensions.Approvals.MultiChannelApprovalService                                  100%
  WorkflowFramework.Extensions.Approvals.NamedChannelRouter                                           100%
  WorkflowFramework.Extensions.Approvals.PersistentApprovalService                                     88%
  WorkflowFramework.Extensions.Approvals.QuorumApprovalAggregator                                     100%
  WorkflowFramework.Extensions.Approvals.SchedulingApprovalServiceAdapter                             100%
  WorkflowFramework.Extensions.Approvals.SingleChannelRouter                                          100%

WorkflowFramework.Extensions.Approvals.Abstractions                                                  96.2%
  WorkflowFramework.Extensions.Approvals.ApprovalRecord                                               100%
  WorkflowFramework.Extensions.Approvals.ApprovalRequest                                              100%
  WorkflowFramework.Extensions.Approvals.ApprovalRequestBuilder                                      95.4%
  WorkflowFramework.Extensions.Approvals.ApprovalResponse                                             100%
  WorkflowFramework.Extensions.Approvals.PendingApproval                                             90.9%

WorkflowFramework.Extensions.Approvals.Cli                                                           86.8%
  WorkflowFramework.Extensions.Approvals.Cli.CliApprovalChannel                                      69.4%
  WorkflowFramework.Extensions.Approvals.Cli.Commands.SystemConsole                                     0%
  WorkflowFramework.Extensions.Approvals.Cli.Commands.WfApprovalsCommand                             93.6%
  WorkflowFramework.Extensions.Approvals.Cli.DependencyInjection.CliApprovalsBuilderExtensions        100%

WorkflowFramework.Extensions.Approvals.Email                                                         83.9%
  WorkflowFramework.Extensions.Approvals.Email.ApprovalTokenPayload                                   100%
  WorkflowFramework.Extensions.Approvals.Email.ApprovalTokenService                                  96.2%
  WorkflowFramework.Extensions.Approvals.Email.DependencyInjection.EmailApprovalsBuilderExtensions    100%
  WorkflowFramework.Extensions.Approvals.Email.EmailApprovalCallbackHandler                           100%
  WorkflowFramework.Extensions.Approvals.Email.EmailApprovalChannel                                  86.5%
  WorkflowFramework.Extensions.Approvals.Email.EmailApprovalOptions                                  78.5%
  WorkflowFramework.Extensions.Approvals.Email.EmailApprovalOptionsValidator                           96%
  WorkflowFramework.Extensions.Approvals.Email.EmailEndpointExtensions                                  0%
  WorkflowFramework.Extensions.Approvals.Email.EmailMessage                                           100%
  WorkflowFramework.Extensions.Approvals.Email.EmailMessageBuilder                                   97.1%
  WorkflowFramework.Extensions.Approvals.Email.SmtpEmailSender                                       53.8%

WorkflowFramework.Extensions.Approvals.Slack                                                         77.4%
  WorkflowFramework.Extensions.Approvals.Slack.Blocks.SlackBlockKitBuilder                             74%
  WorkflowFramework.Extensions.Approvals.Slack.DependencyInjection.SlackApprovalsBuilderExtensions    100%
  WorkflowFramework.Extensions.Approvals.Slack.SlackApprovalChannel                                  92.4%
  WorkflowFramework.Extensions.Approvals.Slack.SlackApprovalOptions                                   100%
  WorkflowFramework.Extensions.Approvals.Slack.SlackApprovalOptionsValidator                          100%
  WorkflowFramework.Extensions.Approvals.Slack.SlackEndpointExtensions                                  0%
  WorkflowFramework.Extensions.Approvals.Slack.SlackInteractionResult                                 100%
  WorkflowFramework.Extensions.Approvals.Slack.SlackInteractivityHandler                             88.2%
  WorkflowFramework.Extensions.Approvals.Slack.SlackSignatureValidator                               87.5%

WorkflowFramework.Extensions.Approvals.Teams                                                           84%
  WorkflowFramework.Extensions.Approvals.Teams.Cards.AdaptiveCardBuilder                              100%
  WorkflowFramework.Extensions.Approvals.Teams.DependencyInjection.TeamsApprovalsBuilderExtensions    100%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsApprovalChannel                                  73.2%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsApprovalOptions                                   100%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsApprovalOptionsValidator                         92.3%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsCallbackHandler                                  94.9%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsCallbackResult                                    100%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsCallbackTokenService                             94.4%
  WorkflowFramework.Extensions.Approvals.Teams.TeamsEndpointExtensions                                  0%

WorkflowFramework.Extensions.Configuration                                                           90.9%
  WorkflowFramework.Extensions.Configuration.CatchDefinition                                          100%
  WorkflowFramework.Extensions.Configuration.JsonWorkflowDefinitionLoader                             100%
  WorkflowFramework.Extensions.Configuration.LoopDefinition                                           100%
  WorkflowFramework.Extensions.Configuration.RetryDefinition                                          100%
  WorkflowFramework.Extensions.Configuration.StepDefinition                                           100%
  WorkflowFramework.Extensions.Configuration.StepRegistry                                             100%
  WorkflowFramework.Extensions.Configuration.WorkflowDefinition                                       100%
  WorkflowFramework.Extensions.Configuration.WorkflowDefinitionBuilder                               88.6%
  WorkflowFramework.Extensions.Configuration.WorkflowDefinitionLoaderServiceCollectionExtensions      100%
  WorkflowFramework.Extensions.Configuration.YamlWorkflowDefinitionLoader                             100%

WorkflowFramework.Extensions.Connectors.Abstractions                                                  100%
  WorkflowFramework.Extensions.Connectors.Abstractions.AuthenticationConfig                           100%
  WorkflowFramework.Extensions.Connectors.Abstractions.BuiltIn.FileConnectorConfig                    100%
  WorkflowFramework.Extensions.Connectors.Abstractions.BuiltIn.FtpConnectorConfig                     100%
  WorkflowFramework.Extensions.Connectors.Abstractions.BuiltIn.HttpConnectorConfig                    100%
  WorkflowFramework.Extensions.Connectors.Abstractions.BuiltIn.SqlConnectorConfig                     100%
  WorkflowFramework.Extensions.Connectors.Abstractions.ConnectorConfiguration                         100%
  WorkflowFramework.Extensions.Connectors.Abstractions.ConnectorMessage                               100%
  WorkflowFramework.Extensions.Connectors.Abstractions.ConnectorRegistry                              100%
  WorkflowFramework.Extensions.Connectors.Abstractions.RetryConfig                                    100%

WorkflowFramework.Extensions.Connectors.Grpc                                                          100%
  WorkflowFramework.Extensions.Connectors.Grpc.GrpcConnectorConfig                                    100%

WorkflowFramework.Extensions.Connectors.Messaging                                                    80.5%
  WorkflowFramework.Extensions.Connectors.Messaging.Abstractions.BrokerMessage                        100%
  WorkflowFramework.Extensions.Connectors.Messaging.Configuration.AzureServiceBusConnectorConfig      100%
  WorkflowFramework.Extensions.Connectors.Messaging.Configuration.KafkaConnectorConfig                100%
  WorkflowFramework.Extensions.Connectors.Messaging.Configuration.RabbitMqConnectorConfig             100%
  WorkflowFramework.Extensions.Connectors.Messaging.InMemoryMessageConnector                         95.5%
  WorkflowFramework.Extensions.Connectors.Messaging.ServiceCollectionExtensions                       100%
  WorkflowFramework.Extensions.Connectors.Messaging.Triggers.MessageQueueTriggerSource               55.3%

WorkflowFramework.Extensions.DataMapping                                                               95%
  WorkflowFramework.Extensions.DataMapping.Abstractions.DataMappingProfile                            100%
  WorkflowFramework.Extensions.DataMapping.Abstractions.DataMappingResult                             100%
  WorkflowFramework.Extensions.DataMapping.Abstractions.FieldMapping                                  100%
  WorkflowFramework.Extensions.DataMapping.Abstractions.TransformerRef                                100%
  WorkflowFramework.Extensions.DataMapping.Batch.BatchOptions                                         100%
  WorkflowFramework.Extensions.DataMapping.Batch.BatchProcessStep                                     100%
  WorkflowFramework.Extensions.DataMapping.Batch.DataBatcher                                          100%
  WorkflowFramework.Extensions.DataMapping.Builder.DataMappingBuilderExtensions                       100%
  WorkflowFramework.Extensions.DataMapping.Builder.DataMappingProfileBuilder                          100%
  WorkflowFramework.Extensions.DataMapping.Engine.DataMapper                                         92.8%
  WorkflowFramework.Extensions.DataMapping.Engine.FieldTransformerRegistry                            100%
  WorkflowFramework.Extensions.DataMapping.Internal.DictHelper                                        100%
  WorkflowFramework.Extensions.DataMapping.Readers.DictionarySourceReader                             100%
  WorkflowFramework.Extensions.DataMapping.Readers.JsonSourceReader                                  92.1%
  WorkflowFramework.Extensions.DataMapping.Readers.ObjectSourceReader                                88.8%
  WorkflowFramework.Extensions.DataMapping.Readers.XmlSourceReader                                   88.8%
  WorkflowFramework.Extensions.DataMapping.ServiceCollectionExtensions                                100%
  WorkflowFramework.Extensions.DataMapping.Steps.DataMapStep                                         95.6%
  WorkflowFramework.Extensions.DataMapping.Steps.FormatConvertStep                                    100%
  WorkflowFramework.Extensions.DataMapping.Steps.SchemaValidateStep                                   100%
  WorkflowFramework.Extensions.DataMapping.Steps.SchemaValidationResult                               100%
  WorkflowFramework.Extensions.DataMapping.Transformers.BooleanTransformer                            100%
  WorkflowFramework.Extensions.DataMapping.Transformers.CompositeTransformer                          100%
  WorkflowFramework.Extensions.DataMapping.Transformers.ConditionalTransformer                        100%
  WorkflowFramework.Extensions.DataMapping.Transformers.DateFormatTransformer                        90.9%
  WorkflowFramework.Extensions.DataMapping.Transformers.DefaultValueTransformer                       100%
  WorkflowFramework.Extensions.DataMapping.Transformers.NumberFormatTransformer                       100%
  WorkflowFramework.Extensions.DataMapping.Transformers.RegexReplaceTransformer                      87.5%
  WorkflowFramework.Extensions.DataMapping.Transformers.ToLowerTransformer                            100%
  WorkflowFramework.Extensions.DataMapping.Transformers.ToUpperTransformer                            100%
  WorkflowFramework.Extensions.DataMapping.Transformers.TrimTransformer                               100%
  WorkflowFramework.Extensions.DataMapping.Writers.DictionaryDestinationWriter                       87.5%
  WorkflowFramework.Extensions.DataMapping.Writers.JsonDestinationWriter                             87.5%
  WorkflowFramework.Extensions.DataMapping.Writers.ObjectDestinationWriter                           86.6%
  WorkflowFramework.Extensions.DataMapping.Writers.XmlDestinationWriter                              92.5%

WorkflowFramework.Extensions.DataMapping.Formats                                                      100%
  WorkflowFramework.Extensions.DataMapping.Formats.Converters.FormatConverter                         100%

WorkflowFramework.Extensions.DataMapping.Schema                                                      98.4%
  WorkflowFramework.Extensions.DataMapping.Schema.Abstractions.SchemaRegistry                         100%
  WorkflowFramework.Extensions.DataMapping.Schema.Validators.JsonSchemaValidator                     97.5%
  WorkflowFramework.Extensions.DataMapping.Schema.Validators.XmlSchemaValidator                       100%

WorkflowFramework.Extensions.DependencyInjection                                                      100%
  WorkflowFramework.Extensions.DependencyInjection.ServiceCollectionExtensions                        100%
  WorkflowFramework.Extensions.DependencyInjection.WorkflowBuilderExtensions                          100%

WorkflowFramework.Extensions.Diagnostics                                                             99.2%
  WorkflowFramework.Extensions.Diagnostics.AuditEntry                                                 100%
  WorkflowFramework.Extensions.Diagnostics.AuditMiddleware                                            100%
  WorkflowFramework.Extensions.Diagnostics.CachingMiddleware                                          100%
  WorkflowFramework.Extensions.Diagnostics.DashboardSummary                                           100%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.ExecutionHistoryBuilderExtensions         100%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.ExecutionHistoryEvents                   93.7%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.ExecutionHistoryFilter                    100%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.ExecutionHistoryMiddleware                100%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.InMemoryExecutionHistoryStore              96%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.StepRunRecord                             100%
  WorkflowFramework.Extensions.Diagnostics.ExecutionHistory.WorkflowRunRecord                         100%
  WorkflowFramework.Extensions.Diagnostics.IdempotencyMiddleware                                      100%
  WorkflowFramework.Extensions.Diagnostics.InMemoryAuditStore                                         100%
  WorkflowFramework.Extensions.Diagnostics.LoggingMiddleware                                          100%
  WorkflowFramework.Extensions.Diagnostics.MetricsDashboardDataProvider                               100%
  WorkflowFramework.Extensions.Diagnostics.MetricsMiddleware                                          100%
  WorkflowFramework.Extensions.Diagnostics.OpenTelemetryMiddleware                                    100%
  WorkflowFramework.Extensions.Diagnostics.StructuredLoggingMiddleware                                100%
  WorkflowFramework.Extensions.Diagnostics.TimingMiddleware                                           100%
  WorkflowFramework.Extensions.Diagnostics.TracingMiddleware                                          100%
  WorkflowFramework.Extensions.Diagnostics.ValidationMiddleware                                       100%
  WorkflowFramework.Extensions.Diagnostics.WorkflowActivitySource                                     100%

WorkflowFramework.Extensions.Distributed                                                              100%
  WorkflowFramework.Extensions.Distributed.InMemoryDistributedLock                                    100%
  WorkflowFramework.Extensions.Distributed.InMemoryWorkflowQueue                                      100%
  WorkflowFramework.Extensions.Distributed.WorkerHealthStatus                                         100%
  WorkflowFramework.Extensions.Distributed.WorkflowQueueItem                                          100%
  WorkflowFramework.Extensions.Distributed.WorkflowWorker                                             100%
  WorkflowFramework.Extensions.Distributed.WorkflowWorkerOptions                                      100%

WorkflowFramework.Extensions.Distributed.PostgreSQL                                                  24.1%
  WorkflowFramework.Extensions.Distributed.PostgreSQL.PostgreSqlDistributedLock                        27%
  WorkflowFramework.Extensions.Distributed.PostgreSQL.PostgreSqlWorkflowQueue                        15.9%
  WorkflowFramework.Extensions.Distributed.PostgreSQL.ServiceCollectionExtensions                     100%

WorkflowFramework.Extensions.Distributed.Redis                                                        100%
  WorkflowFramework.Extensions.Distributed.Redis.RedisDistributedLock                                 100%
  WorkflowFramework.Extensions.Distributed.Redis.RedisWorkflowQueue                                   100%

WorkflowFramework.Extensions.Events                                                                   100%
  WorkflowFramework.Extensions.Events.EventBuilderExtensions                                          100%
  WorkflowFramework.Extensions.Events.InMemoryEventBus                                                100%
  WorkflowFramework.Extensions.Events.PublishEventStep                                                100%
  WorkflowFramework.Extensions.Events.WaitForEventStep                                                100%
  WorkflowFramework.Extensions.Events.WorkflowEvent                                                   100%

WorkflowFramework.Extensions.Expressions                                                             97.4%
  WorkflowFramework.Extensions.Expressions.ExpressionBuilderExtensions                                100%
  WorkflowFramework.Extensions.Expressions.SimpleExpressionEvaluator                                 96.6%
  WorkflowFramework.Extensions.Expressions.TemplateEngine                                             100%

WorkflowFramework.Extensions.Hosting                                                                 97.3%
  WorkflowFramework.Extensions.Hosting.HostingServiceCollectionExtensions                             100%
  WorkflowFramework.Extensions.Hosting.WorkflowHealthCheck                                            100%
  WorkflowFramework.Extensions.Hosting.WorkflowHostingOptions                                         100%
  WorkflowFramework.Extensions.Hosting.WorkflowSchedulerHostedService                                92.8%

WorkflowFramework.Extensions.Http                                                                     100%
  WorkflowFramework.Extensions.Http.ApiKeyAuthProvider                                                100%
  WorkflowFramework.Extensions.Http.BearerTokenAuthProvider                                           100%
  WorkflowFramework.Extensions.Http.HttpBuilderExtensions                                             100%
  WorkflowFramework.Extensions.Http.HttpStep                                                          100%
  WorkflowFramework.Extensions.Http.HttpStepOptions                                                   100%
  WorkflowFramework.Extensions.Http.WebhookPayload                                                    100%
  WorkflowFramework.Extensions.Http.WebhookTriggerOptions                                             100%
  WorkflowFramework.Extensions.Http.WebhookTriggerStep                                                100%

WorkflowFramework.Extensions.HumanTasks                                                               100%
  WorkflowFramework.Extensions.HumanTasks.ApprovalOptions                                             100%
  WorkflowFramework.Extensions.HumanTasks.ApprovalStep                                                100%
  WorkflowFramework.Extensions.HumanTasks.EscalationRule                                              100%
  WorkflowFramework.Extensions.HumanTasks.HumanTask                                                   100%
  WorkflowFramework.Extensions.HumanTasks.HumanTaskOptions                                            100%
  WorkflowFramework.Extensions.HumanTasks.HumanTaskStep                                               100%
  WorkflowFramework.Extensions.HumanTasks.InMemoryTaskInbox                                           100%

WorkflowFramework.Extensions.Integration                                                               98%
  WorkflowFramework.Extensions.Integration.Builder.IntegrationBuilderExtensions                        75%
  WorkflowFramework.Extensions.Integration.Channel.ChannelAdapterStep                                 100%
  WorkflowFramework.Extensions.Integration.Channel.DeadLetterStep                                     100%
  WorkflowFramework.Extensions.Integration.Channel.MessageBridgeStep                                  100%
  WorkflowFramework.Extensions.Integration.Channel.WireTapStep                                        100%
  WorkflowFramework.Extensions.Integration.Composition.AggregatorOptions                              100%
  WorkflowFramework.Extensions.Integration.Composition.AggregatorStep                                 100%
  WorkflowFramework.Extensions.Integration.Composition.ComposedMessageProcessorStep                   100%
  WorkflowFramework.Extensions.Integration.Composition.ProcessManagerStep                             100%
  WorkflowFramework.Extensions.Integration.Composition.ResequencerStep                                100%
  WorkflowFramework.Extensions.Integration.Composition.ScatterGatherStep                              100%
  WorkflowFramework.Extensions.Integration.Composition.SplitterStep                                   100%
  WorkflowFramework.Extensions.Integration.Endpoint.IdempotentReceiverStep                            100%
  WorkflowFramework.Extensions.Integration.Endpoint.PollingConsumerStep<T>                            100%
  WorkflowFramework.Extensions.Integration.Endpoint.TransactionalOutboxStep                           100%
  WorkflowFramework.Extensions.Integration.Routing.ContentBasedRouterStep                             100%
  WorkflowFramework.Extensions.Integration.Routing.DynamicRouterStep                                  100%
  WorkflowFramework.Extensions.Integration.Routing.MessageFilterStep                                  100%
  WorkflowFramework.Extensions.Integration.Routing.RecipientListStep                                  100%
  WorkflowFramework.Extensions.Integration.Routing.RoutingSlip                                        100%
  WorkflowFramework.Extensions.Integration.Routing.RoutingSlipStep                                    100%
  WorkflowFramework.Extensions.Integration.Transformation.ClaimCheckStep                              100%
  WorkflowFramework.Extensions.Integration.Transformation.ClaimRetrieveStep                          91.6%
  WorkflowFramework.Extensions.Integration.Transformation.ContentEnricherStep                         100%
  WorkflowFramework.Extensions.Integration.Transformation.ContentFilterStep                           100%
  WorkflowFramework.Extensions.Integration.Transformation.MessageTranslatorStep<T1, T2>               100%
  WorkflowFramework.Extensions.Integration.Transformation.NormalizerStep                             91.6%

WorkflowFramework.Extensions.Integration.Abstractions                                                11.7%
  WorkflowFramework.Extensions.Integration.Abstractions.LegacyClaimCheckStoreAdapter                    0%
  WorkflowFramework.Extensions.Integration.Abstractions.LegacyOutboxStoreAdapter                        0%
  WorkflowFramework.Extensions.Integration.Abstractions.OutboxMessage                                 100%

WorkflowFramework.Extensions.Persistence                                                              100%
  WorkflowFramework.Extensions.Persistence.CheckpointMiddleware                                       100%

WorkflowFramework.Extensions.Persistence.EntityFramework                                              100%
  WorkflowFramework.Extensions.Persistence.EntityFramework.EfCoreWorkflowStateStore                   100%
  WorkflowFramework.Extensions.Persistence.EntityFramework.WorkflowDbContext                          100%
  WorkflowFramework.Extensions.Persistence.EntityFramework.WorkflowStateEntity                        100%

WorkflowFramework.Extensions.Persistence.InMemory                                                     100%
  WorkflowFramework.Extensions.Persistence.InMemory.InMemoryWorkflowStateStore                        100%

WorkflowFramework.Extensions.Persistence.PostgreSQL                                                   100%
  WorkflowFramework.Extensions.Persistence.PostgreSQL.PostgreSqlWorkflowDbContext                     100%
  WorkflowFramework.Extensions.Persistence.PostgreSQL.ServiceCollectionExtensions                     100%

WorkflowFramework.Extensions.Persistence.Sqlite                                                       100%
  WorkflowFramework.Extensions.Persistence.Sqlite.SqliteWorkflowStateStore                            100%

WorkflowFramework.Extensions.Persistence.SqlServer                                                    100%
  WorkflowFramework.Extensions.Persistence.SqlServer.ServiceCollectionExtensions                      100%
  WorkflowFramework.Extensions.Persistence.SqlServer.SqlServerWorkflowDbContext                       100%

WorkflowFramework.Extensions.Plugins                                                                 97.8%
  WorkflowFramework.Extensions.Plugins.PluginManager                                                 96.7%
  WorkflowFramework.Extensions.Plugins.PluginManifest                                                 100%
  WorkflowFramework.Extensions.Plugins.WorkflowPluginBase                                             100%
  WorkflowFramework.Extensions.Plugins.WorkflowPluginContext                                          100%

WorkflowFramework.Extensions.Polly                                                                    100%
  WorkflowFramework.Extensions.Polly.ResilienceMiddleware                                             100%
  WorkflowFramework.Extensions.Polly.WorkflowBuilderPollyExtensions                                   100%

WorkflowFramework.Extensions.Reactive                                                                 100%
  WorkflowFramework.Extensions.Reactive.AsyncStepAdapter<T>                                           100%
  WorkflowFramework.Extensions.Reactive.ReactiveExtensions                                            100%

WorkflowFramework.Extensions.Scheduling                                                              94.8%
  WorkflowFramework.Extensions.Scheduling.ApprovalConfig                                              100%
  WorkflowFramework.Extensions.Scheduling.CronParser                                                 97.3%
  WorkflowFramework.Extensions.Scheduling.InMemoryApprovalService                                     100%
  WorkflowFramework.Extensions.Scheduling.InMemoryWorkflowScheduler                                  92.3%
  WorkflowFramework.Extensions.Scheduling.ScheduledWorkflow                                           100%

WorkflowFramework.Extensions.Visualization                                                            100%
  WorkflowFramework.Extensions.Visualization.WorkflowVisualizationExtensions                          100%

WorkflowFramework.Serialization                                                                      98.9%
  WorkflowFramework.Serialization.StepDefinitionDto                                                   100%
  WorkflowFramework.Serialization.StepInspector                                                      96.8%
  WorkflowFramework.Serialization.WorkflowCanvasDto                                                   100%
  WorkflowFramework.Serialization.WorkflowCanvasEdgeDto                                               100%
  WorkflowFramework.Serialization.WorkflowCanvasNodeDto                                               100%
  WorkflowFramework.Serialization.WorkflowDefinitionDto                                               100%
  WorkflowFramework.Serialization.WorkflowSerializer                                                  100%
  WorkflowFramework.Serialization.YamlReader                                                          100%
  WorkflowFramework.Serialization.YamlWriter                                                          100%

WorkflowFramework.Testing                                                                            99.2%
  WorkflowFramework.Testing.FakeStep                                                                  100%
  WorkflowFramework.Testing.FakeStep<T>                                                               100%
  WorkflowFramework.Testing.InMemoryWorkflowEvents                                                    100%
  WorkflowFramework.Testing.MockStep                                                                  100%
  WorkflowFramework.Testing.StepTestBuilder                                                           100%
  WorkflowFramework.Testing.WorkflowAssertions                                                        100%
  WorkflowFramework.Testing.WorkflowTestBuilder                                                       100%
  WorkflowFramework.Testing.WorkflowTestHarness                                                      96.1%

@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.37736% with 42 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.44%. Comparing base (ccdaa97) to head (0c0a9f1).

Files with missing lines Patch % Lines
...tegration.Abstractions/LegacyOutboxStoreAdapter.cs 0.00% 19 Missing ⚠️
...ation.Abstractions/LegacyClaimCheckStoreAdapter.cs 0.00% 11 Missing ⚠️
...ntegration/Builder/IntegrationBuilderExtensions.cs 0.00% 5 Missing ⚠️
...sions.Integration/Composition/ScatterGatherStep.cs 91.22% 0 Missing and 5 partials ⚠️
...sions.Integration/Transformation/ClaimCheckStep.cs 77.77% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #27      +/-   ##
==========================================
- Coverage   89.77%   89.44%   -0.33%     
==========================================
  Files         291      293       +2     
  Lines        8342     8405      +63     
  Branches     1502     1516      +14     
==========================================
+ Hits         7489     7518      +29     
- Misses        527      554      +27     
- Partials      326      333       +7     
Flag Coverage Δ
unittests 89.44% <60.37%> (-0.33%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@JerrettDavis JerrettDavis merged commit cc5b0d6 into main May 23, 2026
6 checks passed
@JerrettDavis JerrettDavis deleted the feat/iter2-major-interface-migrations branch May 23, 2026 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants