documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF
This commit is contained in:
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
Checked files: 25
|
||||
Found: 25
|
||||
Missing: 0
|
||||
|
||||
Found files:
|
||||
docs/features/unchecked/notifier/multi-channel-delivery.md
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/IChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChannelAdapterFactory.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/SlackChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/WebhookChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChatWebhookChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/PagerDutyChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/OpsGenieChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/EmailChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/InAppChannelAdapter.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Dispatch/WebhookChannelDispatcher.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Security/IWebhookSecurityService.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Fallback/IFallbackHandler.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/HttpEgressSloSink.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/offline/notifier/templates
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/WebhookChannelAdapterTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/WebhookChannelDispatcherTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/SimpleTemplateRendererTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Security/WebhookSecurityServiceTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Fallback/FallbackHandlerTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/HttpEgressSloSinkTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/MultiChannelAdapterTests.cs
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/StellaOps.Notifier.Worker.csproj
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/StellaOps.Notifier.WebService.csproj
|
||||
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj
|
||||
|
||||
Missing files:
|
||||
<none>
|
||||
@@ -0,0 +1,77 @@
|
||||
[
|
||||
{
|
||||
"pattern": "interface\\s+IChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Channels\\ChannelAdapterFactory.cs:9:public interface IChannelAdapterFactory"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+ChannelAdapterFactory",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+SlackChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+WebhookChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Channels\\WebhookChannelAdapterTests.cs:12:public sealed class WebhookChannelAdapterTests"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+ChatWebhookChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+PagerDutyChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+OpsGenieChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+EmailChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+InAppChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+WebhookChannelDispatcher",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Dispatch\\WebhookChannelDispatcherTests.cs:9:public sealed class WebhookChannelDispatcherTests"
|
||||
},
|
||||
{
|
||||
"pattern": "interface\\s+IWebhookSecurityService",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "interface\\s+IFallbackHandler",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+HttpEgressSloSink",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\HttpEgressSloSinkTests.cs:14:public class HttpEgressSloSinkTests"
|
||||
},
|
||||
{
|
||||
"pattern": "DispatchAsync\\(",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Channels\\WebhookChannelAdapterTests.cs:33: var result = await adapter.DispatchAsync(context, CancellationToken.None);"
|
||||
},
|
||||
{
|
||||
"pattern": "CheckHealthAsync\\(",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Channels\\WebhookChannelAdapter.cs:179: public async Task\u003cChannelHealthCheckResult\u003e CheckHealthAsync("
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,9 @@
|
||||
Claim parity quick checks:
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Channels\SlackChannelAdapter.cs:12:public sealed class SlackChannelAdapter : INotifyChannelAdapter
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Channels\WebhookChannelAdapter.cs:20:public sealed class WebhookChannelAdapter : IChannelAdapter
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Channels\PagerDutyChannelAdapter.cs:19:public sealed class PagerDutyChannelAdapter : IChannelAdapter
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Channels\OpsGenieChannelAdapter.cs:18:public sealed class OpsGenieChannelAdapter : IChannelAdapter
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Channels\EmailChannelAdapter.cs:16:public sealed class EmailChannelAdapter : IChannelAdapter, IDisposable
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Channels\InAppChannelAdapter.cs:15:public sealed class InAppChannelAdapter : IChannelAdapter
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Fallback\IFallbackHandler.cs:297:public sealed class FallbackHandlerOptions
|
||||
src/Notifier/StellaOps.Notifier\StellaOps.Notifier.Worker\Processing\HttpEgressSloSink.cs:12:internal sealed class HttpEgressSloSink : IEgressSloSink
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
0
|
||||
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"step": "02-tier1-build-notifier-worker",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"step": "02a-tier1-build-notifier-webservice",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"step": "02b-tier1-build-notifier-tests",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"step": "03a-tier1-list-tests",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"step": "03-tier1-test-multi-channel-classes",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"step": "04-tier2-test-multi-channel-behavior",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"step": "05-tier1-tests",
|
||||
"exitCode": 0
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"type": "source",
|
||||
"module": "notifier",
|
||||
"feature": "multi-channel-delivery",
|
||||
"runId": "run-004",
|
||||
"capturedAtUtc": "2026-02-11T13:44:18.1417096Z",
|
||||
"filesChecked": [
|
||||
"docs/features/unchecked/notifier/multi-channel-delivery.md",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/IChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChannelAdapterFactory.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/SlackChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/WebhookChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChatWebhookChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/PagerDutyChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/OpsGenieChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/EmailChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/InAppChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Dispatch/WebhookChannelDispatcher.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Security/IWebhookSecurityService.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Fallback/IFallbackHandler.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/HttpEgressSloSink.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/offline/notifier/templates",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/WebhookChannelAdapterTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/WebhookChannelDispatcherTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/SimpleTemplateRendererTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Security/WebhookSecurityServiceTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Fallback/FallbackHandlerTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/HttpEgressSloSinkTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/MultiChannelAdapterTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/StellaOps.Notifier.Worker.csproj",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/StellaOps.Notifier.WebService.csproj",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj"
|
||||
],
|
||||
"found": [
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/IChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChannelAdapterFactory.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/SlackChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/WebhookChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChatWebhookChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/PagerDutyChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/OpsGenieChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/EmailChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/InAppChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Dispatch/WebhookChannelDispatcher.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Security/IWebhookSecurityService.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Fallback/IFallbackHandler.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/HttpEgressSloSink.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/offline/notifier/templates",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/WebhookChannelAdapterTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/WebhookChannelDispatcherTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/SimpleTemplateRendererTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Security/WebhookSecurityServiceTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Fallback/FallbackHandlerTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/HttpEgressSloSinkTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/MultiChannelAdapterTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/StellaOps.Notifier.Worker.csproj",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/StellaOps.Notifier.WebService.csproj",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj"
|
||||
],
|
||||
"missing": [
|
||||
"docs/features/unchecked/notifier/multi-channel-delivery.md"
|
||||
],
|
||||
"declarationChecks": [
|
||||
{
|
||||
"pattern": "interface\\s+IChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Channels\\ChannelAdapterFactory.cs:9:public interface IChannelAdapterFactory"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+ChannelAdapterFactory",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+SlackChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+WebhookChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Channels\\WebhookChannelAdapterTests.cs:12:public sealed class WebhookChannelAdapterTests"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+ChatWebhookChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+PagerDutyChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+OpsGenieChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+EmailChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+InAppChannelAdapter",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+WebhookChannelDispatcher",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Dispatch\\WebhookChannelDispatcherTests.cs:9:public sealed class WebhookChannelDispatcherTests"
|
||||
},
|
||||
{
|
||||
"pattern": "interface\\s+IWebhookSecurityService",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "interface\\s+IFallbackHandler",
|
||||
"found": true,
|
||||
"sample": "s"
|
||||
},
|
||||
{
|
||||
"pattern": "class\\s+HttpEgressSloSink",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\HttpEgressSloSinkTests.cs:14:public class HttpEgressSloSinkTests"
|
||||
},
|
||||
{
|
||||
"pattern": "DispatchAsync\\(",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Channels\\WebhookChannelAdapterTests.cs:33: var result = await adapter.DispatchAsync(context, CancellationToken.None);"
|
||||
},
|
||||
{
|
||||
"pattern": "CheckHealthAsync\\(",
|
||||
"found": true,
|
||||
"sample": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Channels\\WebhookChannelAdapter.cs:179: public async Task\u003cChannelHealthCheckResult\u003e CheckHealthAsync("
|
||||
}
|
||||
],
|
||||
"missingRatio": 0.04,
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"type": "build",
|
||||
"module": "notifier",
|
||||
"feature": "multi-channel-delivery",
|
||||
"runId": "run-004",
|
||||
"capturedAtUtc": "2026-02-11T13:43:41.3203216Z",
|
||||
"buildProjects": [
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/StellaOps.Notifier.Worker.csproj",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/StellaOps.Notifier.WebService.csproj",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj"
|
||||
],
|
||||
"buildResult": "pass",
|
||||
"testProjects": [
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj"
|
||||
],
|
||||
"testResult": "pass",
|
||||
"testsBlockedUpstream": false,
|
||||
"testsRun": 520,
|
||||
"testsPassed": 520,
|
||||
"testsFailed": 0,
|
||||
"targetedBehaviorSuite": {
|
||||
"testsRun": 37,
|
||||
"testsPassed": 37,
|
||||
"testsFailed": 0,
|
||||
"log": "evidence/03-tier1-test-multi-channel-classes.txt"
|
||||
},
|
||||
"codeReview": {
|
||||
"reviewedFiles": [
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/SlackChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/WebhookChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/PagerDutyChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/OpsGenieChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/EmailChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/InAppChannelAdapter.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChannelAdapterFactory.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Dispatch/WebhookChannelDispatcher.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Fallback/IFallbackHandler.cs"
|
||||
],
|
||||
"verdict": "pass",
|
||||
"findings": [
|
||||
"Concrete channel adapters for Slack/Webhook/PagerDuty/OpsGenie/Email/InApp expose DispatchAsync and CheckHealthAsync behavior.",
|
||||
"ChannelAdapterFactory resolves registered adapters by channel type and returns null for unknown adapter types.",
|
||||
"Regression fix in MultiChannelAdapterTests now constructs disabled channels via NotifyChannel.Create(enabled: false), eliminating CS0200 compile failure."
|
||||
],
|
||||
"reviewedTests": [
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/MultiChannelAdapterTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/WebhookChannelAdapterTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/WebhookChannelDispatcherTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Fallback/FallbackHandlerTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Security/WebhookSecurityServiceTests.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/HttpEgressSloSinkTests.cs"
|
||||
],
|
||||
"notes": [
|
||||
"MTP list-tests command can contention-lock default TestResults log under concurrent agents; run-004 captured list-tests after isolated rerun."
|
||||
]
|
||||
},
|
||||
"logs": [
|
||||
"evidence/02-tier1-build-notifier-worker.txt",
|
||||
"evidence/02a-tier1-build-notifier-webservice.txt",
|
||||
"evidence/02b-tier1-build-notifier-tests.txt",
|
||||
"evidence/03a-tier1-list-tests.txt",
|
||||
"evidence/03-tier1-test-multi-channel-classes.txt",
|
||||
"evidence/05-tier1-tests.txt"
|
||||
],
|
||||
"errors": [
|
||||
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"module": "notifier",
|
||||
"feature": "multi-channel-delivery",
|
||||
"runId": "run-004",
|
||||
"capturedAtUtc": "2026-02-11T13:43:41.3203216Z",
|
||||
"checks": [
|
||||
{
|
||||
"evidence": "evidence/04-tier2-test-multi-channel-behavior.txt",
|
||||
"description": "Focused multi-channel behavior suite validates Slack payload rendering, webhook dispatch semantics, and dispatcher response handling.",
|
||||
"result": "pass"
|
||||
}
|
||||
],
|
||||
"behaviorVerified": [
|
||||
"Slack/PagerDuty/OpsGenie/Email/InApp adapter behavior is executed via deterministic class-scoped tests.",
|
||||
"Webhook adapter + dispatcher positive and negative behaviors are executed with request/response assertions.",
|
||||
"Factory channel-type resolution and invalid-configuration handling are verified."
|
||||
],
|
||||
"tests": {
|
||||
"multiChannelBehaviorSuite": {
|
||||
"testsRun": 22,
|
||||
"testsPassed": 22,
|
||||
"testsFailed": 0
|
||||
}
|
||||
},
|
||||
"logs": [
|
||||
"evidence/04-tier2-test-multi-channel-behavior.txt",
|
||||
"evidence/01b-tier0-claim-parity.txt"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user