Skip to content

feat: add backplane topology generator#223

Merged
JerrettDavis merged 1 commit into
mainfrom
feat/backplane-topology-generator
May 20, 2026
Merged

feat: add backplane topology generator#223
JerrettDavis merged 1 commit into
mainfrom
feat/backplane-topology-generator

Conversation

@JerrettDavis
Copy link
Copy Markdown
Owner

Summary

  • add source generator attributes and diagnostics for generated request/reply plus publish/subscribe backplane topology
  • switch the messaging backplane facade example to generated topology with IServiceCollection import coverage
  • update pattern coverage catalogs and docs so Request-Reply and Publish-Subscribe have source-generated paths

Closes #214

Validation

  • dotnet build src/PatternKit.Generators/PatternKit.Generators.csproj -c Release --no-restore
  • git diff --check

Note: focused local test builds are blocked on this machine by the existing Roslyn compiler/analyzer mismatch (CS9057/CS1705); PR CI should be authoritative.

Copilot AI review requested due to automatic review settings May 20, 2026 17:25
@github-actions
Copy link
Copy Markdown
Contributor

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions
Copy link
Copy Markdown
Contributor

Test Results

  1 files    1 suites   1m 44s ⏱️
615 tests 615 ✅ 0 💤 0 ❌
616 runs  616 ✅ 0 💤 0 ❌

Results for commit 6bdf17a.

@github-actions
Copy link
Copy Markdown
Contributor

🔍 PR Validation Results

Version: ``

✅ Validation Steps

  • Build solution
  • Run tests
  • Build documentation
  • Dry-run NuGet packaging

📊 Artifacts

Dry-run artifacts have been uploaded and will be available for 7 days.


This comment was automatically generated by the PR validation workflow.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

❌ Patch coverage is 94.73684% with 16 lines in your changes missing coverage. Please review.
✅ Project coverage is 96.57%. Comparing base (576bc7a) to head (6bdf17a).

Files with missing lines Patch % Lines
...Generators/Messaging/BackplaneTopologyGenerator.cs 93.33% 16 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #223      +/-   ##
==========================================
+ Coverage   91.68%   96.57%   +4.89%     
==========================================
  Files         267      269       +2     
  Lines       25277    25546     +269     
  Branches     3457     3514      +57     
==========================================
+ Hits        23174    24670    +1496     
+ Misses        923      876      -47     
+ Partials     1180        0    -1180     
Flag Coverage Δ
unittests 96.57% <94.73%> (+4.89%) ⬆️

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.

@github-actions
Copy link
Copy Markdown
Contributor

Code Coverage

Summary
  Generated on: 05/20/2026 - 17:31:00
  Coverage date: 05/20/2026 - 17:29:43 - 05/20/2026 - 17:30:52
  Parser: MultiReport (9x Cobertura)
  Assemblies: 4
  Classes: 671
  Files: 321
  Line coverage: 95.1%
  Covered lines: 25443
  Uncovered lines: 1305
  Coverable lines: 26748
  Total lines: 61954
  Branch coverage: 78.8% (7462 of 9461)
  Covered branches: 7462
  Total branches: 9461
  Method coverage: 97.1% (4527 of 4661)
  Full method coverage: 89.1% (4153 of 4661)
  Covered methods: 4527
  Fully covered methods: 4153
  Total methods: 4661

PatternKit.Core                                                                                                   97.7%
  PatternKit.Behavioral.Chain.ActionChain<T>                                                                       100%
  PatternKit.Behavioral.Chain.AsyncActionChain<T>                                                                  100%
  PatternKit.Behavioral.Chain.AsyncResultChain<T1, T2>                                                            97.7%
  PatternKit.Behavioral.Chain.ResultChain<T1, T2>                                                                  100%
  PatternKit.Behavioral.Command.Command<T>                                                                         100%
  PatternKit.Behavioral.Interpreter.ActionInterpreter                                                              100%
  PatternKit.Behavioral.Interpreter.ActionInterpreter<T>                                                          96.9%
  PatternKit.Behavioral.Interpreter.ActionInterpreterBuilder<T>                                                    100%
  PatternKit.Behavioral.Interpreter.AsyncActionInterpreter                                                         100%
  PatternKit.Behavioral.Interpreter.AsyncActionInterpreter<T>                                                      100%
  PatternKit.Behavioral.Interpreter.AsyncActionInterpreterBuilder<T>                                               100%
  PatternKit.Behavioral.Interpreter.AsyncInterpreter                                                               100%
  PatternKit.Behavioral.Interpreter.AsyncInterpreter<T1, T2>                                                      96.8%
  PatternKit.Behavioral.Interpreter.AsyncInterpreterBuilder<T1, T2>                                                100%
  PatternKit.Behavioral.Interpreter.Builder<T1, T2>                                                                 96%
  PatternKit.Behavioral.Interpreter.ExpressionExtensions                                                           100%
  PatternKit.Behavioral.Interpreter.Interpreter                                                                    100%
  PatternKit.Behavioral.Interpreter.Interpreter<T1, T2>                                                           96.6%
  PatternKit.Behavioral.Interpreter.NonTerminalExpression                                                          100%
  PatternKit.Behavioral.Interpreter.TerminalExpression                                                             100%
  PatternKit.Behavioral.Iterator.AsyncFlow<T>                                                                      100%
  PatternKit.Behavioral.Iterator.AsyncFlowExtensions                                                               100%
  PatternKit.Behavioral.Iterator.AsyncReplayBuffer<T>                                                             93.9%
  PatternKit.Behavioral.Iterator.Flow<T>                                                                          94.4%
  PatternKit.Behavioral.Iterator.FlowExtensions                                                                    100%
  PatternKit.Behavioral.Iterator.ReplayableSequence<T>                                                            98.2%
  PatternKit.Behavioral.Iterator.ReplayableSequenceExtensions                                                      100%
  PatternKit.Behavioral.Iterator.SharedAsyncFlow<T>                                                                100%
  PatternKit.Behavioral.Iterator.SharedFlow<T>                                                                     100%
  PatternKit.Behavioral.Iterator.WindowSequence                                                                    100%
  PatternKit.Behavioral.Mediator.Mediator                                                                         91.9%
  PatternKit.Behavioral.Mediator.MediatorHelpers                                                                   100%
  PatternKit.Behavioral.Mediator.TaskExtensions                                                                    100%
  PatternKit.Behavioral.Memento.Memento<T>                                                                         100%
  PatternKit.Behavioral.Observer.AsyncObserver<T>                                                                 98.7%
  PatternKit.Behavioral.Observer.Observer<T>                                                                      98.2%
  PatternKit.Behavioral.State.AsyncStateMachine<T1, T2>                                                             95%
  PatternKit.Behavioral.State.StateMachine<T1, T2>                                                                 100%
  PatternKit.Behavioral.Strategy.ActionStrategy<T>                                                                  97%
  PatternKit.Behavioral.Strategy.AsyncActionStrategy<T>                                                            100%
  PatternKit.Behavioral.Strategy.AsyncStrategy<T1, T2>                                                             100%
  PatternKit.Behavioral.Strategy.Strategy<T1, T2>                                                                  100%
  PatternKit.Behavioral.Strategy.TryStrategy<T1, T2>                                                              95.8%
  PatternKit.Behavioral.Template.ActionTemplate<T>                                                                 100%
  PatternKit.Behavioral.Template.AsyncActionTemplate<T>                                                            100%
  PatternKit.Behavioral.Template.AsyncTemplate<T1, T2>                                                            97.1%
  PatternKit.Behavioral.Template.AsyncTemplateMethod<T1, T2>                                                       100%
  PatternKit.Behavioral.Template.Template<T1, T2>                                                                  100%
  PatternKit.Behavioral.Template.TemplateMethod<T1, T2>                                                            100%
  PatternKit.Behavioral.TypeDispatcher.ActionTypeDispatcher<T>                                                    91.4%
  PatternKit.Behavioral.TypeDispatcher.AsyncActionTypeDispatcher<T>                                               94.5%
  PatternKit.Behavioral.TypeDispatcher.AsyncTypeDispatcher<T1, T2>                                                94.4%
  PatternKit.Behavioral.TypeDispatcher.TypeDispatcher<T1, T2>                                                      100%
  PatternKit.Behavioral.Visitor.ActionVisitor<T>                                                                  91.4%
  PatternKit.Behavioral.Visitor.ActionVisitorBase<T>                                                               100%
  PatternKit.Behavioral.Visitor.AsyncActionVisitor<T>                                                             94.5%
  PatternKit.Behavioral.Visitor.AsyncFluentActionVisitor<T>                                                        100%
  PatternKit.Behavioral.Visitor.AsyncFluentVisitor<T1, T2>                                                         100%
  PatternKit.Behavioral.Visitor.AsyncVisitor<T1, T2>                                                              91.6%
  PatternKit.Behavioral.Visitor.FluentActionVisitor<T>                                                             100%
  PatternKit.Behavioral.Visitor.FluentVisitor<T1, T2>                                                              100%
  PatternKit.Behavioral.Visitor.Visitor<T1, T2>                                                                   91.1%
  PatternKit.Behavioral.Visitor.VisitorBase<T1, T2>                                                                100%
  PatternKit.Common.Option<T>                                                                                      100%
  PatternKit.Common.Throw                                                                                          100%
  PatternKit.Common.TryHandlerExtensions                                                                           100%
  PatternKit.Creational.AbstractFactory.AbstractFactory<T>                                                        91.6%
  PatternKit.Creational.Builder.BranchBuilder<T1, T2>                                                              100%
  PatternKit.Creational.Builder.BuilderExtensions                                                                  100%
  PatternKit.Creational.Builder.ChainBuilder<T>                                                                    100%
  PatternKit.Creational.Builder.Composer<T1, T2>                                                                   100%
  PatternKit.Creational.Builder.MutableBuilder<T>                                                                  100%
  PatternKit.Creational.Factory.Factory<T1, T2>                                                                   92.3%
  PatternKit.Creational.Factory.Factory<T1, T2, T3>                                                               92.3%
  PatternKit.Creational.Prototype.Prototype<T>                                                                     100%
  PatternKit.Creational.Prototype.Prototype<T1, T2>                                                                 90%
  PatternKit.Creational.Singleton.Singleton<T>                                                                    96.5%
  PatternKit.Messaging.Mailboxes.Mailbox<T>                                                                       96.7%
  PatternKit.Messaging.Mailboxes.MailboxEvent                                                                      100%
  PatternKit.Messaging.Mailboxes.MailboxPostResult                                                                 100%
  PatternKit.Messaging.Message<T>                                                                                  100%
  PatternKit.Messaging.MessageContext                                                                              100%
  PatternKit.Messaging.MessageHeaders                                                                              100%
  PatternKit.Messaging.Reliability.IdempotencyClaim                                                                100%
  PatternKit.Messaging.Reliability.IdempotentReceiver<T1, T2>                                                      100%
  PatternKit.Messaging.Reliability.IdempotentReceiverResult<T>                                                     100%
  PatternKit.Messaging.Reliability.InboxProcessor<T1, T2>                                                          100%
  PatternKit.Messaging.Reliability.InMemoryIdempotencyStore                                                        100%
  PatternKit.Messaging.Reliability.InMemoryOutbox<T>                                                              97.5%
  PatternKit.Messaging.Reliability.OutboxMessage<T>                                                                100%
  PatternKit.Messaging.Routing.AggregationResult<T1, T2>                                                           100%
  PatternKit.Messaging.Routing.Aggregator<T1, T2, T3>                                                              100%
  PatternKit.Messaging.Routing.AsyncContentRouter<T1, T2>                                                          100%
  PatternKit.Messaging.Routing.AsyncRecipientList<T>                                                               100%
  PatternKit.Messaging.Routing.AsyncRoutingSlip<T>                                                                 100%
  PatternKit.Messaging.Routing.ContentRouter<T1, T2>                                                               100%
  PatternKit.Messaging.Routing.RecipientList<T>                                                                    100%
  PatternKit.Messaging.Routing.RecipientListResult                                                                 100%
  PatternKit.Messaging.Routing.RoutingSlip<T>                                                                      100%
  PatternKit.Messaging.Routing.RoutingSlipResult<T>                                                                100%
  PatternKit.Messaging.Routing.Splitter<T1, T2>                                                                    100%
  PatternKit.Messaging.Sagas.AsyncSaga<T>                                                                          100%
  PatternKit.Messaging.Sagas.Saga<T>                                                                               100%
  PatternKit.Messaging.Sagas.SagaResult<T>                                                                         100%
  PatternKit.Structural.Adapter.Adapter<T1, T2>                                                                    100%
  PatternKit.Structural.Adapter.AsyncAdapter<T1, T2>                                                               100%
  PatternKit.Structural.Bridge.ActionBridge<T1, T2>                                                               90.9%
  PatternKit.Structural.Bridge.AsyncActionBridge<T1, T2>                                                          96.5%
  PatternKit.Structural.Bridge.AsyncBridge<T1, T2, T3>                                                            90.6%
  PatternKit.Structural.Bridge.Bridge<T1, T2, T3>                                                                  100%
  PatternKit.Structural.Composite.ActionComposite<T>                                                               100%
  PatternKit.Structural.Composite.AsyncActionComposite<T>                                                          100%
  PatternKit.Structural.Composite.AsyncComposite<T1, T2>                                                          97.8%
  PatternKit.Structural.Composite.Composite<T1, T2>                                                               97.3%
  PatternKit.Structural.Decorator.ActionDecorator<T>                                                               100%
  PatternKit.Structural.Decorator.AsyncActionDecorator<T>                                                          100%
  PatternKit.Structural.Decorator.AsyncDecorator<T1, T2>                                                            98%
  PatternKit.Structural.Decorator.Decorator<T1, T2>                                                               97.6%
  PatternKit.Structural.Facade.Facade<T1, T2>                                                                     88.8%
  PatternKit.Structural.Facade.TypedFacade<T>                                                                       97%
  PatternKit.Structural.Facade.TypedFacadeDispatchProxy<T>                                                        81.8%
  PatternKit.Structural.Facade.TypedFacadeProxyFactory<T>                                                          100%
  PatternKit.Structural.Flyweight.Flyweight<T1, T2>                                                                100%
  PatternKit.Structural.Proxy.ActionProxy<T>                                                                       100%
  PatternKit.Structural.Proxy.AsyncActionProxy<T>                                                                  100%
  PatternKit.Structural.Proxy.AsyncProxy<T1, T2>                                                                  98.6%
  PatternKit.Structural.Proxy.Proxy<T1, T2>                                                                       98.8%

PatternKit.Examples                                                                                               93.4%
  PatternKit.Examples.AbstractFactoryDemo.AbstractFactoryDemo                                                     98.2%
  PatternKit.Examples.AdapterGeneratorDemo.ClockAdapterMappings                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.ConsoleLoggerAdapter                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.LegacyConsoleLogger                                                     100%
  PatternKit.Examples.AdapterGeneratorDemo.LegacySystemClock                                                       100%
  PatternKit.Examples.AdapterGeneratorDemo.LoggerAdapterMappings                                                   100%
  PatternKit.Examples.AdapterGeneratorDemo.PaymentResult                                                           100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalAdapterMappings                                                   100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalAmount                                                            100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalPaymentAdapter                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalPaymentService                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalRefund                                                            100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalTransaction                                                       100%
  PatternKit.Examples.AdapterGeneratorDemo.RefundResult                                                            100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeAdapterMappings                                                   100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeChargeRequest                                                     100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeChargeResponse                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.StripePaymentAdapter                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.StripePaymentClient                                                     100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeRefundResponse                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.SystemClockAdapter                                                      100%
  PatternKit.Examples.ApiGateway.Demo                                                                             97.9%
  PatternKit.Examples.ApiGateway.MiniRouter                                                                       96.6%
  PatternKit.Examples.ApiGateway.Request                                                                            75%
  PatternKit.Examples.ApiGateway.Response                                                                          100%
  PatternKit.Examples.ApiGateway.Responses                                                                         100%
  PatternKit.Examples.AsyncStateDemo.ConnectionStateDemo                                                          93.5%
  PatternKit.Examples.BridgeDemo.BridgeDemo                                                                       96.7%
  PatternKit.Examples.Chain.AuthLoggingDemo                                                                       95.2%
  PatternKit.Examples.Chain.CardProcessors                                                                         100%
  PatternKit.Examples.Chain.CardTenderStrategy                                                                    77.7%
  PatternKit.Examples.Chain.CashTenderStrategy                                                                     100%
  PatternKit.Examples.Chain.ChainStage                                                                             100%
  PatternKit.Examples.Chain.CharityRoundUpRule                                                                      50%
  PatternKit.Examples.Chain.ConfigDriven.Bundle1OffEach                                                            100%
  PatternKit.Examples.Chain.ConfigDriven.CardTender                                                               72.2%
  PatternKit.Examples.Chain.ConfigDriven.Cash2Pct                                                                 66.6%
  PatternKit.Examples.Chain.ConfigDriven.CashTender                                                               90.9%
  PatternKit.Examples.Chain.ConfigDriven.CharityRoundUp                                                            100%
  PatternKit.Examples.Chain.ConfigDriven.ConfigDrivenPipelineBuilderExtensions                                    94.2%
  PatternKit.Examples.Chain.ConfigDriven.ConfigDrivenPipelineDemo                                                  100%
  PatternKit.Examples.Chain.ConfigDriven.Loyalty5Pct                                                                60%
  PatternKit.Examples.Chain.ConfigDriven.NickelCashOnly                                                           77.7%
  PatternKit.Examples.Chain.ConfigDriven.PipelineOptions                                                           100%
  PatternKit.Examples.Chain.Customer                                                                               100%
  PatternKit.Examples.Chain.DeviceBus                                                                              100%
  PatternKit.Examples.Chain.GenericProcessor                                                                       100%
  PatternKit.Examples.Chain.HttpRequest                                                                            100%
  PatternKit.Examples.Chain.IRoundingRule                                                                          100%
  PatternKit.Examples.Chain.LineItem                                                                               100%
  PatternKit.Examples.Chain.MediatedTransactionPipelineDemo                                                        100%
  PatternKit.Examples.Chain.NickelCashOnlyRule                                                                     100%
  PatternKit.Examples.Chain.NoopCharityTracker                                                                     100%
  PatternKit.Examples.Chain.RoundingPipeline                                                                       100%
  PatternKit.Examples.Chain.Tender                                                                                 100%
  PatternKit.Examples.Chain.TenderRouterFactory                                                                   91.3%
  PatternKit.Examples.Chain.TransactionContext                                                                     100%
  PatternKit.Examples.Chain.TransactionPipeline                                                                    100%
  PatternKit.Examples.Chain.TransactionPipelineBuilder                                                            92.3%
  PatternKit.Examples.Chain.TxResult                                                                               100%
  PatternKit.Examples.CompositeDemo.CompositeDemo                                                                  100%
  PatternKit.Examples.Decorators.CachingFileStorage                                                                100%
  PatternKit.Examples.Decorators.FileStorageDecoratorBase                                                          100%
  PatternKit.Examples.Decorators.FileStorageDecorators                                                             100%
  PatternKit.Examples.Decorators.InMemoryFileStorage                                                               100%
  PatternKit.Examples.Decorators.LoggingFileStorage                                                                100%
  PatternKit.Examples.Decorators.RetryFileStorage                                                                 94.1%
  PatternKit.Examples.Decorators.StorageDecoratorDemo                                                             96.5%
  PatternKit.Examples.DependencyInjection.ApiExceptionMappingVisitorExample                                        100%
  PatternKit.Examples.DependencyInjection.AsyncConnectionStateMachineExample                                       100%
  PatternKit.Examples.DependencyInjection.AuthLoggingChainExample                                                  100%
  PatternKit.Examples.DependencyInjection.CoercerService<T>                                                        100%
  PatternKit.Examples.DependencyInjection.CoercionExample                                                          100%
  PatternKit.Examples.DependencyInjection.ComposedNotificationStrategyExample                                      100%
  PatternKit.Examples.DependencyInjection.ConfigDrivenTransactionPipelineExample                                   100%
  PatternKit.Examples.DependencyInjection.CqrsDispatcherExample                                                    100%
  PatternKit.Examples.DependencyInjection.EnterpriseFeatureSlicesExample                                           100%
  PatternKit.Examples.DependencyInjection.EnterpriseMessagingWorkflowSuiteExample                                  100%
  PatternKit.Examples.DependencyInjection.EventProcessingVisitorExample                                            100%
  PatternKit.Examples.DependencyInjection.FlyweightGlyphCacheExample                                               100%
  PatternKit.Examples.DependencyInjection.GeneratedMailboxExample                                                  100%
  PatternKit.Examples.DependencyInjection.GeneratedMessageEnvelopeExample                                          100%
  PatternKit.Examples.DependencyInjection.GeneratedRecipientListExample                                            100%
  PatternKit.Examples.DependencyInjection.GeneratedReliabilityPipelineExample                                      100%
  PatternKit.Examples.DependencyInjection.GeneratedSplitterAggregatorExample                                       100%
  PatternKit.Examples.DependencyInjection.MediatedTransactionPipelineExample                                       100%
  PatternKit.Examples.DependencyInjection.MessageRouterVisitorExample                                              100%
  PatternKit.Examples.DependencyInjection.MessagingBackplaneFacadeExample                                          100%
  PatternKit.Examples.DependencyInjection.MinimalWebRequestRouterExample                                           100%
  PatternKit.Examples.DependencyInjection.ObserverEventHubExample                                                  100%
  PatternKit.Examples.DependencyInjection.PatternKitExampleServiceCollectionExtensions                            95.4%
  PatternKit.Examples.DependencyInjection.PatternKitExampleServiceDescriptor                                       100%
  PatternKit.Examples.DependencyInjection.PatternsShowcaseExample                                                  100%
  PatternKit.Examples.DependencyInjection.PaymentProcessorDecoratorExample                                         100%
  PatternKit.Examples.DependencyInjection.PosAppStateSingletonExample                                              100%
  PatternKit.Examples.DependencyInjection.PosTenderVisitorExample                                                  100%
  PatternKit.Examples.DependencyInjection.PricingCalculatorExample                                                 100%
  PatternKit.Examples.DependencyInjection.ProductionReadyExampleIntegrations                                       100%
  PatternKit.Examples.DependencyInjection.PrototypeGameCharacterFactoryExample                                     100%
  PatternKit.Examples.DependencyInjection.ProxyPatternDemonstrationsExample                                        100%
  PatternKit.Examples.DependencyInjection.ReactiveTransactionExample                                               100%
  PatternKit.Examples.DependencyInjection.ReactiveViewModelExample                                                 100%
  PatternKit.Examples.DependencyInjection.ResilientCheckoutMailboxesExample                                        100%
  PatternKit.Examples.DependencyInjection.SourceGeneratorApplicationSuiteExample                                   100%
  PatternKit.Examples.DependencyInjection.TemplateMethodAsyncExample                                               100%
  PatternKit.Examples.DependencyInjection.TemplateMethodSubclassingExample                                         100%
  PatternKit.Examples.DependencyInjection.TextEditorMementoExample                                                 100%
  PatternKit.Examples.EnterpriseDemo.EnterpriseOrderDemo                                                          97.1%
  PatternKit.Examples.EnterpriseFeatureSlices.EnterpriseFeatureSlicesDemo                                          100%
  PatternKit.Examples.FacadeDemo.FacadeDemo                                                                        100%
  PatternKit.Examples.FlyweightDemo.FlyweightDemo                                                                 96.9%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.BackgroundJobsModule                     100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApp                             100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplication                      45%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplicationBuilder             63.1%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplicationBuilderExtensions   95.8%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplicationDemo                 100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateAppState                        100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.InMemoryJobScheduler                     100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.MessagingModule                          100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.NotificationOptions                      100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.ObservabilityModule                      100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.QueueNotificationPublisher               100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.SecretsProvider                          100%
  PatternKit.Examples.Generators.Facade.BillingFacade                                                              100%
  PatternKit.Examples.Generators.Facade.BillingFacadeDemo                                                           96%
  PatternKit.Examples.Generators.Facade.BillingHost                                                               96.1%
  PatternKit.Examples.Generators.Facade.BillingResult                                                              100%
  PatternKit.Examples.Generators.Facade.DeliveryEstimator                                                           70%
  PatternKit.Examples.Generators.Facade.Invoice                                                                    100%
  PatternKit.Examples.Generators.Facade.InvoiceService                                                             100%
  PatternKit.Examples.Generators.Facade.NotificationService                                                         50%
  PatternKit.Examples.Generators.Facade.PaymentProcessor                                                            84%
  PatternKit.Examples.Generators.Facade.PaymentRecord                                                              100%
  PatternKit.Examples.Generators.Facade.PaymentResult                                                              100%
  PatternKit.Examples.Generators.Facade.RateCalculator                                                              75%
  PatternKit.Examples.Generators.Facade.RefundResult                                                                40%
  PatternKit.Examples.Generators.Facade.ShippingFacade                                                             100%
  PatternKit.Examples.Generators.Facade.ShippingFacadeDemo                                                         100%
  PatternKit.Examples.Generators.Facade.ShippingHost                                                              90.9%
  PatternKit.Examples.Generators.Facade.ShippingValidator                                                          100%
  PatternKit.Examples.Generators.Facade.TaxService                                                                 100%
  PatternKit.Examples.Generators.Factories.ApplicationOrchestrator                                                 100%
  PatternKit.Examples.Generators.Factories.BackgroundWorker                                                        100%
  PatternKit.Examples.Generators.Factories.ConsoleMetricsSink                                                      100%
  PatternKit.Examples.Generators.Factories.MemoryCacheProvider                                                     100%
  PatternKit.Examples.Generators.Factories.OrchestratorStepFactory                                                48.7%
  PatternKit.Examples.Generators.Factories.SeedDataStep                                                            100%
  PatternKit.Examples.Generators.Factories.ServiceModuleBootstrap                                                  100%
  PatternKit.Examples.Generators.Factories.ServiceModules                                                         54.8%
  PatternKit.Examples.Generators.Factories.StartWorkersStep                                                        100%
  PatternKit.Examples.Generators.Factories.WarmCacheStep                                                           100%
  PatternKit.Examples.Generators.Memento.EditorStateDemo                                                          95.5%
  PatternKit.Examples.Generators.Memento.EditorStateHistory                                                         90%
  PatternKit.Examples.Generators.Memento.EditorStateMemento                                                        100%
  PatternKit.Examples.Generators.Memento.GameStateDemo                                                            86.6%
  PatternKit.Examples.Generators.Memento.GameStateHistory                                                         43.3%
  PatternKit.Examples.Generators.Memento.GameStateMemento                                                         70.3%
  PatternKit.Examples.Generators.State.DocumentWorkflow                                                           56.6%
  PatternKit.Examples.Generators.State.OrderFlow                                                                  58.5%
  PatternKit.Examples.Generators.State.OrderFlowDemo                                                              95.6%
  PatternKit.Examples.Generators.Strategies.IntParser                                                               60%
  PatternKit.Examples.Generators.Strategies.OrderRouter                                                           95.2%
  PatternKit.Examples.Generators.Strategies.ScoreLabeler                                                           100%
  PatternKit.Examples.Generators.Visitors.Document                                                                 100%
  PatternKit.Examples.Generators.Visitors.DocumentActionVisitorBuilder                                              60%
  PatternKit.Examples.Generators.Visitors.DocumentAsyncActionVisitorBuilder                                       42.8%
  PatternKit.Examples.Generators.Visitors.DocumentAsyncVisitorBuilder<T>                                          42.8%
  PatternKit.Examples.Generators.Visitors.DocumentProcessingDemo                                                  84.9%
  PatternKit.Examples.Generators.Visitors.DocumentVisitorBuilder<T>                                                 60%
  PatternKit.Examples.Generators.Visitors.MarkdownDocument                                                        71.4%
  PatternKit.Examples.Generators.Visitors.PdfDocument                                                              100%
  PatternKit.Examples.Generators.Visitors.SpreadsheetDocument                                                     71.4%
  PatternKit.Examples.Generators.Visitors.WordDocument                                                            71.4%
  PatternKit.Examples.InterpreterDemo.InterpreterDemo                                                             93.1%
  PatternKit.Examples.IteratorDemo.IteratorDemo                                                                   98.8%
  PatternKit.Examples.MediatorDemo.AppMediator                                                                     100%
  PatternKit.Examples.MediatorDemo.AuditLogHandler                                                                 100%
  PatternKit.Examples.MediatorDemo.BoxHelper                                                                        25%
  PatternKit.Examples.MediatorDemo.CountUpCmd                                                                      100%
  PatternKit.Examples.MediatorDemo.CountUpHandler                                                                  100%
  PatternKit.Examples.MediatorDemo.EchoCmd                                                                         100%
  PatternKit.Examples.MediatorDemo.EchoHandler                                                                     100%
  PatternKit.Examples.MediatorDemo.LoggingBehavior<T1, T2>                                                         100%
  PatternKit.Examples.MediatorDemo.MediatorAssemblyScanner                                                         100%
  PatternKit.Examples.MediatorDemo.MediatorDemoSink                                                                100%
  PatternKit.Examples.MediatorDemo.MediatorRegistry                                                                100%
  PatternKit.Examples.MediatorDemo.PingCmd                                                                         100%
  PatternKit.Examples.MediatorDemo.PingHandler                                                                     100%
  PatternKit.Examples.MediatorDemo.ServiceCollectionExtensions                                                    83.3%
  PatternKit.Examples.MediatorDemo.SumCmd                                                                          100%
  PatternKit.Examples.MediatorDemo.SumCmdBehavior                                                                  100%
  PatternKit.Examples.MediatorDemo.SumHandler                                                                      100%
  PatternKit.Examples.MediatorDemo.UserCreated                                                                     100%
  PatternKit.Examples.MediatorDemo.WelcomeEmailHandler                                                             100%
  PatternKit.Examples.MementoDemo.MementoDemo                                                                     96.5%
  PatternKit.Examples.Messaging.AcceptOrder                                                                        100%
  PatternKit.Examples.Messaging.BackplaneBus                                                                      93.1%
  PatternKit.Examples.Messaging.BackplaneClient                                                                    100%
  PatternKit.Examples.Messaging.BackplaneCommandRegistration<T1, T2>                                               100%
  PatternKit.Examples.Messaging.BackplaneDemoServices                                                              100%
  PatternKit.Examples.Messaging.BackplaneDemoSummary                                                               100%
  PatternKit.Examples.Messaging.BackplaneEndpointBuilder                                                           100%
  PatternKit.Examples.Messaging.BackplaneEndpointRegistration                                                      100%
  PatternKit.Examples.Messaging.BackplaneEnvelope                                                                  100%
  PatternKit.Examples.Messaging.BackplaneFacadeDemo                                                                100%
  PatternKit.Examples.Messaging.BackplaneHost                                                                     86.7%
  PatternKit.Examples.Messaging.BackplaneHostBuilder                                                              90.3%
  PatternKit.Examples.Messaging.BackplaneOrderAccepted                                                             100%
  PatternKit.Examples.Messaging.BackplaneOrderSubmitted                                                            100%
  PatternKit.Examples.Messaging.BackplaneOutbox                                                                   95.6%
  PatternKit.Examples.Messaging.BackplaneOutboxRecord                                                             85.7%
  PatternKit.Examples.Messaging.BackplaneRoute                                                                     100%
  PatternKit.Examples.Messaging.BackplaneRouteRegistration                                                         100%
  PatternKit.Examples.Messaging.BackplaneSubscription                                                              100%
  PatternKit.Examples.Messaging.BackplaneSubscriptionRegistration<T>                                              88.8%
  PatternKit.Examples.Messaging.CheckoutAttempt                                                                    100%
  PatternKit.Examples.Messaging.CheckoutAttemptResult                                                              100%
  PatternKit.Examples.Messaging.CheckoutLine                                                                       100%
  PatternKit.Examples.Messaging.CheckoutRequest                                                                   88.8%
  PatternKit.Examples.Messaging.CheckoutResult                                                                      90%
  PatternKit.Examples.Messaging.CheckoutRoute                                                                      100%
  PatternKit.Examples.Messaging.CheckoutServices                                                                   100%
  PatternKit.Examples.Messaging.CheckoutStepException                                                              100%
  PatternKit.Examples.Messaging.ContentRouterGeneratorExample                                                      100%
  PatternKit.Examples.Messaging.CqrsLine                                                                           100%
  PatternKit.Examples.Messaging.CqrsOrder                                                                          100%
  PatternKit.Examples.Messaging.CqrsOrderCreated                                                                   100%
  PatternKit.Examples.Messaging.CqrsPatternExample                                                                 100%
  PatternKit.Examples.Messaging.CqrsSummary                                                                        100%
  PatternKit.Examples.Messaging.CreateCqrsOrder                                                                    100%
  PatternKit.Examples.Messaging.CreateUser                                                                         100%
  PatternKit.Examples.Messaging.CustomerNotification                                                               100%
  PatternKit.Examples.Messaging.DelegateOutboxDispatcher<T>                                                        100%
  PatternKit.Examples.Messaging.DispatcherUsageExamples                                                            100%
  PatternKit.Examples.Messaging.EmailSent                                                                          100%
  PatternKit.Examples.Messaging.FulfillmentOrder                                                                   100%
  PatternKit.Examples.Messaging.GeneratedBackplaneTopology                                                        93.9%
  PatternKit.Examples.Messaging.GeneratedMailboxWorkQueue                                                          100%
  PatternKit.Examples.Messaging.GeneratedOrder                                                                     100%
  PatternKit.Examples.Messaging.GeneratedOrderAcceptedEnvelope                                                    88.8%
  PatternKit.Examples.Messaging.GeneratedOrderLineAggregator                                                       100%
  PatternKit.Examples.Messaging.GeneratedOrderLineSplitter                                                         100%
  PatternKit.Examples.Messaging.GeneratedOrderRouter                                                               100%
  PatternKit.Examples.Messaging.GeneratedReliabilityOrderPipeline                                                  100%
  PatternKit.Examples.Messaging.GeneratedShipmentEvent                                                             100%
  PatternKit.Examples.Messaging.GeneratedShipmentRecipients                                                        100%
  PatternKit.Examples.Messaging.GetCqrsOrder                                                                       100%
  PatternKit.Examples.Messaging.InMemoryBackplaneTransport                                                        92.9%
  PatternKit.Examples.Messaging.InventoryCommand                                                                   100%
  PatternKit.Examples.Messaging.InventoryGateway                                                                  93.7%
  PatternKit.Examples.Messaging.MailboxExample                                                                    96.1%
  PatternKit.Examples.Messaging.MailboxExampleRunner                                                               100%
  PatternKit.Examples.Messaging.MailboxWorkItem                                                                    100%
  PatternKit.Examples.Messaging.MessageEnvelopeExample                                                             100%
  PatternKit.Examples.Messaging.MessageEnvelopeExampleRunner                                                       100%
  PatternKit.Examples.Messaging.MessageEnvelopeExampleServiceCollectionExtensions                                  100%
  PatternKit.Examples.Messaging.MessageRoutingExample                                                             97.8%
  PatternKit.Examples.Messaging.MessageRoutingExampleRunner                                                        100%
  PatternKit.Examples.Messaging.NotificationCommand                                                                100%
  PatternKit.Examples.Messaging.OrderAccepted                                                                      100%
  PatternKit.Examples.Messaging.OrderFulfillmentSlip                                                               100%
  PatternKit.Examples.Messaging.OrderNotification                                                                  100%
  PatternKit.Examples.Messaging.OrderPaid                                                                          100%
  PatternKit.Examples.Messaging.OrderPlaced                                                                          0%
  PatternKit.Examples.Messaging.OrderSaga                                                                          100%
  PatternKit.Examples.Messaging.OrderSagaState                                                                     100%
  PatternKit.Examples.Messaging.OrderSubmitted                                                                     100%
  PatternKit.Examples.Messaging.PagedItem                                                                            0%
  PatternKit.Examples.Messaging.PagedRequest                                                                         0%
  PatternKit.Examples.Messaging.PaymentCaptured                                                                    100%
  PatternKit.Examples.Messaging.PaymentCommand                                                                     100%
  PatternKit.Examples.Messaging.PaymentDeclined                                                                    100%
  PatternKit.Examples.Messaging.PaymentGateway                                                                    86.6%
  PatternKit.Examples.Messaging.RecipientListGeneratorExample                                                      100%
  PatternKit.Examples.Messaging.RecipientListGeneratorExampleRunner                                               66.6%
  PatternKit.Examples.Messaging.RecipientListSummary                                                               100%
  PatternKit.Examples.Messaging.ReliabilityExample                                                                98.2%
  PatternKit.Examples.Messaging.ReliabilityExampleRunner                                                           100%
  PatternKit.Examples.Messaging.ReliabilityOrderAccepted                                                           100%
  PatternKit.Examples.Messaging.ResilientCheckoutDemo                                                             91.5%
  PatternKit.Examples.Messaging.RoutedLine                                                                         100%
  PatternKit.Examples.Messaging.RoutedOrder                                                                        100%
  PatternKit.Examples.Messaging.RoutingSlipExample                                                                 100%
  PatternKit.Examples.Messaging.RoutingSlipSummary                                                                 100%
  PatternKit.Examples.Messaging.RoutingSummary                                                                     100%
  PatternKit.Examples.Messaging.SagaExample                                                                        100%
  PatternKit.Examples.Messaging.SagaSummary                                                                        100%
  PatternKit.Examples.Messaging.SearchQuery                                                                        100%
  PatternKit.Examples.Messaging.SearchResult                                                                       100%
  PatternKit.Examples.Messaging.SendEmail                                                                          100%
  PatternKit.Examples.Messaging.ServiceCollaborationMailboxDemo                                                    100%
  PatternKit.Examples.Messaging.ServiceCollaborationSummary                                                        100%
  PatternKit.Examples.Messaging.ShipmentScheduled                                                                  100%
  PatternKit.Examples.Messaging.ShippingCommand                                                                    100%
  PatternKit.Examples.Messaging.ShippingGateway                                                                     75%
  PatternKit.Examples.Messaging.SourceGenerated.ComprehensiveMediatorDemo                                          100%
  PatternKit.Examples.Messaging.SourceGenerated.CreateCustomerCommand                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.CreateCustomerHandler                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.Customer                                                           100%
  PatternKit.Examples.Messaging.SourceGenerated.CustomerCreatedEvent                                               100%
  PatternKit.Examples.Messaging.SourceGenerated.GetCustomerHandler                                                 100%
  PatternKit.Examples.Messaging.SourceGenerated.GetCustomerQuery                                                   100%
  PatternKit.Examples.Messaging.SourceGenerated.GetOrdersByCustomerHandler                                         100%
  PatternKit.Examples.Messaging.SourceGenerated.GetOrdersByCustomerQuery                                           100%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryCustomerRepository                                         100%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryLogger                                                     100%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryOrderRepository                                            100%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryProductRepository                                          100%
  PatternKit.Examples.Messaging.SourceGenerated.LoggingBehavior<T1, T2>                                            100%
  PatternKit.Examples.Messaging.SourceGenerated.MediatorServiceCollectionExtensions                                100%
  PatternKit.Examples.Messaging.SourceGenerated.NotifyInventoryHandler                                             100%
  PatternKit.Examples.Messaging.SourceGenerated.Order                                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.OrderItem                                                          100%
  PatternKit.Examples.Messaging.SourceGenerated.OrderPlacedEvent                                                   100%
  PatternKit.Examples.Messaging.SourceGenerated.PaymentProcessedEvent                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.PerformanceBehavior<T1, T2>                                        100%
  PatternKit.Examples.Messaging.SourceGenerated.PlaceOrderCommand                                                  100%
  PatternKit.Examples.Messaging.SourceGenerated.PlaceOrderHandler                                                  100%
  PatternKit.Examples.Messaging.SourceGenerated.ProcessPaymentCommand                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.ProcessPaymentHandler                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.ProductionDispatcher                                              64.9%
  PatternKit.Examples.Messaging.SourceGenerated.ProductSearchResult                                                100%
  PatternKit.Examples.Messaging.SourceGenerated.RecordPaymentAuditHandler                                          100%
  PatternKit.Examples.Messaging.SourceGenerated.SearchProductsHandler                                              100%
  PatternKit.Examples.Messaging.SourceGenerated.SearchProductsQuery                                                100%
  PatternKit.Examples.Messaging.SourceGenerated.SendOrderConfirmationHandler                                       100%
  PatternKit.Examples.Messaging.SourceGenerated.SendWelcomeEmailHandler                                            100%
  PatternKit.Examples.Messaging.SourceGenerated.TransactionBehavior<T1, T2>                                        100%
  PatternKit.Examples.Messaging.SourceGenerated.UpdateCustomerStatsHandler                                         100%
  PatternKit.Examples.Messaging.SourceGenerated.ValidationBehavior<T1, T2>                                         100%
  PatternKit.Examples.Messaging.SubmitOrder                                                                        100%
  PatternKit.Examples.Messaging.Summary                                                                            100%
  PatternKit.Examples.Messaging.UserCreated                                                                        100%
  PatternKit.Examples.Messaging.UserRegistered                                                                     100%
  PatternKit.Examples.ObserverDemo.EventHub<T>                                                                     100%
  PatternKit.Examples.ObserverDemo.LineItem                                                                        100%
  PatternKit.Examples.ObserverDemo.ObservableList<T>                                                              94.1%
  PatternKit.Examples.ObserverDemo.ObservableVar<T>                                                                100%
  PatternKit.Examples.ObserverDemo.ProfileViewModel                                                                100%
  PatternKit.Examples.ObserverDemo.PropertyChangedHub                                                              100%
  PatternKit.Examples.ObserverDemo.ReactiveTransaction                                                            95.4%
  PatternKit.Examples.ObserverDemo.UserEvent                                                                       100%
  PatternKit.Examples.ObserverGeneratorDemo.AsyncNotificationDemo                                                  100%
  PatternKit.Examples.ObserverGeneratorDemo.CancellationDemo                                                      85.1%
  PatternKit.Examples.ObserverGeneratorDemo.ExceptionHandlingDemo                                                 87.8%
  PatternKit.Examples.ObserverGeneratorDemo.MixedHandlersDemo                                                      100%
  PatternKit.Examples.ObserverGeneratorDemo.MultipleSubscribersDemo                                                100%
  PatternKit.Examples.ObserverGeneratorDemo.Notification                                                           100%
  PatternKit.Examples.ObserverGeneratorDemo.NotificationPublished                                                 91.7%
  PatternKit.Examples.ObserverGeneratorDemo.NotificationResult                                                     100%
  PatternKit.Examples.ObserverGeneratorDemo.NotificationSent                                                        74%
  PatternKit.Examples.ObserverGeneratorDemo.NotificationSystem                                                    96.2%
  PatternKit.Examples.ObserverGeneratorDemo.SubscriptionLifecycleDemo                                              100%
  PatternKit.Examples.ObserverGeneratorDemo.TemperatureAlert                                                       100%
  PatternKit.Examples.ObserverGeneratorDemo.TemperatureAlertRaised                                                79.3%
  PatternKit.Examples.ObserverGeneratorDemo.TemperatureChanged                                                      78%
  PatternKit.Examples.ObserverGeneratorDemo.TemperatureMonitorDemo                                                 100%
  PatternKit.Examples.ObserverGeneratorDemo.TemperatureMonitoringSystem                                            100%
  PatternKit.Examples.ObserverGeneratorDemo.TemperatureReading                                                     100%
  PatternKit.Examples.PatternShowcase.PatternShowcase                                                             91.2%
  PatternKit.Examples.PointOfSale.CustomerInfo                                                                     100%
  PatternKit.Examples.PointOfSale.Demo                                                                            99.6%
  PatternKit.Examples.PointOfSale.OrderLineItem                                                                    100%
  PatternKit.Examples.PointOfSale.PaymentProcessorDemo                                                            95.7%
  PatternKit.Examples.PointOfSale.PaymentReceipt                                                                   100%
  PatternKit.Examples.PointOfSale.PromotionConfig                                                                  100%
  PatternKit.Examples.PointOfSale.PurchaseOrder                                                                    100%
  PatternKit.Examples.PointOfSale.ReceiptLineItem                                                                  100%
  PatternKit.Examples.PointOfSale.StoreLocation                                                                    100%
  PatternKit.Examples.Pricing.ApiPricingSource                                                                     100%
  PatternKit.Examples.Pricing.CharityRoundUpRule                                                                   100%
  PatternKit.Examples.Pricing.Coupon                                                                               100%
  PatternKit.Examples.Pricing.DbPricingSource                                                                      100%
  PatternKit.Examples.Pricing.DefaultSourceRouting                                                                83.3%
  PatternKit.Examples.Pricing.FilePricingSource                                                                    100%
  PatternKit.Examples.Pricing.LineItem                                                                             100%
  PatternKit.Examples.Pricing.Location                                                                             100%
  PatternKit.Examples.Pricing.LoyaltyMembership                                                                    100%
  PatternKit.Examples.Pricing.NickelCashOnlyRule                                                                   100%
  PatternKit.Examples.Pricing.PercentLoyaltyRule                                                                   100%
  PatternKit.Examples.Pricing.PricingContext                                                                       100%
  PatternKit.Examples.Pricing.PricingDemo                                                                         89.5%
  PatternKit.Examples.Pricing.PricingPipeline                                                                      100%
  PatternKit.Examples.Pricing.PricingPipelineBuilder                                                               100%
  PatternKit.Examples.Pricing.PricingResult                                                                        100%
  PatternKit.Examples.Pricing.RegionCategoryTaxPolicy                                                              100%
  PatternKit.Examples.Pricing.Sku                                                                                 85.7%
  PatternKit.Examples.Pricing.SourceRouter                                                                        92.3%
  PatternKit.Examples.ProductionReadiness.PatternCoverageDescriptor                                                100%
  PatternKit.Examples.ProductionReadiness.PatternImplementationPath                                               93.7%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleCatalog                                                98.7%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleCatalogEndpointRouteBuilderExtensions                    50%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleCatalogHostedValidator                                 92.8%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleCatalogOptions                                          100%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleCatalogServiceCollectionExtensions                       80%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleDescriptor                                              100%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleValidationIssue                                         100%
  PatternKit.Examples.ProductionReadiness.PatternKitExampleValidationReport                                        100%
  PatternKit.Examples.ProductionReadiness.PatternKitPatternCatalog                                                 100%
  PatternKit.Examples.ProductionReadiness.PatternKitPatternCatalogServiceCollectionExtensions                      100%
  PatternKit.Examples.PrototypeDemo.PrototypeDemo                                                                  100%
  PatternKit.Examples.ProxyDemo.ProxyDemo                                                                         94.5%
  PatternKit.Examples.ProxyGeneratorDemo.GetTransactionHistoryMethodContext                                        100%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.AuthenticationInterceptor                                     90%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.CachingInterceptor                                          96.4%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.LoggingInterceptor                                          96.2%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.RetryInterceptor                                             100%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.TimingInterceptor                                            100%
  PatternKit.Examples.ProxyGeneratorDemo.PaymentRequest                                                            100%
  PatternKit.Examples.ProxyGeneratorDemo.PaymentResult                                                             100%
  PatternKit.Examples.ProxyGeneratorDemo.PaymentServiceProxy                                                      86.2%
  PatternKit.Examples.ProxyGeneratorDemo.ProcessPaymentAsyncMethodContext                                         88.8%
  PatternKit.Examples.ProxyGeneratorDemo.ProcessPaymentMethodContext                                               100%
  PatternKit.Examples.ProxyGeneratorDemo.ProxyGeneratorDemo                                                       98.9%
  PatternKit.Examples.ProxyGeneratorDemo.RealPaymentService                                                       96.3%
  PatternKit.Examples.ProxyGeneratorDemo.Transaction                                                               100%
  PatternKit.Examples.Singleton.DeviceRegistry                                                                     100%
  PatternKit.Examples.Singleton.PosAppState                                                                        100%
  PatternKit.Examples.Singleton.PosAppStateDemo                                                                    100%
  PatternKit.Examples.Singleton.PricingCache                                                                       100%
  PatternKit.Examples.Singleton.StoreConfig                                                                        100%
  PatternKit.Examples.SingletonGeneratorDemo.AppClock                                                              100%
  PatternKit.Examples.SingletonGeneratorDemo.ConfigManager                                                         100%
  PatternKit.Examples.SingletonGeneratorDemo.ServiceRegistry                                                      95.4%
  PatternKit.Examples.StateDemo.OrderStateDemo                                                                     100%
  PatternKit.Examples.Strategies.Coercion.Coercer<T>                                                              95.2%
  PatternKit.Examples.Strategies.Coercion.CoercerExtensions                                                        100%
  PatternKit.Examples.Strategies.Composed.ChannelPolicy                                                            100%
  PatternKit.Examples.Strategies.Composed.ChannelPolicyFactory                                                     100%
  PatternKit.Examples.Strategies.Composed.ComposedStrategies                                                      94.2%
  PatternKit.Examples.Strategies.Composed.SendContext                                                              100%
  PatternKit.Examples.Strategies.Composed.SendResult                                                               100%
  PatternKit.Examples.TemplateDemo.AsyncDataPipeline                                                               100%
  PatternKit.Examples.TemplateDemo.DataProcessor                                                                   100%
  PatternKit.Examples.TemplateDemo.TemplateAsyncFluentDemo                                                         100%
  PatternKit.Examples.TemplateDemo.TemplateFluentDemo                                                               90%
  PatternKit.Examples.TemplateDemo.TemplateMethodDemo                                                              100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.DataRecord                                                       100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.ImportContext                                                    100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.ImportWorkflow                                                   100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.ImportWorkflowDemo                                              88.4%
  PatternKit.Examples.TemplateMethodGeneratorDemo.OrderContext                                                     100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.OrderProcessingDemo                                             85.7%
  PatternKit.Examples.TemplateMethodGeneratorDemo.OrderProcessingWorkflow                                         95.5%
  PatternKit.Examples.VisitorDemo.Card                                                                             100%
  PatternKit.Examples.VisitorDemo.Cash                                                                             100%
  PatternKit.Examples.VisitorDemo.CountersHandler                                                                  100%
  PatternKit.Examples.VisitorDemo.Demo                                                                             100%
  PatternKit.Examples.VisitorDemo.GiftCard                                                                         100%
  PatternKit.Examples.VisitorDemo.ReceiptRendering                                                                 100%
  PatternKit.Examples.VisitorDemo.Routing                                                                          100%
  PatternKit.Examples.VisitorDemo.StoreCredit                                                                      100%
  PatternKit.Examples.VisitorDemo.Tender                                                                           100%
  PatternKit.Examples.VisitorDemo.Unknown                                                                          100%

PatternKit.Generators                                                                                             95.4%
  PatternKit.Generators.Adapter.AdapterGenerator                                                                  95.4%
  PatternKit.Generators.Bridge.BridgeGenerator                                                                    98.9%
  PatternKit.Generators.Builders.BuilderGenerator                                                                 96.3%
  PatternKit.Generators.Chain.ChainGenerator                                                                       100%
  PatternKit.Generators.Command.CommandGenerator                                                                   100%
  PatternKit.Generators.ComposerGenerator                                                                           94%
  PatternKit.Generators.Composite.CompositeGenerator                                                              96.2%
  PatternKit.Generators.DecoratorGenerator                                                                          95%
  PatternKit.Generators.FacadeGenerator                                                                           96.3%
  PatternKit.Generators.Factories.FactoriesGenerator                                                              94.6%
  PatternKit.Generators.Flyweight.FlyweightGenerator                                                              95.8%
  PatternKit.Generators.Iterator.IteratorGenerator                                                                97.8%
  PatternKit.Generators.MementoGenerator                                                                          94.8%
  PatternKit.Generators.Messaging.BackplaneTopologyGenerator                                                      92.5%
  PatternKit.Generators.Messaging.ContentRouterGenerator                                                          97.6%
  PatternKit.Generators.Messaging.DispatcherGenerator                                                             98.1%
  PatternKit.Generators.Messaging.MailboxGenerator                                                                90.1%
  PatternKit.Generators.Messaging.MessageEnvelopeGenerator                                                        90.3%
  PatternKit.Generators.Messaging.RecipientListGenerator                                                          97.1%
  PatternKit.Generators.Messaging.ReliabilityPipelineGenerator                                                    94.2%
  PatternKit.Generators.Messaging.RoutingSlipGenerator                                                            96.5%
  PatternKit.Generators.Messaging.SagaGenerator                                                                   96.3%
  PatternKit.Generators.Messaging.SplitterAggregatorGenerator                                                     93.7%
  PatternKit.Generators.Observer.ObserverGenerator                                                                96.7%
  PatternKit.Generators.PrototypeGenerator                                                                        95.3%
  PatternKit.Generators.ProxyGenerator                                                                            92.8%
  PatternKit.Generators.Singleton.SingletonGenerator                                                              98.1%
  PatternKit.Generators.StateMachineGenerator                                                                     93.1%
  PatternKit.Generators.StrategyGenerator                                                                         93.9%
  PatternKit.Generators.TemplateGenerator                                                                         94.5%
  PatternKit.Generators.VisitorGenerator                                                                          99.4%

PatternKit.Generators.Abstractions                                                                                 100%
  PatternKit.Generators.Adapter.AdapterMapAttribute                                                                100%
  PatternKit.Generators.Adapter.GenerateAdapterAttribute                                                           100%
  PatternKit.Generators.Bridge.BridgeAbstractionAttribute                                                          100%
  PatternKit.Generators.Bridge.BridgeImplementorAttribute                                                          100%
  PatternKit.Generators.Builders.BuilderRequiredAttribute                                                          100%
  PatternKit.Generators.Builders.GenerateBuilderAttribute                                                          100%
  PatternKit.Generators.Chain.ChainAttribute                                                                       100%
  PatternKit.Generators.Chain.ChainHandlerAttribute                                                                100%
  PatternKit.Generators.Command.CommandAttribute                                                                   100%
  PatternKit.Generators.Command.CommandHandlerAttribute                                                            100%
  PatternKit.Generators.Composer.ComposerAttribute                                                                 100%
  PatternKit.Generators.Composer.ComposeStepAttribute                                                              100%
  PatternKit.Generators.Composite.CompositeComponentAttribute                                                      100%
  PatternKit.Generators.Decorator.GenerateDecoratorAttribute                                                       100%
  PatternKit.Generators.Facade.FacadeExposeAttribute                                                               100%
  PatternKit.Generators.Facade.FacadeMapAttribute                                                                  100%
  PatternKit.Generators.Facade.GenerateFacadeAttribute                                                             100%
  PatternKit.Generators.Factories.FactoryCaseAttribute                                                             100%
  PatternKit.Generators.Factories.FactoryClassAttribute                                                            100%
  PatternKit.Generators.Factories.FactoryClassKeyAttribute                                                         100%
  PatternKit.Generators.Factories.FactoryMethodAttribute                                                           100%
  PatternKit.Generators.Flyweight.FlyweightAttribute                                                               100%
  PatternKit.Generators.GenerateStrategyAttribute                                                                  100%
  PatternKit.Generators.Iterator.IteratorAttribute                                                                 100%
  PatternKit.Generators.MementoAttribute                                                                           100%
  PatternKit.Generators.MementoStrategyAttribute                                                                   100%
  PatternKit.Generators.Messaging.BackplaneRequestReplyAttribute                                                   100%
  PatternKit.Generators.Messaging.BackplaneSubscriptionAttribute                                                   100%
  PatternKit.Generators.Messaging.ContentRouteAttribute                                                            100%
  PatternKit.Generators.Messaging.GenerateAggregatorAttribute                                                      100%
  PatternKit.Generators.Messaging.GenerateBackplaneTopologyAttribute                                               100%
  PatternKit.Generators.Messaging.GenerateContentRouterAttribute                                                   100%
  PatternKit.Generators.Messaging.GenerateDispatcherAttribute                                                      100%
  PatternKit.Generators.Messaging.GenerateMailboxAttribute                                                         100%
  PatternKit.Generators.Messaging.GenerateMessageEnvelopeAttribute                                                 100%
  PatternKit.Generators.Messaging.GenerateRecipientListAttribute                                                   100%
  PatternKit.Generators.Messaging.GenerateReliabilityPipelineAttribute                                             100%
  PatternKit.Generators.Messaging.GenerateRoutingSlipAttribute                                                     100%
  PatternKit.Generators.Messaging.GenerateSagaAttribute                                                            100%
  PatternKit.Generators.Messaging.GenerateSplitterAttribute                                                        100%
  PatternKit.Generators.Messaging.MessageEnvelopeHeaderAttribute                                                   100%
  PatternKit.Generators.Messaging.RecipientListRecipientAttribute                                                  100%
  PatternKit.Generators.Messaging.RoutingSlipStepAttribute                                                         100%
  PatternKit.Generators.Messaging.SagaStepAttribute                                                                100%
  PatternKit.Generators.Observer.ObserverAttribute                                                                 100%
  PatternKit.Generators.Prototype.PrototypeAttribute                                                               100%
  PatternKit.Generators.Prototype.PrototypeStrategyAttribute                                                       100%
  PatternKit.Generators.Proxy.GenerateProxyAttribute                                                               100%
  PatternKit.Generators.Singleton.SingletonAttribute                                                               100%
  PatternKit.Generators.State.StateEntryAttribute                                                                  100%
  PatternKit.Generators.State.StateExitAttribute                                                                   100%
  PatternKit.Generators.State.StateGuardAttribute                                                                  100%
  PatternKit.Generators.State.StateMachineAttribute                                                                100%
  PatternKit.Generators.State.StateTransitionAttribute                                                             100%
  PatternKit.Generators.Template.TemplateAttribute                                                                 100%
  PatternKit.Generators.Template.TemplateHookAttribute                                                             100%
  PatternKit.Generators.Template.TemplateStepAttribute                                                             100%
  PatternKit.Generators.Visitors.GenerateVisitorAttribute                                                          100%

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new messaging source generator to produce strongly-typed request/reply + publish/subscribe backplane topology wiring from declarative attributes, and updates the messaging backplane facade example + documentation/catalogs to reflect generated coverage for Request-Reply and Publish-Subscribe.

Changes:

  • Introduces [GenerateBackplaneTopology], [BackplaneRequestReply], and [BackplaneSubscription] attributes plus BackplaneTopologyGenerator and new PKBT00x diagnostics.
  • Migrates the messaging backplane facade demo to use generated topology, and updates DI/example catalog integration surfaces accordingly.
  • Updates docs and pattern coverage catalogs/tests to show generated paths for Request-Reply and Publish-Subscribe.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
test/PatternKit.Generators.Tests/BackplaneTopologyGeneratorTests.cs Adds generator tests for basic generation and a subset of diagnostics.
test/PatternKit.Generators.Tests/AbstractionsAttributeCoverageTests.cs Adds attribute target/default/guard coverage for the new attributes.
test/PatternKit.Examples.Tests/ProductionReadiness/PatternKitPatternCatalogTests.cs Removes tracked “generated gap” entries for Request-Reply and Publish-Subscribe.
test/PatternKit.Examples.Tests/Messaging/BackplaneFacadeDemoTests.cs Adds coverage for generated topology wiring and IServiceCollection importability.
src/PatternKit.Generators/Messaging/BackplaneTopologyGenerator.cs New incremental generator implementing topology emission + diagnostics.
src/PatternKit.Generators/AnalyzerReleases.Unshipped.md Documents new PKBT001PKBT005 diagnostics.
src/PatternKit.Generators.Abstractions/Messaging/BackplaneTopologyAttributes.cs Adds the new generator attributes (abstractions package).
src/PatternKit.Examples/ProductionReadiness/PatternKitPatternCatalog.cs Updates pattern catalog entries to include generated topology files and remove tracked gap link.
src/PatternKit.Examples/ProductionReadiness/PatternKitExampleCatalog.cs Marks the messaging backplane facade example as SourceGenerator-integrated and updates tags.
src/PatternKit.Examples/Messaging/BackplaneFacadeDemo.cs Switches demo host wiring from fluent to generated topology; exposes services used by tests/topology.
src/PatternKit.Examples/DependencyInjection/PatternKitExampleServiceCollectionExtensions.cs Updates DI registration to include SourceGenerator integration surface.
docs/patterns/messaging/enterprise-generators.md Mentions backplane topology generation and adds PKBT diagnostics to the list.
docs/guides/pattern-coverage.md Updates Request-Reply and Publish-Subscribe coverage to “Backplane topology generator”.
docs/generators/messaging.md Documents generated backplane topology and updates generator count/list.
docs/generators/index.md Adds backplane topology to generator index and quick reference.
docs/examples/messaging-backplane-facade.md Updates example to show generated topology usage and adds DI import mention.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +105 to +111
var configureMethodName = GetNamedString(attribute, "ConfigureMethodName") ?? "Configure";
var hostBuilderTypeName = GetNamedType(attribute, "HostBuilderType")
?.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)
?? "global::PatternKit.Examples.Messaging.BackplaneHostBuilder";
context.AddSource($"{type.Name}.BackplaneTopology.g.cs", SourceText.From(
GenerateSource(type, servicesType, hostBuilderTypeName, requests, subscriptions, configureMethodName),
Encoding.UTF8));
Comment on lines +150 to +156
if (requestType is null || responseType is null || string.IsNullOrWhiteSpace(endpointName) || string.IsNullOrWhiteSpace(handlerName))
return false;

var handler = servicesType.GetMembers(handlerName!).OfType<IMethodSymbol>().FirstOrDefault();
if (handler is null || !IsRequestHandler(handler, requestType, responseType))
return false;

Comment on lines +331 to +336
sb.AppendLine();
foreach (var group in requests.GroupBy(static r => r.EndpointName).OrderBy(static g => g.Key, System.StringComparer.Ordinal))
{
sb.Append(" builder.ReceiveEndpoint(\"").Append(Escape(group.Key)).AppendLine("\", endpoint =>");
sb.AppendLine(" {");
foreach (var request in group.OrderBy(static r => r.HandlerMethodName, System.StringComparer.Ordinal))
Comment on lines +86 to +107
[Scenario("Reports diagnostic for non-partial backplane topology")]
[Fact]
public void ReportsDiagnosticForNonPartialBackplaneTopology()
{
var source = """
using PatternKit.Generators.Messaging;

namespace PatternKit.Examples.Messaging;

public sealed class OrderServices { }

[GenerateBackplaneTopology(typeof(OrderServices))]
public static class OrderBackplane;
""";

var comp = CreateCompilation(source, nameof(ReportsDiagnosticForNonPartialBackplaneTopology));
var gen = new BackplaneTopologyGenerator();
_ = RoslynTestHelpers.Run(comp, gen, out var run, out _);

var diagnostic = ScenarioExpect.Single(run.Results.SelectMany(result => result.Diagnostics));
ScenarioExpect.Equal("PKBT001", diagnostic.Id);
}
@JerrettDavis JerrettDavis merged commit 3ea1110 into main May 20, 2026
16 checks passed
@JerrettDavis JerrettDavis deleted the feat/backplane-topology-generator branch May 20, 2026 17:35
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.

Add generated request/reply and pub/sub backplane patterns

2 participants