{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D7","name":"Architectural Integrity","shortDescription":{"text":"Architectural Integrity"},"helpUri":"https://codehealth.canine.dev/dimensions/D7"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"id":"D11","name":"Test Reliability","shortDescription":{"text":"Test Reliability"},"helpUri":"https://codehealth.canine.dev/dimensions/D11"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29"},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31"},{"id":"D32","name":"Data Compliance (PII/GDPR)","shortDescription":{"text":"Data Compliance (PII/GDPR)"},"helpUri":"https://codehealth.canine.dev/dimensions/D32"},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37"},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D39","name":"IL Efficiency","shortDescription":{"text":"IL Efficiency"},"helpUri":"https://codehealth.canine.dev/dimensions/D39"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"CoreProjection.GoToState (cyclomatic 50): CoreProjection.GoToState has cyclomatic complexity 50 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/CoreProjection.cs"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dbd144a7436d52476eef6a0d4e49db800adf69f3310d69df23f985e1860f307"}},{"ruleId":"D1","level":"warning","message":{"text":"SchemaApplication.SchemaApplication.ctor (cyclomatic 47): SchemaApplication.SchemaApplication.ctor has cyclomatic complexity 47 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Domain/SchemaApplication.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6786ce19a02331f0f9e0d021a137772bb8d629a878b48d1c4289380cef4e263"}},{"ruleId":"D1","level":"warning","message":{"text":"TFChunkDbCreationHelper.CreateDb (cyclomatic 47): TFChunkDbCreationHelper.CreateDb has cyclomatic complexity 47 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcbe655c34e30fa8119f5ec54d26fc30900a57129785242aae398b1e30910834"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplateTrieNode.TryMatch (cyclomatic 33): UriTemplateTrieNode.TryMatch has cyclomatic complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b0b8dd199981c70a80e32d0e1eb46b123ba5555fe8086305a5e85b7aa2a6c6e"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplate.UriTemplate.ctor (cyclomatic 32): UriTemplate.UriTemplate.ctor has cyclomatic complexity 32 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8035f943d562b073d85d15a1938ead31675b2af46fa5c8123615a3f764e6851"}},{"ruleId":"D1","level":"warning","message":{"text":"CheckpointTag.FromJson (cyclomatic 31): CheckpointTag.FromJson has cyclomatic complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":632}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaa8588e67b0bb59e283e15931bac1bcb706b71cc0ca866341c2f95294cb9107"}},{"ruleId":"D1","level":"warning","message":{"text":"ClusterVNodeHostedService.ClusterVNodeHostedService.ctor (cyclomatic 31): ClusterVNodeHostedService.ClusterVNodeHostedService.ctor has cyclomatic complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB/ClusterVNodeHostedService.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6e722213148a9465f3256691b31f67c130503cda5c2818940a79dafb9a2cafd"}},{"ruleId":"D1","level":"warning","message":{"text":"ResolvedEvent.ResolvedEvent.ctor (cyclomatic 28): ResolvedEvent.ResolvedEvent.ctor has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/ResolvedEvent.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"80ba6688bd88f0ef7f4458ea98ffb4d7b5d3c852ddaf2fd7d6be945f1494a463"}},{"ruleId":"D1","level":"warning","message":{"text":"CertificateManager.EnsureDevelopmentCertificate (cyclomatic 27): CertificateManager.EnsureDevelopmentCertificate has cyclomatic complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcefff1a72c94165e64fb98ee6f27d3addac6b83c0aa76aec921e25e03412f29"}},{"ruleId":"D1","level":"warning","message":{"text":"KontextService.RunSearchAsync (cyclomatic 26): KontextService.RunSearchAsync has cyclomatic complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Search/KontextService.cs"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7293bbaa01c8396a2d7fd0e140a62630c3bfc92097b49cb3a8fcfb67eebfa9e"}},{"ruleId":"D1","level":"warning","message":{"text":"OAuthAuthenticationProvider.ConfigureEndpoints (cyclomatic 25): OAuthAuthenticationProvider.ConfigureEndpoints has cyclomatic complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth/OAuthAuthenticationPlugin.cs"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0eac0bceaf8a1693fe46147e3a8fbe4943627fd6e29f0bfec97f88659f04ee2"}},{"ruleId":"D1","level":"warning","message":{"text":"ProjectionManagement.Create (cyclomatic 24): ProjectionManagement.Create has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Create.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8f56c569c20b90cc59bff57b50ff7bd3831977fef6776b9c99e3a9fdc722376"}},{"ruleId":"D1","level":"warning","message":{"text":"TFChunkDbCreationHelper.CreateLogRecord (cyclomatic 24): TFChunkDbCreationHelper.CreateLogRecord has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"e24b4c64e384ed6d752a4e967449316669832df16bd0cafa3dd59f56d9d4253f"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplate.Bind (cyclomatic 23): UriTemplate.Bind has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8e036c51ed363388127815bb6e1a9f01f52f45606a921bcd1940bab7d69b61b"}},{"ruleId":"D1","level":"warning","message":{"text":"CheckpointTag.OperatorDeclaration (cyclomatic 23): CheckpointTag.OperatorDeclaration has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"d62352da65a9a47c8fb7552b15d5fe4e4dc3e6d4b327fd146f004bcd758cc02d"}},{"ruleId":"D1","level":"warning","message":{"text":"CheckpointTag.OperatorDeclaration (cyclomatic 23): CheckpointTag.OperatorDeclaration has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"d62352da65a9a47c8fb7552b15d5fe4e4dc3e6d4b327fd146f004bcd758cc02d"}},{"ruleId":"D1","level":"warning","message":{"text":"ReaderStrategy.Create (cyclomatic 22): ReaderStrategy.Create has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/ReaderStrategy.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ad0b149ebd713a4f37ab90ba74a830aeb4b8bdc964ee75a3f2bf4563c4e7e57"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplateCompoundPathSegment.CompareTo (cyclomatic 21): UriTemplateCompoundPathSegment.CompareTo has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateCompoundPathSegment.cs"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"33fd987dc853eb52082838ffc59e8e068c65e2d951d5e29de7b72e8160b3afc2"}},{"ruleId":"D1","level":"warning","message":{"text":"ReaderSubscriptionBase.ProcessOne (cyclomatic 21): ReaderSubscriptionBase.ProcessOne has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Subscriptions/ReaderSubscriptionBase.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"8588d316ace8cf690b453d29c2bc0a4774e03f9f09ff503314a9c73b588e3a33"}},{"ruleId":"D1","level":"warning","message":{"text":"WriteFloodProcessor.WriteFlood (cyclomatic 21): WriteFloodProcessor.WriteFlood has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"81db3858ee69e65e2a621c16df907c88179d14d48aa452b03c7d5c8b95127084"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplateTable.Match (cyclomatic 20): UriTemplateTable.Match has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTable.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"43ae0b5b7c5059ea20c0d6129c0bab1658695b7e5137da16f20eb1af9d58f94f"}},{"ruleId":"D1","level":"warning","message":{"text":"ProjectionEngineV2.RunReadLoop (cyclomatic 20): ProjectionEngineV2.RunReadLoop has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionEngineV2.cs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"822d9c1061b5b8c08a9dbc2e8bbc6fa5d018689ecf0536ac9bddfe186aa6d204"}},{"ruleId":"D1","level":"warning","message":{"text":"ReadAllProcessor.Execute (cyclomatic 20): ReadAllProcessor.Execute has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/ReadAllProcessor.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f0995d5825c76be416cc0c539e746a18cba52a5c3b84919211a198feb070cce"}},{"ruleId":"D1","level":"warning","message":{"text":"WriteFloodProcessor.WriteFlood (cyclomatic 20): WriteFloodProcessor.WriteFlood has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteFloodProcessor.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"29a29490d5dd695b1fa551b556f22d11965cfd153909d83094439041a3f34c75"}},{"ruleId":"D1","level":"warning","message":{"text":"EmittedStream.ReadStreamEventsBackwardCompleted (cyclomatic 19): EmittedStream.ReadStreamEventsBackwardCompleted has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c6090910e8f00c62dc74a5bd2297342cae8d2f0dfad8600d94f3ccb58ed2d44"}},{"ruleId":"D1","level":"warning","message":{"text":"RunTestScenariosProcessor.Execute (cyclomatic 19): RunTestScenariosProcessor.Execute has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenariosProcessor.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c5e7589b5a2cdc9516878c09d5783bf1784609b80c47854774494424bf94de0"}},{"ruleId":"D1","level":"warning","message":{"text":"ApiErrors.AppendConsistencyViolation (cyclomatic 19): ApiErrors.AppendConsistencyViolation has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Streams/ApiErrors.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7da6bd4fe5b51b99c14e1e7bcfb7ee82f299c260b6ec1f6a4d5dd42ca5a7a6d"}},{"ruleId":"D1","level":"warning","message":{"text":"StreamPolicyAssertion.CheckStreamAccess (cyclomatic 19): StreamPolicyAssertion.CheckStreamAccess has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin/StreamPolicyAssertion.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"f489afedc9b32fb84b051cfa84d6d1790ae3ab7d2ff27bf459711f6975a3af0b"}},{"ruleId":"D1","level":"warning","message":{"text":"CertificateManager.ListCertificates (cyclomatic 18): CertificateManager.ListCertificates has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"e229b63878c6aec234487e779836a021fbb994d5ec225e0c60c5bee8ee862cd2"}},{"ruleId":"D1","level":"warning","message":{"text":"VariablesCollection.ValidateDefaults (cyclomatic 18): VariablesCollection.ValidateDefaults has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":1088}}}],"partialFingerprints":{"codehealthFindingId/v1":"01547b148d6a77f9806576d835dbee5f1fabebc7aef4b31e5945bb85b0c3bf4b"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplateHelpers.EnsureQueriesAreDistinct (cyclomatic 18): UriTemplateHelpers.EnsureQueriesAreDistinct has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateHelpers.cs"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"790b6fab830b9622374490641142ff14156fad8c44f319b1ab3e1a23babbe4d8"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplateTrieNode.Validate (cyclomatic 18): UriTemplateTrieNode.Validate has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d22b18822a25a37a2cc0e3a104c5918750ebf52b20a532183ee39f7f18cfa1d"}},{"ruleId":"D1","level":"warning","message":{"text":"UserIndexEngineSubscription.StartInternal (cyclomatic 18): UserIndexEngineSubscription.StartInternal has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/User/UserIndexEngineSubscription.cs"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"4698c9f2e82a7a810b7bda0d904326e63e86f0b849023c0d599ff4bce64452d3"}},{"ruleId":"D1","level":"warning","message":{"text":"UriTemplateCompoundPathSegment.CreateFromUriTemplate (cyclomatic 17): UriTemplateCompoundPathSegment.CreateFromUriTemplate has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateCompoundPathSegment.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5c4ebfe040d30eae075366b12acd5012b8870f7e56951e5d4e79bfc1c8a0725"}},{"ruleId":"D1","level":"warning","message":{"text":"CheckpointTag.Equals (cyclomatic 17): CheckpointTag.Equals has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":262}}}],"partialFingerprints":{"codehealthFindingId/v1":"153e85398ecb522a490c0162c3a388cb339e5cf5bd14942b4b58d9bd1139c36d"}},{"ruleId":"D1","level":"warning","message":{"text":"MultiStreamEventReader.Handle (cyclomatic 17): MultiStreamEventReader.Handle has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamEventReader.cs"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcceb76ecc733b5a949231840ed9841662703ffcad06618fc4daa676b979b458"}},{"ruleId":"D1","level":"warning","message":{"text":"TransactionWriteProcessor.Execute (cyclomatic 17): TransactionWriteProcessor.Execute has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/TransactionWriteProcessor.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc1621041b2afd3d250f70f4e5fcd8e5c3deae9c7a1fc60bbb5f5d73a73fd509"}},{"ruleId":"D1","level":"warning","message":{"text":"CertificateExtensions.MatchesName (cyclomatic 16): CertificateExtensions.MatchesName has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/CertificateExtensions.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfd036824c143b39bbee58a5d4ff13a33ff4bc87797001a482ef9360b5a5a814"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpValueCollection.ToString (cyclomatic 16): HttpValueCollection.ToString has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":458}}}],"partialFingerprints":{"codehealthFindingId/v1":"42bb004b51137e197dda9bf9d0c5a78cc4f8d13bc8a2f1b6bac8ca731a171514"}},{"ruleId":"D1","level":"warning","message":{"text":"VariablesCollection.LoadDefaultsAndValidate (cyclomatic 16): VariablesCollection.LoadDefaultsAndValidate has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":1173}}}],"partialFingerprints":{"codehealthFindingId/v1":"6810578cc4bca9b56ba6fe9234a970be78c0874ba34fc2ad28c4c7e84cdd767f"}},{"ruleId":"D1","level":"warning","message":{"text":"ManagedProjection.SetState (cyclomatic 16): ManagedProjection.SetState has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjection.cs"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fa43323a718b1b169428fb06cb99c97d22003f1406a73a271e8ac971751b888"}},{"ruleId":"D1","level":"warning","message":{"text":"MultiStreamEventReader.ProcessBuffers (cyclomatic 16): MultiStreamEventReader.ProcessBuffers has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamEventReader.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"92917a34be50ef972efebdfc39c8c94b15e943e76228cdbe0bc2e71e10644f83"}},{"ruleId":"D1","level":"warning","message":{"text":"StreamEventReader.Handle (cyclomatic 16): StreamEventReader.Handle has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/SingleStream/StreamEventReader.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"62ed8a0f48a815e706b5a50984ef63716445c00e5fbb0902530d842227858e55"}},{"ruleId":"D1","level":"warning","message":{"text":"ProjForeachForcedCommonNameScenario.InnerRun (cyclomatic 16): ProjForeachForcedCommonNameScenario.InnerRun has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjForeachForcedCommonNameScenario.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"50ce0b3e882562aec12a62be423b6d1ac3c68bdb5bd34bec8c1ff354003e6cbf"}},{"ruleId":"D1","level":"warning","message":{"text":"WriteFloodProcessor.WriteFlood (cyclomatic 16): WriteFloodProcessor.WriteFlood has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/GrpcCommands/WriteFloodProcessor.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cea2d383877651dea8946b507a54fb1d17fb7dbd4711dbc2bcc9dd774c82454"}},{"ruleId":"D1","level":"warning","message":{"text":"TcpTestClient.CreateTcpConnection (cyclomatic 16): TcpTestClient.CreateTcpConnection has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/TcpTestClient.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"696e1839a69008bf1f023f18180e05fcbf8dc4c1044fa767d05306f82b134574"}},{"ruleId":"D1","level":"warning","message":{"text":"HomeAutomationDataSet.Events (cyclomatic 16): HomeAutomationDataSet.Events has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Sample/HomeAutomation/HomeAutomationDataSet.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9f356180d1f537e488be5b445e4bcd999d959c2bde51ae0b8c469ccdd89a308"}},{"ruleId":"D1","level":"warning","message":{"text":"ClientSource.ReadAutoScavengeEvents (cyclomatic 16): ClientSource.ReadAutoScavengeEvents has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Sources/ClientSource.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc23b0e84a511429b7b3cfc68b38b58231505c1a22d283a0ce241aef6b2a70d4"}},{"ruleId":"D1","level":"warning","message":{"text":"StreamPolicyAssertion.Check (cyclomatic 16): StreamPolicyAssertion.Check has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin/StreamPolicyAssertion.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac0c59fb6480a5b2ee8c3568e615b7091243a8cbe3794e688796416c0dd64d2b"}},{"ruleId":"D2","level":"warning","message":{"text":"TFChunkDbCreationHelper.CreateDb (cognitive 106): TFChunkDbCreationHelper.CreateDb has cognitive complexity 106 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"a213a88c460e148365ef1d5fc670395c058afe04bf6e30a5da2b459dee99c0d8"}},{"ruleId":"D2","level":"warning","message":{"text":"SchemaApplication.SchemaApplication.ctor (cognitive 80): SchemaApplication.SchemaApplication.ctor has cognitive complexity 80 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Domain/SchemaApplication.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e996a705429b0ce15d29cc2016f94afab0c7908cf86b4758fd81c01486e7eaf"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplate.UriTemplate.ctor (cognitive 76): UriTemplate.UriTemplate.ctor has cognitive complexity 76 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"e18bf5f714eebc81cc7a54d801d029ca3d1c8b03ea4b5d0a95b9772a87baddc7"}},{"ruleId":"D2","level":"warning","message":{"text":"CertificateManager.EnsureDevelopmentCertificate (cognitive 70): CertificateManager.EnsureDevelopmentCertificate has cognitive complexity 70 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"aeb62288bd064f3812012607d632669a31420eb99a3793137c17bc8e56cc5d87"}},{"ruleId":"D2","level":"warning","message":{"text":"CheckpointTag.FromJson (cognitive 54): CheckpointTag.FromJson has cognitive complexity 54 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":632}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d7fede030aeb4e7260e261e2d262db906fcfc2bac70fdb7d0aa11d414b6e1d9"}},{"ruleId":"D2","level":"warning","message":{"text":"ResolvedEvent.ResolvedEvent.ctor (cognitive 49): ResolvedEvent.ResolvedEvent.ctor has cognitive complexity 49 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/ResolvedEvent.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"954a9a92cc27c195a3d14aa71675461bc5897749e371568c83965a6d2d0409f4"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTrieNode.TryMatch (cognitive 44): UriTemplateTrieNode.TryMatch has cognitive complexity 44 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"c953cf485eb0b0bf76e75a1a42d7bce57645e1c17891126611049fc0a70f47a2"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTrieNode.Validate (cognitive 43): UriTemplateTrieNode.Validate has cognitive complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"023f99c232f745ab4d649d340c9bf6721219a8a1fa58deb02b6f916b73936eb2"}},{"ruleId":"D2","level":"warning","message":{"text":"UserIndexEngineSubscription.StartInternal (cognitive 42): UserIndexEngineSubscription.StartInternal has cognitive complexity 42 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/User/UserIndexEngineSubscription.cs"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebb7729a315de2fd1ead77957c7509de18c5ecfce17ab6909d6d0980a13643fe"}},{"ruleId":"D2","level":"warning","message":{"text":"KontextService.RunSearchAsync (cognitive 40): KontextService.RunSearchAsync has cognitive complexity 40 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Search/KontextService.cs"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba2dccb69fb69d33bc458314f2db6bec7fb3713fd8d764999f4ab0314afafd04"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplate.Bind (cognitive 38): UriTemplate.Bind has cognitive complexity 38 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"198c27b80017dfc2da6399814d013c317f33748b00f7dcca477221e5061a083a"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateHelpers.EnsureQueriesAreDistinct (cognitive 37): UriTemplateHelpers.EnsureQueriesAreDistinct has cognitive complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateHelpers.cs"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c669f2effa5ad81eb13216a3b296b24608d298e5de23a7f5812fa88af1ddc35"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteFloodProcessor.WriteFlood (cognitive 37): WriteFloodProcessor.WriteFlood has cognitive complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"487c2a9436a6a46d480eb3b71bef41ee8644e74c98963bf2e8df1aa1fb148df6"}},{"ruleId":"D2","level":"warning","message":{"text":"ClusterVNodeHostedService.ClusterVNodeHostedService.ctor (cognitive 37): ClusterVNodeHostedService.ClusterVNodeHostedService.ctor has cognitive complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB/ClusterVNodeHostedService.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd4933eeaafa4b8fc8e1bbe19e6576b4216b461ebd2bb0a6d9eff9825988ab3b"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTable.Match (cognitive 34): UriTemplateTable.Match has cognitive complexity 34 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTable.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"c26cc6d85937fb7ab30960c900d28c38478b27888bd2a3f6bef4327d003449b9"}},{"ruleId":"D2","level":"warning","message":{"text":"VariablesCollection.ValidateDefaults (cognitive 33): VariablesCollection.ValidateDefaults has cognitive complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":1088}}}],"partialFingerprints":{"codehealthFindingId/v1":"37d253e6e66d1c12f9dee7b6042efa14cc64b087297fe05c643d046a5f99cf87"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteLongTermProcessor.Flood (cognitive 33): WriteLongTermProcessor.Flood has cognitive complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteLongTermProcessor.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"f81ca116e6600a413b2d8029024a6c71b0b50f85d4a4f7433cdd279a45eb5724"}},{"ruleId":"D2","level":"warning","message":{"text":"TransactionWriteProcessor.Execute (cognitive 32): TransactionWriteProcessor.Execute has cognitive complexity 32 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/TransactionWriteProcessor.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"433ccb2455f2282cbe5c400a8ddd09303fb2fe97b9933ab064c544ebc30c82f5"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpValueCollection.ToString (cognitive 31): HttpValueCollection.ToString has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":458}}}],"partialFingerprints":{"codehealthFindingId/v1":"c84f157342b3b3db6c3b0acba2f14b6100054dc065e3b55ac610761b838a6b57"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateHelpers.CanMatchQueryInterestingly (cognitive 31): UriTemplateHelpers.CanMatchQueryInterestingly has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateHelpers.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8767160a0d650f049639747496e1fe8d7f239e327c700ea9c93c3b90b0fa411"}},{"ruleId":"D2","level":"warning","message":{"text":"EmittedStream.ReadStreamEventsBackwardCompleted (cognitive 31): EmittedStream.ReadStreamEventsBackwardCompleted has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8d8ada7a3fc65b75d4061760c524f54c1253e825fe4db82f4c6acf2b324a494"}},{"ruleId":"D2","level":"warning","message":{"text":"OAuthAuthenticationProvider.ConfigureEndpoints (cognitive 31): OAuthAuthenticationProvider.ConfigureEndpoints has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth/OAuthAuthenticationPlugin.cs"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"62ba53886fa14b58160862d21617a9dbe2ffbfa6d7c599b389b73fe6a46ae3f5"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateCompoundPathSegment.CreateFromUriTemplate (cognitive 30): UriTemplateCompoundPathSegment.CreateFromUriTemplate has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateCompoundPathSegment.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"7db797f1dba0ad13c7c82ee038bf9cdd7bcad6b141f548666e92a38810558793"}},{"ruleId":"D2","level":"warning","message":{"text":"MultiStreamEventReader.ProcessBuffers (cognitive 30): MultiStreamEventReader.ProcessBuffers has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamEventReader.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e43f091a52d57e5540f7cff60b0a96e0d2aaf2fb03435dbf7092c8a0d5abb53"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteFloodProcessor.WriteFlood (cognitive 30): WriteFloodProcessor.WriteFlood has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/GrpcCommands/WriteFloodProcessor.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f5a003c2b76d726f9cc0bd563f9b92a16e9642f7885219d72752e025ad28477"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteState.Write (cognitive 29): WriteState.Write has cognitive complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":1119}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c9a52b1933076189fc5c1a9b71595417c814fa769f591180e2908d2a9e18f8d"}},{"ruleId":"D2","level":"warning","message":{"text":"CoreProjection.GoToState (cognitive 29): CoreProjection.GoToState has cognitive complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/CoreProjection.cs"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"3adcad7a540f2ca9dcf9b698120103461a1b1aa5bf7ebda0e8c2fae1b47a9b5e"}},{"ruleId":"D2","level":"warning","message":{"text":"ReadAllProcessor.Execute (cognitive 28): ReadAllProcessor.Execute has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/ReadAllProcessor.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"43b69d4f8bacef12a55219a6bbc243b8bae319e81066f357b67dfe060b2a93ae"}},{"ruleId":"D2","level":"warning","message":{"text":"MassProjectionsScenario.StartOrStopProjection (cognitive 28): MassProjectionsScenario.StartOrStopProjection has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/MassProjectionsScenario.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0b451fbd0c5cef3845b4ff78596064d183bca976c3b9e1a14ee3d145a0fae82"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteFloodProcessor.WriteFlood (cognitive 28): WriteFloodProcessor.WriteFlood has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteFloodProcessor.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"50fc7d6e4a7ce223ef4583f9a95bab94ff505fc600ca4780d5304d24fe396105"}},{"ruleId":"D2","level":"warning","message":{"text":"MediaType.TryParseInternal (cognitive 28): MediaType.TryParseInternal has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/MediaType.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"23b220a297b97e2b4c1e722b2222ab44f2a54ab60a0b798df4599060d2015cb8"}},{"ruleId":"D2","level":"warning","message":{"text":"TfBased.Handle (cognitive 27): TfBased.Handle has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.TfBased.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"874b3ce9cbb77cf8e3959dfffd493644ad6f27fc0f7b8365e91d385136813e89"}},{"ruleId":"D2","level":"warning","message":{"text":"ReadFloodProcessor.ReadFlood (cognitive 27): ReadFloodProcessor.ReadFlood has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/ReadFloodProcessor.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"53a17213992980e58fc494e227dbc14829dbecc618ca01b0ca71fe4235576b58"}},{"ruleId":"D2","level":"warning","message":{"text":"VariablesCollection.LoadDefaultsAndValidate (cognitive 26): VariablesCollection.LoadDefaultsAndValidate has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":1173}}}],"partialFingerprints":{"codehealthFindingId/v1":"568ee625546a27f3c192d942dedd8a426ce7201c782a0f29313cf7f8e27bb45c"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectionEngineV2.RunReadLoop (cognitive 26): ProjectionEngineV2.RunReadLoop has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionEngineV2.cs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e70f25cfbf0161b7bedfc612d7a963a8aa379fbdaa0ceb078268608dadda280"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplate.IsCandidatePathMatch (cognitive 25): UriTemplate.IsCandidatePathMatch has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":603}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e9ad024e85c97a21012aeb8b3bab62b7e5527a7c375100067c35afe835ada56"}},{"ruleId":"D2","level":"warning","message":{"text":"OAuthAuthenticationProvider.Authenticate (cognitive 25): OAuthAuthenticationProvider.Authenticate has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth/OAuthAuthenticationPlugin.cs"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"1056e2f3b5ea9604fe289101bbdc239047a78510700d166b831ba524f093dc62"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplate.ProcessDefaultsAndCreateBindInfo (cognitive 24): UriTemplate.ProcessDefaultsAndCreateBindInfo has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":714}}}],"partialFingerprints":{"codehealthFindingId/v1":"1478bbf7f7396e0190173db37b6205db55d49a07589227b97c3f780cc949328d"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexBased.ProcessBuffers (cognitive 24): IndexBased.ProcessBuffers has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e4557f19d2cd2aa98f20ec4067a013fef266403e389ab9ca440e71e8de32258"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjForeachForcedCommonNameScenario.InnerRun (cognitive 24): ProjForeachForcedCommonNameScenario.InnerRun has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjForeachForcedCommonNameScenario.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e0eb532f24cad19814a13fd76999b4bcbad851dd47ccd751c898bcd626d3291"}},{"ruleId":"D2","level":"warning","message":{"text":"UserIndexSubscription.ProcessEvents (cognitive 24): UserIndexSubscription.ProcessEvents has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Subscriptions/UserIndexSubscription.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"87ea503f7bff326e5c565cdda2acb533f0a6b8af724aae933c962da34f517fd1"}},{"ruleId":"D2","level":"warning","message":{"text":"UrlUtility.UrlDecodeStringFromStringInternal (cognitive 23): UrlUtility.UrlDecodeStringFromStringInternal has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"051925ecaebef7d5b286897c40a86dc74904428823f88d234dceb348be3ef990"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectionManager.OnProjectionsListReadCompleted (cognitive 23): ProjectionManager.OnProjectionsListReadCompleted has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ProjectionManager.cs"},"region":{"startLine":734}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f6ec199b2c5ac72039261deb4f6855f3b8768fad6931e5fda0838cbc736f2cb"}},{"ruleId":"D2","level":"warning","message":{"text":"ReaderStrategy.Create (cognitive 23): ReaderStrategy.Create has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/ReaderStrategy.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"f96b04444ac189bdc249983e980cc386317ea0d3f467346526a672dbc343dce4"}},{"ruleId":"D2","level":"warning","message":{"text":"RunTestScenariosProcessor.Execute (cognitive 23): RunTestScenariosProcessor.Execute has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenariosProcessor.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"e50d375cb9c4f2423697a4b609db41d094ed1a76455821e5e89778643acc0c47"}},{"ruleId":"D2","level":"warning","message":{"text":"DefaultIndexSubscription.ProcessEvents (cognitive 23): DefaultIndexSubscription.ProcessEvents has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Subscriptions/DefaultIndexSubscription.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"a533de5e60ecf3ad620fbfcf934b22aef104a4b9926da2778c4a255601fd2b79"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateCompoundPathSegment.TryLookup (cognitive 22): UriTemplateCompoundPathSegment.TryLookup has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateCompoundPathSegment.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"7068f79262ab054f6fffb3f806dfb20f98e3b06734ed8cf0288dda6e2463e8fd"}},{"ruleId":"D2","level":"warning","message":{"text":"SystemConsumer.Records (cognitive 22): SystemConsumer.Records has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Consumers/SystemConsumer.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"8829ce69bdb729fda7b5d2832027a102ea4c86d51dd42df85fb575af0239c19f"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectionWrongTagCheck.RunIteration (cognitive 22): ProjectionWrongTagCheck.RunIteration has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjectionWrongTagCheck.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f1d88dda0dcd15a28e0205f9aa3a327c649f34935abace728bf1f8cd280ba94"}},{"ruleId":"D2","level":"warning","message":{"text":"KontextService.HydrateCandidates (cognitive 22): KontextService.HydrateCandidates has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Search/KontextService.cs"},"region":{"startLine":219}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a09e89857bb3c53769f2f23ba65e429a924f7cfd035f56e9d7625c3f7169877"}},{"ruleId":"D2","level":"warning","message":{"text":"CertificateManager.ExportCertificate (cognitive 21): CertificateManager.ExportCertificate has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cc450bbe807ca9beaf122c7aec9a870dea512c9162f5f35bcd71faf8ad2fe8c"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpValueCollection.FillFromString (cognitive 21): HttpValueCollection.FillFromString has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":399}}}],"partialFingerprints":{"codehealthFindingId/v1":"492082e083c0109a62b05adfdfad743d9af95c76adfdb18444a2bd9886b2de01"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexBased.ReadIndexCheckpointStreamCompleted (cognitive 21): IndexBased.ReadIndexCheckpointStreamCompleted has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b285dd3674b48e3604fcc033681ed3567c2829a166256733c0da2467e81e5d1"}},{"ruleId":"D2","level":"warning","message":{"text":"ReaderSubscriptionBase.ProcessOne (cognitive 21): ReaderSubscriptionBase.ProcessOne has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Subscriptions/ReaderSubscriptionBase.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"14dbd1eabf0c4f71b17141f9d4696375f4798e22a9c06c205f09dc3a236f6566"}},{"ruleId":"D2","level":"warning","message":{"text":"TcpTestClient.CreateTcpConnection (cognitive 21): TcpTestClient.CreateTcpConnection has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/TcpTestClient.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5767f8bdeab749b47c6de6bcaf71e366877cb0f660c89f3cb078d47cac2536c"}},{"ruleId":"D2","level":"warning","message":{"text":"TcpConnectionSsl.TrySend (cognitive 21): TcpConnectionSsl.TrySend has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad21cc358496913b6734311c6ebdef827f27cefb031cac8838ee89ccf74b5cd0"}},{"ruleId":"D2","level":"warning","message":{"text":"TcpConnectionSsl.TryDequeueReceivedData (cognitive 21): TcpConnectionSsl.TryDequeueReceivedData has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs"},"region":{"startLine":497}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc5ecdb2a406904222e133df9ef1e4fa82c4615d696f8d52bb33be06349bd001"}},{"ruleId":"D2","level":"warning","message":{"text":"JintProjectionStateHandler.Log (cognitive 20): JintProjectionStateHandler.Log has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1bdac9a4637cdc09e2bd0abac55ff1d7c1a3bc989befb686fe5e9140895ff0f"}},{"ruleId":"D2","level":"warning","message":{"text":"MultiStreamEventReader.Handle (cognitive 20): MultiStreamEventReader.Handle has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamEventReader.cs"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"116bfa28764770468a648a6574a39a5c8e809fdb0ac5667174b5e461196177a7"}},{"ruleId":"D2","level":"warning","message":{"text":"TcpConnection.TrySend (cognitive 20): TcpConnection.TrySend has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnection.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d0173a47133c55578564fc74dde0b1d543655518fa801e26af8de91b3d03cb5"}},{"ruleId":"D2","level":"warning","message":{"text":"EmittedStream.SubmitWriteEvents (cognitive 19): EmittedStream.SubmitWriteEvents has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":445}}}],"partialFingerprints":{"codehealthFindingId/v1":"4799c514d7a948c73d7dcb0459b38c73a2746f61641e1953884009174e6d0674"}},{"ruleId":"D2","level":"warning","message":{"text":"EmittedStream.SubmitWriteEventsInRecoveryLoop (cognitive 19): EmittedStream.SubmitWriteEventsInRecoveryLoop has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":608}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2ea63b712897ea25133c79ef58da6fb5d44495d51b2ce7dacf21943ed379abd"}},{"ruleId":"D2","level":"warning","message":{"text":"EmittedStreamsDeleter.ReadCompleted (cognitive 19): EmittedStreamsDeleter.ReadCompleted has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStreamsDeleter.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"622e48fe483a204d36e034d5741867ae751b241e83552cce2f2fa2e0cdffc8b7"}},{"ruleId":"D2","level":"warning","message":{"text":"ReadAllProcessor.Execute (cognitive 19): ReadAllProcessor.Execute has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/GrpcCommands/ReadAllProcessor.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ec8d930332862df61626c6def75b62ee6b06c7a666f53069803e2c2936fd1f6"}},{"ruleId":"D2","level":"warning","message":{"text":"LengthPrefixMessageFramer.Parse (cognitive 19): LengthPrefixMessageFramer.Parse has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/Framing/LengthPrefixMessageFramer.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"5886e75167229052693ef17f2f9e063ce044cb4ba3b0a8945b9981866717d253"}},{"ruleId":"D2","level":"warning","message":{"text":"LengthPrefixMessageFramerWithBufferPool.Parse (cognitive 19): LengthPrefixMessageFramerWithBufferPool.Parse has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/Framing/LengthPrefixMessageFramerWithBufferPool.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"a82d7241d549552d32e3e77ec9b440d000fdfcf95c86884c5a25eb95135acb86"}},{"ruleId":"D2","level":"warning","message":{"text":"CohereBedrockEmbeddingGenerator.ParseEmbeddings (cognitive 19): CohereBedrockEmbeddingGenerator.ParseEmbeddings has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Embeddings/CohereBedrockEmbeddingGenerator.cs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"49399b2f391a3a8dadfa1dbceda2fc87def82a046a135580d11c72b2621c8004"}},{"ruleId":"D2","level":"warning","message":{"text":"CheckpointTag.OperatorDeclaration (cognitive 18): CheckpointTag.OperatorDeclaration has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c99c4cfff4b7e6603186f21559253e233eaf1ab024678a95bcf8afcdf62494f"}},{"ruleId":"D2","level":"warning","message":{"text":"CheckpointTag.OperatorDeclaration (cognitive 18): CheckpointTag.OperatorDeclaration has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c99c4cfff4b7e6603186f21559253e233eaf1ab024678a95bcf8afcdf62494f"}},{"ruleId":"D2","level":"warning","message":{"text":"StreamEventReader.Handle (cognitive 18): StreamEventReader.Handle has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/SingleStream/StreamEventReader.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5f23281d1372e836f481c644003f543ed0853ef6fad580060356a76606342e0"}},{"ruleId":"D2","level":"warning","message":{"text":"StagedProcessingQueue.RemoveCompleted (cognitive 18): StagedProcessingQueue.RemoveCompleted has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/StagedProcessingQueue.cs"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"57a985f1b046042aa7efe9400658632a1cbae540d39466406eccf3deae3f3188"}},{"ruleId":"D2","level":"warning","message":{"text":"MultiWriteFloodWaitingProcessor.WriteFlood (cognitive 18): MultiWriteFloodWaitingProcessor.WriteFlood has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/MultiWriteFloodWaiting.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d25b3065df881284e627470796b78be7ada3c3fdca28ced3378bfc0693a80e2"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteFloodWaitingProcessor.WriteFlood (cognitive 18): WriteFloodWaitingProcessor.WriteFlood has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteFloodWaitingProcessor.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"8549517b00332fef4e54d6b4a55275ceba4ef7fb0c0ac63209c81f2a8372893e"}},{"ruleId":"D2","level":"warning","message":{"text":"LdapsCredentialValidator.TryValidateCredentials (cognitive 18): LdapsCredentialValidator.TryValidateCredentials has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps/LdapsCredentialValidator.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fc5b1add2010faed1300920f21bfde82753736b221e10221ff1b67b4357559b"}},{"ruleId":"D2","level":"warning","message":{"text":"SearchTool.Search (cognitive 18): SearchTool.Search has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Mcp/Inquiry/SearchTool.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"77b984a84c9d231a3d2407d22e4a8d54ff5cce9ce6cf8c32dc714db1b4dd8435"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkspaceProjection.Accumulate (cognitive 18): WorkspaceProjection.Accumulate has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Workspaces/Registry/WorkspaceProjection.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce9dd920bfbdbccdf807ea7bf44ffc2caddb1c5f21c8d73e70fd8a0e004a8b66"}},{"ruleId":"D2","level":"warning","message":{"text":"Helper.FormatBinaryDump (cognitive 17): Helper.FormatBinaryDump has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/Helper.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d8035ed779a5b6d93af00214c62b4a2fd0465aee904e628e2232e106dabd6a9"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTable.ConstructFastPathTable (cognitive 17): UriTemplateTable.ConstructFastPathTable has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTable.cs"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"e74cb0e8c24fbaa2e137bdf1c8521160b7017de6af6ab24ed536fd8cf93a65f4"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTrieNode.Add (cognitive 17): UriTemplateTrieNode.Add has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"b475d8b1379cf54c8bfb31746794ada4368b0824486ff95fd42bb01b80f971b3"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTrieNode.GetMatch (cognitive 17): UriTemplateTrieNode.GetMatch has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"544438452906c178d1e15ef97f8313e9906b53e41fae7cd55148dd6ce777d4d8"}},{"ruleId":"D2","level":"warning","message":{"text":"InterpreterRuntime.FromCategory (cognitive 17): InterpreterRuntime.FromCategory has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":524}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d4c01e4ca9e6f772aedffc1a949df120f86d3ad0ef7420e2c84bfe48d08d94"}},{"ruleId":"D2","level":"warning","message":{"text":"CheckpointTagExtensions.ParseCheckpointTagCorrelationId (cognitive 17): CheckpointTagExtensions.ParseCheckpointTagCorrelationId has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTagExtensions.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"905edfb090663d59fc344d127b638c40bc24db12ddd2ec4afc80810accc64d3b"}},{"ruleId":"D2","level":"warning","message":{"text":"MultiStreamMultiOutputCheckpointManager.BeginLoadPrerecordedEventsChunk (cognitive 17): MultiStreamMultiOutputCheckpointManager.BeginLoadPrerecordedEventsChunk has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamMultiOutputCheckpointManager.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"992d7d7f0fd90f40306eec7195386dc325f40f17f93eb776e1170238918f2007"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteFloodClientApiProcessor.WriteFlood (cognitive 17): WriteFloodClientApiProcessor.WriteFlood has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteFloodClientApiProcessor.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f2d1e64d6cfae84458b73ca631dafbcb326c2249d0bf94f25359cedff98b514"}},{"ruleId":"D2","level":"warning","message":{"text":"WriteProcessor.Execute (cognitive 17): WriteProcessor.Execute has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteProcessor.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"29e2ccd79bb67b491c6f2795eec9857b47ee33faa2a31eacab83a8b097294405"}},{"ruleId":"D2","level":"warning","message":{"text":"ConnectorsControlService.Execute (cognitive 17): ConnectorsControlService.Execute has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsControlService.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"10eaa94653eb4995fa1cd774c7eb1e226328d6cb0deef088b2932b97738ef06c"}},{"ruleId":"D2","level":"warning","message":{"text":"SubscriptionBase.RunSubscription (cognitive 17): SubscriptionBase.RunSubscription has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Indexing/SubscriptionBase.cs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8b1739c4ba0c8e3114e9c3cb9347b8e651f29f6ea3d5cbb0f8bf34184ecbd66"}},{"ruleId":"D2","level":"warning","message":{"text":"KontextService.DiscoverStreams (cognitive 17): KontextService.DiscoverStreams has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Search/KontextService.cs"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9cdf79474f19558263fc77fe1561881779ac75ad6dfd3cabb25c5ca9f2314fc"}},{"ruleId":"D2","level":"warning","message":{"text":"SearchAlgorithms.MmrSelect (cognitive 17): SearchAlgorithms.MmrSelect has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Search/SearchAlgorithms.Mmr.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1fa0275a1379b7cae73dda04dca05b99d55c24d184df35d27381970264807ea"}},{"ruleId":"D2","level":"warning","message":{"text":"UriTemplateTrieNode.FindAnyUriTemplate (cognitive 16): UriTemplateTrieNode.FindAnyUriTemplate has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":392}}}],"partialFingerprints":{"codehealthFindingId/v1":"467fbd74265f95cb669fde4b86c87d05feb5f4406307b7374e6037da5398b818"}},{"ruleId":"D2","level":"warning","message":{"text":"StagedProcessingQueue.GetEntryToProcess (cognitive 16): StagedProcessingQueue.GetEntryToProcess has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/StagedProcessingQueue.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a45f92d43fbfd1cb3606912bffeffbf7888e6e9e4649315aeaa5b1d48151cc4"}},{"ruleId":"D2","level":"warning","message":{"text":"StagedProcessingQueue.SetEntryCorrelation (cognitive 16): StagedProcessingQueue.SetEntryCorrelation has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/StagedProcessingQueue.cs"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"30944a23b8fede94db8130b381f91220a2116e60f983811a68b1de9967e95cb3"}},{"ruleId":"D2","level":"warning","message":{"text":"DvuBasicProcessor.Execute (cognitive 16): DvuBasicProcessor.Execute has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DvuBasic/DvuBasicProcessor.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"f703b1b0380def0c7556090b91a2ab60a664b24f867a21d01ee8046d04ff2965"}},{"ruleId":"D2","level":"warning","message":{"text":"PortsHelper.InitPorts (cognitive 16): PortsHelper.InitPorts has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/PortsHelper.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"15029ad5600b7fb4bf05e2f796f964a9729d9518f6f0bcfea716d7f95ae84b9a"}},{"ruleId":"D2","level":"warning","message":{"text":"CertificateUtils.FindCandidateRoots (cognitive 16): CertificateUtils.FindCandidateRoots has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.UserCertificates/CertificateUtils.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"437b54635501a04cb3b416e116d5104d3d4d4976fc3ffde1f736741b2938c6f2"}},{"ruleId":"D2","level":"warning","message":{"text":"MiniNode.MiniNode.ctor (cognitive 16): MiniNode.MiniNode.ctor has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/Helpers/MiniNode.cs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"46f2bd675d0fb53cbb9602642b889f4ab1b14cf3ca27916b3cdb611d207c4b97"}},{"ruleId":"D2","level":"warning","message":{"text":"ImportValidator.Validate (cognitive 16): ImportValidator.Validate has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Mcp/Workspace/ImportValidator.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7b94de575d381144f063e8e5fdffe5b0acdcc6aec8dc7252883b8698ea3dc6a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: DevCertificates/CertificateManager.cs: FileTooLong \u2014 613 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"54589cd5861a16b6ab993a4a91bc8419c79f1b8b7dd6679a389358578f671bfd"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: System.UriTemplate/UriTemplate.cs: FileTooLong \u2014 913 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"52d91dea71ac0bf8dbb775ba14d7dbf285eb5c5ad1e568355002d0afe980242e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Interpreted/JintProjectionStateHandler.cs: FileTooLong \u2014 863 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4d60e98f2a915bd60e8bb2d78758dbfc444e7d945f155073eaf086811c08260"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Management/ManagedProjection.cs: FileTooLong \u2014 832 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjection.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a92c27fe903718f0b4812ffde4c0e60773b5eae9835a0894ffac471ddad9151"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Management/ProjectionManager.cs: FileTooLong \u2014 1054 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ProjectionManager.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"efacb7d98b1c07402d99ae5d2c166dd09270e58442bc10c5f1039d89bd6caf40"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Messages/ProjectionManagementMessage.cs: FileTooLong \u2014 528 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Messages/ProjectionManagementMessage.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"40448ccf94de9ed7c0d806cfcc92455684b322e90ba5252e3405e98ab8f52ed3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Checkpointing/CheckpointTag.cs: FileTooLong \u2014 601 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"268aaec3e52bb5556aab97b0539a54dc98392d8a204425ecadb51062385f490d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Emitting/EmittedStream.cs: FileTooLong \u2014 529 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2221188da681b41a6e18e1f23daadfc46520a57fd3b4893f495e8b643f4d2cf"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: CertificateManager: ClassTooLong \u2014 600 lines, 27 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"403148347d8805316d400ebed77a157b0831ed641f04f2847c6e2baf268e74e0"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CertificateManagerEventSource: TooManyMethods \u2014 147 lines, 60 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"740b1223926c27ce7be4bad68308cfaa28edfc65c1943decdd79443802d9f052"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: UriTemplate: ClassTooLong \u2014 902 lines, 27 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"697b6cb855ef466b380222cc1c316ef2ea1981a86bd963db8205c2952482a7da"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: UriTemplateTrieNode: ClassTooLong \u2014 447 lines, 17 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"9dc53d6a5bc20a7d481c1d0ed9bcc6e79af79b731068f6caa07e13b8cdda0381"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: JintProjectionStateHandler: ClassTooLong \u2014 833 lines, 27 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a560abaff69271571f323eeb5c818f1c9f2ba601a418b3e6bc074f6d2f999e3d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ProjectionsController: TooManyMethods \u2014 474 lines, 58 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Http/ProjectionsController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac15df449bf6dee021e46d9efec916c8a4794c2c2e5bf8afb90b8961b48700d0"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ManagedProjection: TooManyMethods \u2014 773 lines, 60 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjection.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a46bd3679bce142fb285ac7f3211ffbbfe1e3165dbc8a252d51c6af72b4beb86"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ProjectionManager: TooManyMethods \u2014 1031 lines, 61 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ProjectionManager.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb9b29c55bbe27afe3e328703c29899ebb6a5dff4a0888b79969e80b970e3c77"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ProjectionManagementMessage: ClassTooLong \u2014 517 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Messages/ProjectionManagementMessage.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"be0120412ddc982f02c31c0b88e5839f900e8ec127559c591198938d8f31a029"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CheckpointTag: TooManyMethods \u2014 591 lines, 44 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"c11a58f495315e624429fbd73f750e59488af1d16f29478472a29741f5ca926e"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CoreProjectionCheckpointManager: TooManyMethods \u2014 305 lines, 33 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Checkpointing/CoreProjectionCheckpointManager.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"caf7f862b55e695a9c28bb36220d5b6714da544bdce599716a9806f0f181982d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CoreProjection: TooManyMethods \u2014 457 lines, 42 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/CoreProjection.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9739901f9e908992e135e71df6e03bd128a81d252b6d5f572b66358133a34fb"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: EmittedStream: TooManyMethods \u2014 544 lines, 40 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"7698bddb14e231c56949017647e58d8c5bb01890e8cf254c732a972ba4284d8e"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: EventSubscriptionBasedProjectionProcessingPhase: TooManyMethods \u2014 423 lines, 48 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventSubscriptionBasedProjectionProcessingPhase.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"28815714344ba832ba72907ed9f23541025cf71113f1709fb46e7653e12d9b8e"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ScenarioBase: ClassTooLong \u2014 402 lines, 28 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ScenarioBase.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed18b09c1af4acc171eabeb7b4242f81d7606cdfdd59c81c0e1d83fc74fbc6b5"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: TcpConnectionSsl: ClassTooLong \u2014 429 lines, 24 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f05ffb829e03be3c11134d9ba49c8e3b3af1aeab98e467b6d5082dd0829433c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: FlightSqlServer: TooManyMethods \u2014 453 lines, 38 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/FlightSql/FlightSqlServer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5b83deb3f1820ac9c63a2de8cc1efd1097d42770341160f0201430d40c33673"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (43 lines \u00D7 2): src/KurrentDB.TestClient/Commands/PingFloodProcessor.cs:47-89 | src/KurrentDB.TestClient/Commands/PingFloodWaitingProcessor.cs:46-80"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/PingFloodProcessor.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcbf8e015573e35a30e6ef30d1121e9de794cee3164f9df0d44318f63f15f813"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): src/KurrentDB.Plugins/Diagnostics/DiagnosticsListeners.cs:121-146 | src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/GenericDiagnosticsListener.cs:25-50"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/DiagnosticsListeners.cs"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6dd1fe59e2cf4fa3736e94013004017b79af53fea5968621c6c9e3645df15bd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/Connectors/KurrentDB.Connectors/Infrastructure/System/Node/NodeBackgroundService.cs:54-71 | src/SchemaRegistry/KurrentDB.SchemaRegistry/Infrastructure/System/Node/NodeBackgroundService.cs:53-70"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/System/Node/NodeBackgroundService.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"0410aa82839f4df43e953c179a1c51fafec1dbd9544bf82443a763c8d7be828c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/KurrentDB.Common/Utils/CertificateExtensions.cs:205-221 | src/KurrentDB.Auth.UserCertificates/CertificateExtensions.cs:17-33"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/CertificateExtensions.cs"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"07564e07f596fe99bfde4215b1c4dcb1f1056f36db3e06769bdf96deeffc6022"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/KurrentDB.Surge/Eventuous/SystemEventStore.cs:103-119 | src/KurrentDB.Surge/Eventuous/SystemEventStore.cs:143-158"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Eventuous/SystemEventStore.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e6ffad22ab2b18147d81c5edaa8ca9b62925c007881ae1e0ed09565bcbd71ff"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/Connectors/KurrentDB.Connectors/Infrastructure/RpcExceptions.cs:39-55 | src/SchemaRegistry/KurrentDB.SchemaRegistry/Infrastructure/Grpc/RpcExceptions.cs:35-51"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/RpcExceptions.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c311ace842fc196630af40b694fafa5fd2903fdce76b16bc1e24f88d68b98f8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/KurrentDB.SecondaryIndexing/Indexes/User/Management/UserIndexQueryService.cs:95-111 | src/KurrentDB.SecondaryIndexing/Indexes/User/Management/UserIndexState.cs:14-29"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/User/Management/UserIndexQueryService.cs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9ac5d82dfafcf9feaea048aa27a7491e603717c44990a90bf65fb9cd21ed638"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/KurrentDB.Common/DevCertificates/CertificateManager.cs:198-209 | src/KurrentDB.Common/DevCertificates/CertificateManager.cs:257-271"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"c42aba1540929984fa33f7ab3d5231c714eff766a809bc4b7432f5aee778ed45"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/KurrentDB.TestClient/Commands/RunTestScenarios/LoopingProjectionKillScenario.cs:40-53 | src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjectionWrongTagCheck.cs:36-50"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/LoopingProjectionKillScenario.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed40ca07d31040fbdda48f417e8b3191001a56349290a5d464f188f2d0e0370f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/KurrentDB.Common/Utils/CertificateExtensions.cs:239-252 | src/KurrentDB.Auth.UserCertificates/CertificateExtensions.cs:51-64"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/CertificateExtensions.cs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"220e9e6e67b2f330e9b1d6acff49b66b7bd5b6d153554da0ebbd1be7c2117b52"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/KurrentDB.TestClient/Commands/RunTestScenarios/LoopingProjTranWriteScenario.cs:62-75 | src/KurrentDB.TestClient/Commands/RunTestScenarios/LoopingScenario.cs:44-57"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/LoopingProjTranWriteScenario.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"1636367290bb71fd0782ce94cf4eb6824a734f8e2e0a288136a85da62ae6d686"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/KurrentDB.Transport.Tcp/TcpConnection.cs:365-378 | src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs:557-570"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnection.cs"},"region":{"startLine":365}}}],"partialFingerprints":{"codehealthFindingId/v1":"66f151421086c54d19872a913be1bb7485161f9b34676b3de310c9a75b522b48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 5): src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Delete.cs:41-53 | src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Disable.cs:40-52 | src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Enable.cs:38-50 | src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Reset.cs:38-50 | src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Update.cs:48-60"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.Delete.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d15e6b978c368dda651e294b7a85b9d1d62654d80662dbb841d7938c8fe5bff"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs:140-152 | src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs:200-212"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"972dd4740e09446c5be762b47efac9dd997afb48c0640a430f0c5e4cbedff788"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/Connectors/KurrentDB.Connectors/Infrastructure/System/Node/SystemStartupTasks.cs:25-37 | src/SchemaRegistry/KurrentDB.SchemaRegistry/Infrastructure/System/Node/SystemStartupTasks.cs:24-36"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/System/Node/SystemStartupTasks.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f24b113e7d229460601cff5ee42414e8056afda3dc3b6441cf8b96cf9da78f2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/KurrentDB.SecondaryIndexing/Indexes/Default/ExpandRecordFunction.cs:23-35 | src/KurrentDB.SecondaryIndexing/Indexes/User/ExpandRecordFunction.cs:23-35"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/Default/ExpandRecordFunction.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"85368d5f388dee7adb37b66ef2b19ffa0205ebc8db33de098fee5347a1be9183"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs:48-59 | src/KurrentDB.TestClient/Commands/WriteFloodProcessor.cs:44-55 | src/KurrentDB.TestClient/GrpcCommands/WriteFloodProcessor.cs:45-56"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"d71efd3bebd36f39ca2ebd606991d2cb3f3e5f6aca76fa023f2c071e60d46ddd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/KurrentDB.Common/Utils/CertificateExtensions.cs:304-315 | src/KurrentDB.Auth.UserCertificates/CertificateExtensions.cs:113-124"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/CertificateExtensions.cs"},"region":{"startLine":304}}}],"partialFingerprints":{"codehealthFindingId/v1":"45db31e1b510b2f4199e62cb5296dc83d2539beabd586941b78c36fd810fb440"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs:901-912 | src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs:930-941"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":901}}}],"partialFingerprints":{"codehealthFindingId/v1":"b14e1c09e5323fc50b7b9ab546a62e79c20554c580442cb3e9252119ac9d808a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs:78-88 | src/KurrentDB.TestClient/GrpcCommands/WriteFloodProcessor.cs:81-92"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"63f5f67022e131d0b2b89031060068af9db40e71a24becd508d2b575bfe676fe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/KurrentDB.TestClient/Commands/PingFloodProcessor.cs:25-36 | src/KurrentDB.TestClient/Commands/PingFloodWaitingProcessor.cs:23-34"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/PingFloodProcessor.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"657794e124a8ce3948ad131484ba963616c4c217ec2fe5c0c58bbff8a8b02ce7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/KurrentDB.TestClient/Commands/RunTestScenarios/ScenarioBase.cs:437-448 | src/KurrentDB.TestClient/Commands/RunTestScenarios/ScenarioBase.cs:474-485"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ScenarioBase.cs"},"region":{"startLine":437}}}],"partialFingerprints":{"codehealthFindingId/v1":"611d62e077c3a2736792593a455c0c92a649e2d0364da036c984a7702bea8252"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/KurrentDB.TestClient/Commands/WriteFloodProcessor.cs:28-39 | src/KurrentDB.TestClient/GrpcCommands/WriteFloodProcessor.cs:29-40"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/WriteFloodProcessor.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"30a462556534399354e89442112fd7ef0cbe7d5c69288365b1b7a44fdd17c9e2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Validation/NJsonSchema/NJsonSchemaCompatibilityManager.cs:118-129 | src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Validation/NJsonSchema/NJsonSchemaCompatibilityManager.cs:157-168"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Validation/NJsonSchema/NJsonSchemaCompatibilityManager.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"e57345d5f87cd2153b54c322c9e435ebcea1e53c84cd88f7958a2af2eb943c42"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/KurrentDB.TestClient/Commands/DeleteProcessor.cs:44-52 | src/KurrentDB.TestClient/Commands/WriteProcessor.cs:68-78"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DeleteProcessor.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdf6c16d617a99eb08d9f1d17ac6cc2a7abbbe5dbc820fcee8ce0c7b7983f235"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/KurrentDB.Transport.Tcp/TcpConnection.cs:332-342 | src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs:517-527"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnection.cs"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bedd2db732089f6548583337f6e48a5c77b1f426acab5dc77cf75561284cadf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/KurrentDB.POC.ConnectedSubsystemsPlugin/InternalClient.cs:102-112 | src/KurrentDB.POC.ConnectedSubsystemsPlugin/InternalClient.cs:266-276"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.POC.ConnectedSubsystemsPlugin/InternalClient.cs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d0c6998b5b6502f5431e231fc335041ac93bba0bc7c46e58d29a9e171ca38d6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs:166-175 | src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs:227-236"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1b7ab4bef0c04ed20d27201a78a418b4dcabfccf1c15a3c54ee961cc5c1a639"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs:194-203 | src/KurrentDB.TestClient/GrpcCommands/WriteFloodProcessor.cs:174-183"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"376f3b776c6a05f72666c0466ac901dcaef6a4548be796e06125f86c9308140f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/KurrentDB.TestClient/Commands/MultiWriteProcessor.cs:58-67 | src/KurrentDB.TestClient/Commands/ReadProcessor.cs:48-56"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/MultiWriteProcessor.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"acac2cb1d054c27b7534f8b797b1733597cb3089a68c4b9214b62af7d3c3590a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs:372-381 | src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs:436-445"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs"},"region":{"startLine":372}}}],"partialFingerprints":{"codehealthFindingId/v1":"eab94ba0e617ebb5e0ffc045b6cba3306417b894d0dcd3ce0f613421b44b97a6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/KurrentDB.POC.ConnectedSubsystemsPlugin/InternalClient.cs:86-95 | src/KurrentDB.POC.ConnectedSubsystemsPlugin/InternalClient.cs:250-259"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.POC.ConnectedSubsystemsPlugin/InternalClient.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"c908e19dd46687d17544afb38a9fa134e156231ff48ba73f5392c7d361fad1f8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs:308-316 | src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs:331-338"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":308}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3e8eff6d4e8b727fc7659772b5bbb88027bd9659cff48b877619e2e1e59dc16"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/KurrentDB.TestClient/Commands/DvuBasic/DvuBasicProcessor.cs:67-75 | src/KurrentDB.TestClient/Commands/DvuBasic/DvuBasicProcessor.cs:77-85"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DvuBasic/DvuBasicProcessor.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c611a3c7c629f21e58d9cf37fba60978ee80a69fef6f0bc650c27711d1f1779"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/KurrentDB.AutoScavenge/Clients/ProxyAutoScavengeClient.cs:53-61 | src/KurrentDB.AutoScavenge/Clients/ProxyAutoScavengeClient.cs:73-81"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Clients/ProxyAutoScavengeClient.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"76cb9b79d07f500c1bbe5cdbe3c3e89eb1fa32701c1345e3f1f6fd471adc259b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/KurrentDB.Security.EncryptionAtRest/Transforms/AesGcm/AesGcmChunkReadStream.cs:265-273 | src/KurrentDB.Security.EncryptionAtRest/Transforms/AesGcm/AesGcmChunkWriteStream.cs:201-209"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Security.EncryptionAtRest/Transforms/AesGcm/AesGcmChunkReadStream.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"e416145d687810d497a72badeae1f367098ebc4091481a17784b744b342178f3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs:335-342 | src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs:361-368"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"184ad21206e52da7a0fadd8c544936da0ecf25c89c00dd4bce87c3900f9daa75"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/KurrentDB.TestClient/Commands/DeleteProcessor.cs:57-63 | src/KurrentDB.TestClient/Commands/MultiWriteProcessor.cs:72-78"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DeleteProcessor.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"669efedbd1a79d6a459bbd0246d2370db4c8d92d9844d52a6afb23688ec3e961"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjectionsKillScenario.cs:96-102 | src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjForeachForcedCommonNameScenario.cs:168-174"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ProjectionsKillScenario.cs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"dab0717c10aad10be79016432568702db1a3dec4cc9b9a161b5421a5948cba53"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/KurrentDB.Testing/Sample/HomeAutomation/HomeAutomationDataSet.cs:122-128 | src/KurrentDB.Testing/Sample/HomeAutomation/HomeAutomationDataSet.cs:169-175"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Sample/HomeAutomation/HomeAutomationDataSet.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"cff4cacc3caad2e1e50d1ce9fe7936c5d21456d39581c67932eea8c38510d393"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled/AndAssertion.cs:29-35 | src/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled/OrAssertion.cs:25-31"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled/AndAssertion.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"abb842790bdfb3871fcf59c453ad1d54e8340e9a558214f2e40b28e6895177f8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/KurrentDB.Core.Testing/Http/TestController.cs:27-32 | src/KurrentDB.Core.Testing/Http/TestController.cs:33-38"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/Http/TestController.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"28488d06086a46c0c59c9625ee3cff71ecfad6fbd1b67ffc700eb78c180dbc90"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/KurrentDB.TestClient/Commands/RequestMonitor.cs:53-57 | src/KurrentDB.TestClient/Commands/RequestMonitor.cs:58-62"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RequestMonitor.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5195d2e0085a88d2ca02c42bc80d9a10447dce6f3348455ef8729a6db0669e6"}},{"ruleId":"D5","level":"warning","message":{"text":"Unstable project KurrentDB: KurrentDB has instability 0.85 with 4 dependents."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7afe1de7f3f6a544151fee66429f92533db007f654fe006a12388d327c9b5c96"}},{"ruleId":"D5","level":"warning","message":{"text":"Unstable project KurrentDB.Plugins.Kontext: KurrentDB.Plugins.Kontext has instability 0.83 with 1 dependents."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"62d2f213b249209138f19b6e78043c95a0f8304df6daff6768b1d21d137265dc"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.BufferManagement: KurrentDB.BufferManagement: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9611644ffd4a3e5f3ea8eb9e37b8e3b44d8ddfcd07298a9ebec196727e9ab652"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.LogCommon: KurrentDB.LogCommon: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"60e2784294d72b7f40fe7b9aaf2ea7498c59242374c929c0561891fcfb250155"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.PluginHosting: KurrentDB.PluginHosting: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a8f859bb3ad9b195997e2907caad50a6c5bd6ec1f3564571594b7191bb093c47"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.SourceGenerators: KurrentDB.SourceGenerators: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b77ee049aef4c822e9ea7f782b5f36fb750d75b178efcf32ec59e8d690f26533"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.SystemRuntime: KurrentDB.SystemRuntime: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f687610649f014762f9849b2b6a30ee340deb4d819299581d5aa445b5b770d13"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.UI: KurrentDB.UI: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ba6a63eb8c1f1d5e4ff47d57708cbf0545b8f1f83fe99c96be294142097d8dcd"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.NETCore.Compatibility: KurrentDB.NETCore.Compatibility: abstractness 0.06, instability 0.00, distance 0.94 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8d4a284608166af9462680365408075197c92e0a5a3672878ec20a4f94adf344"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.Common: KurrentDB.Common: abstractness 0.03, instability 0.06, distance 0.90 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b01b804d6914fb9c091c0eca828b70cf7ee191d73af6fe426e5d40900c64f4e3"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.Plugins.TestHelpers: KurrentDB.Plugins.TestHelpers: abstractness 0.00, instability 0.10, distance 0.90 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6dd992683944dd999a721af8561c51175c8ba6ccdce71a864fa239e38f4c76cb"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.Testing: KurrentDB.Testing: abstractness 0.12, instability 0.00, distance 0.88 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"be81c3ba825079b9d3f59c03cfe975e08d9848c336a73bff15c91e51afdebe56"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.Logging: KurrentDB.Logging: abstractness 0.00, instability 0.25, distance 0.75 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a3d0ed700f08cefa265f2abeb6b9e6d32c07bb10eecfdde8896ca8dd67369a1e"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: KurrentDB.Core.Testing: KurrentDB.Core.Testing: abstractness 0.00, instability 0.29, distance 0.71 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"21a16c6a19c22ae896fa47a933c935a60beae6178f85725b78bd9fafccc951e7"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: FakeReadIndex (LCOM4 27): FakeReadIndex\u0027s methods form 27 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/FakeReadIndex.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"32ea44b32b4a7dd1b62feddf52e00e65d9ace92497c1b1d94d2f951181fcc092"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ByCorrelationId (LCOM4 12): ByCorrelationId\u0027s methods form 12 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Standard/ByCorrelationId.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad1740fcea685382dad4f64d98cff2b7e47189a6aa87b40b4a4a262f36a563c"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: IndexEventsByEventType (LCOM4 12): IndexEventsByEventType\u0027s methods form 12 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Standard/IndexEventsByEventType.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"83fc2d4583adee191c17b003cbb2724f06fff345a44084a649cde278777827dc"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CheckpointTag (LCOM4 11): CheckpointTag\u0027s methods form 11 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"5170c7374c46cd4788136d02455c1e0d97d4bad295ea0517ac996b5c19a84105"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CategorizeEventsByStreamPath (LCOM4 11): CategorizeEventsByStreamPath\u0027s methods form 11 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Standard/CategorizeEventsByStreamPath.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8187eb4826f29394f6619a7195e3ab1118a3504b9eb25f08507bcedf6534e3b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CategorizeStreamByPath (LCOM4 11): CategorizeStreamByPath\u0027s methods form 11 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Standard/CategorizeStreamByPath.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e2001e0f443f564a8cc0671240760ad57a8ef41a93af2b62c928d5dbdb5bcc2"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SourceDefinitionBuilder (LCOM4 9): SourceDefinitionBuilder\u0027s methods form 9 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/SourceDefinitionBuilder.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9d92b67939f87ed418f3d6fd0eed4c7704888dea76fd2b561a81f64db72c891"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ProjectionNamesBuilder (LCOM4 7): ProjectionNamesBuilder\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/ProjectionNamesBuilder.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e55d3a03226229a773a47d14e6b5779cb40c701ce194d2f14c230eaafdc828a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: WriteQueryResultProjectionProcessingPhaseBase (LCOM4 7): WriteQueryResultProjectionProcessingPhaseBase\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/WriteQueryResultProjectionProcessingPhaseBase.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"642ff065d1426374439b1f1c95b6187c437eee7fcb7a0f3d817d496bd18f1cf7"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: V1ProjectionProcessingStrategy (LCOM4 7): V1ProjectionProcessingStrategy\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/V1ProjectionProcessingStrategy.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b179f50ed14eb6d9e0e37404d48dc9e9e7dcf626501a5f1412014f600f58a56"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SingleSourceDiagnosticsListener (LCOM4 7): SingleSourceDiagnosticsListener\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/DiagnosticsListeners.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"79fbed774fc47bc3a69baaf38fc2c39ce294f685a4317b5b92667c8b4185d576"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ChunkDataReadStream (LCOM4 7): ChunkDataReadStream\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Transforms/ChunkDataReadStream.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"0798a3b9d33612d71228bffd0f67c480bcee3d811641c5fa274b42ca17d47e4e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SingleSourceDiagnosticsListener (LCOM4 7): SingleSourceDiagnosticsListener\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/SingleSourceDiagnosticsListener.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"f400d303846f449fe80e3ca0a96666445ad1ec4689503eaf6459f9d279d68e9c"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ControlPlaneMetrics (LCOM4 7): ControlPlaneMetrics\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/Diagnostics/ControlPlaneMetrics.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"46e5db4ec8d88b83c042baa1b0254e79a1e1377d7d856e0ae07697e9dde46ffc"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: IndexingStatus (LCOM4 7): IndexingStatus\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Indexing/IndexingStatus.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f816c65ec6ecc8a2440389f54e1f22f5d3307a630250aaea31ba5c500d0fec3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UriTemplateDefaults (LCOM4 6): UriTemplateDefaults\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":794}}}],"partialFingerprints":{"codehealthFindingId/v1":"d77cf5e9c66ccd69ba5f58ce14b76386a9eed2430c1083756942ebd6b52eac99"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UriTemplatePathSegment (LCOM4 6): UriTemplatePathSegment\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplatePathSegment.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"b821b11b4fbe27b42ce7b07fdb3f3f48d37dbe3cafd47d83cbdab6047b08d5e8"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: PositionTagger (LCOM4 6): PositionTagger\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Checkpointing/PositionTagger.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"72771ba410f9926a9b4929e9ae4de2e951ea646eea80f0f1b39427700d5f97d1"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: FeedElement (LCOM4 6): FeedElement\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/Atom/Feed.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"09ea8c36f7f6acc39345fafdeb305a1112254d25f87f4a84ce8674ec3c2f6bda"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: RawMessageFormatter (LCOM4 6): RawMessageFormatter\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/Formatting/RawMessageFormatter.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"273bc9af87f06371127082d3676faef6cdd2d936610e1eb8a2642bd2cec3adb8"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ChunkDataStream (LCOM4 6): ChunkDataStream\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Transforms/ChunkDataStream.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"97098acb87454f7b574c10149774eaebf337423dbd8665e4f7e0c83ca30b6f70"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: NonClosingStreamWrapper (LCOM4 6): NonClosingStreamWrapper\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Security.EncryptionAtRest/Transforms/AesGcm/NonClosingStreamWrapper.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"a85b3bcb10522c5127fb76d71f0750439bf59977dcba19afc8b6a58fdbe3a267"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UserIndexSql (LCOM4 6): UserIndexSql\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/User/UserIndexSql.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fda1f5cbde37f8e8ceb79fcb8ba055bf02116f8f4280875650fdeb4289e7b84"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: FakeCollectingQueuedHandler (LCOM4 6): FakeCollectingQueuedHandler\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/Bus/Helpers/FakeCollectingQueuedHandler.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4384e54b04773572e1d925fdfeb20919122082b43fc23f1f36943622c27261d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ProjectionManagement (LCOM4 5): ProjectionManagement\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Grpc/ProjectionManagement.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"898b2c5641872ebb9eb8e92ef3243f321b2b16f28a43e0f5eb2ed5c0d665f9f3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CoreProjectionV2 (LCOM4 5): CoreProjectionV2\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/CoreProjectionV2.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"7570f3c9a5df652b4a5b5923eab85218d01fca55c856a1eb007637c7f7dca3e9"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ScenarioBase (LCOM4 5): ScenarioBase\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/RunTestScenarios/ScenarioBase.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"91fa895129794fae04c05c74ee7a624f2fc3083706adeea5bd8ad230fe259c30"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DisposableBuilder (LCOM4 5): DisposableBuilder\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Disposable.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"1802e7537341724284550c5636cb5136ead73e6d3345285e699c572fe4d26c31"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AuthenticationRequest (LCOM4 5): AuthenticationRequest\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Authentication/AuthenticationRequest.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"5749f333acdba1f170046ac1e7209dc94112cbb28ab00c4e60144ed786b214d4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MultiSourceDiagnosticsListener (LCOM4 5): MultiSourceDiagnosticsListener\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/DiagnosticsListeners.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5544b37b4b6824e833df0a122676e1c2a6f97c9de93572fe1c34cba7e45fddca"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: PluginDiagnosticsDataCollector (LCOM4 5): PluginDiagnosticsDataCollector\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/PluginDiagnosticsDataCollector.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"15fe14465cd98a7fa63f26b1c005f8c0c0e35892557d6539fda655ce41188ab5"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ChunkDataWriteStream (LCOM4 5): ChunkDataWriteStream\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Transforms/ChunkDataWriteStream.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"cce4afe7c1dbba82cccb1251867edef1d4516029a9108ab73a48cef9e02efbe2"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DiagnosticsDataCollector (LCOM4 5): DiagnosticsDataCollector\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/DiagnosticsDataCollector.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"66630b1cb93a4c2845e27b9b175c8a5f0ff3b805e922a57e15c3872fd399f6f2"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MultiSourceDiagnosticsListener (LCOM4 5): MultiSourceDiagnosticsListener\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/MultiSourceDiagnosticsListener.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d62b4a2b2134b9d325ba0bacbd8b31522a7fa4e71aadf4079b3473fbc407072"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MessageSchema (LCOM4 5): MessageSchema\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Validation/ISchemaAgent.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a22d63ffbb30510c027d65413a1b4d9f659b93dd6e922b47096eef27445ad2b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: FakeTFScavengerLog (LCOM4 5): FakeTFScavengerLog\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/Scavenging/Helpers/FakeTFScavengerLog.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"94bdab17fa0f59b7faffa53d42920b57af1c7c429c6a224f5f0d61f923ee43ec"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: KurrentLoggerConfiguration (LCOM4 4): KurrentLoggerConfiguration\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Logging/KurrentLoggerConfiguration.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"29836f9ce21d0275a42b3fba684ffc514cdc38c3c28432b36ef568a21ccb473b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UriTemplate (LCOM4 4): UriTemplate\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9528c1983acda1715fe09e508d9e454a4a89bb09aa15665fbb05d5c318f56f3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UriTemplateMatch (LCOM4 4): UriTemplateMatch\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateMatch.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bf434b8ebb98b67a3978f30e6a7e6bd4554b698a677945fcbff24ab1d664967"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UriTemplateQueryValue (LCOM4 4): UriTemplateQueryValue\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateQueryValue.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"56a861808e8f6471e7f2ef1b9c7d0d1075557f31ff67ab068d1fb21a66d0365c"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UriTemplateVariablePathSegment (LCOM4 4): UriTemplateVariablePathSegment\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateVariablePathSegment.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"61ffb4aac0849a098beff15477f0b18d5748544e88286d9cb47319b159d05979"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EmittedEvent (LCOM4 4): EmittedEvent\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Emitting/EmittedEvents/EmittedEvent.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b1e877133cd8c7b46ee967a6466cbc5cb5fe192a615f301b26e135c43950f2f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CommittedEventReceived (LCOM4 4): CommittedEventReceived\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Messages/EventReaderSubscriptionMessageBase.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"903ecb722c501621882920b94267c05472c85deb0f1114922198dbb48e0a7527"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CoreProjectionCheckpointManager (LCOM4 4): CoreProjectionCheckpointManager\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Checkpointing/CoreProjectionCheckpointManager.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"418dc8ca8fd10993333e09e7f417e31b2eb9f5678ab45d96795e00ee076ab9d3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DefaultCheckpointManager (LCOM4 4): DefaultCheckpointManager\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Checkpointing/DefaultCheckpointManager.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"412b8f384fda9ad946081eee3ba9938a0715c26d964fac290239a4aef0ab8ef7"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EventByTypeIndexEventReader (LCOM4 4): EventByTypeIndexEventReader\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f1a7b8c6e7aa6c557d7d0836d473289234f90763a061f0978d6e800c4903c0d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: State (LCOM4 4): State\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.State.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e5b13df0ed3f8e702511762c8dc3d42f55fcd2e6933333902704809e84cf0a3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EntryElement (LCOM4 4): EntryElement\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/Atom/Feed.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c383d86bd49817e34e3c1ba6a93a95bfa8fced4aed699b1ad20407511ad3ed3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ManualEncoding (LCOM4 4): ManualEncoding\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/Codecs/ManualEncoding.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"e35a3151af438e5ef5b35ae41a35487cca270ca793798480889c27d80bc1b63a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: NoCodec (LCOM4 4): NoCodec\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/Codecs/NoCodec.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc7d6e905fc4f98c693e818eb44dc8a433365733b6243014a70716f3c6e130be"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: TextCodec (LCOM4 4): TextCodec\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/Codecs/TextCodec.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"03252a9aa30795de91acc43fff23532464569039b4b832abcbbb3e733d525e01"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: TcpConnectionBase (LCOM4 4): TcpConnectionBase\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionBase.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d8d9abfa0c95f28bb44023050b8e8bce552e051f9bc78e67578a3efabdea51e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: LogObserver (LCOM4 4): LogObserver\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB/Tools/LogObserver.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"8664ddce0d9f35924ce805f8d438e1f5cd6a2cc0fc01e6ba27530752317a1c2b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AssemblyScanner (LCOM4 4): AssemblyScanner\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Infrastructure/AssemblyScanner.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"912b899aa22e78210a51052c41daf018d23bc99942e4445f88d92fa8ddd97ffc"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ProtobufEnums (LCOM4 4): ProtobufEnums\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Infrastructure/Protobuf/ProtobufEnums.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb0308bdcaefd5911d6e55e55c7a0a314ed1267ffd592ad859a070cff97540b4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EquivalencyConfiguration (LCOM4 4): EquivalencyConfiguration\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Shouldly/ShouldlyObjectGraphTestExtensions.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"2697ffbfd0ce7a2294375681178489375f9b6f2b42ed41567a1474f2b9bc328a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: LogsEndpointPlugin (LCOM4 4): LogsEndpointPlugin\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Diagnostics.LogsEndpointPlugin/LogsEndpointPlugin.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad5de86972c52a39fd2efbd2bf204d9b3c966376970c1f3c92ab1cec8f461e63"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: GenericDiagnosticsListener (LCOM4 4): GenericDiagnosticsListener\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/GenericDiagnosticsListener.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"fee709b75920a753d68e609ee2c5a7a29ac2c778cb9d06f067be42c5e8392b0f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UserIndexProcessor (LCOM4 4): UserIndexProcessor\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/User/UserIndexProcessor.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e373e4cb56d00ba2f14c26c577296c12d8f587e51895e034c0a32ac8231fd22"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Rec (LCOM4 4): Rec\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/TransactionLog/Scavenging/TFChunkDbCreationHelper.cs"},"region":{"startLine":466}}}],"partialFingerprints":{"codehealthFindingId/v1":"58eb0d250d506986389f046217a73ce80c1dccc05c1e116a0246173c4ed3dabc"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: JsRecordEvaluator (LCOM4 4): JsRecordEvaluator\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Scripting/JsRecordEvaluator.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e80b76c57c23931dcfc0337c02a9ce2563814fdc221128754f81a2e6f59f670"}},{"ruleId":"D7","level":"note","message":{"text":"No checkable ADRs to assess: No architecture decision records were found and the project graph is acyclic, so architectural integrity could not be assessed. Add ADRs (with \u0060enforcement: analyzer|test\u0060) to make the architecture\u0027s rules checkable."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9bfa095522c5f2e53a7c1c0405fd8830d318409a6fb74f4288bab05aaf716e52"}},{"ruleId":"D8","level":"warning","message":{"text":"Coverage not measured: The test suite couldn\u0027t be built/run in-image and no coverage report is committed, so line coverage was not measured \u2014 and it is EXCLUDED from the score rather than scored on a LoC-ratio proxy. Commit the Cobertura/OpenCover/lcov report your CI already produces (anywhere in the repo), or make the suite runnable in-image, and real coverage will be measured."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"62e63e619c28f057e129f2997c965d32a457366a9ce18ca019ffb6bdfba85c99"}},{"ruleId":"D9","level":"note","message":{"text":"Unit tests: 6937 unit test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3067d72f6515925eded797ae6deb86f74d157d3bd0b8e2d3a80edaa12ea95d24"}},{"ruleId":"D9","level":"note","message":{"text":"Integration tests: 0 integration test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b8ce5913e7f0487c282aa29038cefc209006d3bfe4e8418292f03d5a2d9bc5b9"}},{"ruleId":"D9","level":"note","message":{"text":"BDD tests: 0 BDD test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2335ff4716b8a3faefb3014515ddf9f836e46276f415e6cd56462b6bf7742991"}},{"ruleId":"D9","level":"note","message":{"text":"E2E tests: 0 end-to-end test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9a982d279a9674eceb951bedcbe3f8d344879045f8bee5f9f6f059139e0ed590"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): append_session_throws_when_user_is_not_authenticated: Skipped with a documented reason \u2014 a deferral, not lazy debt: Skipping for now."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/Modules/Streams/StreamsServiceTests.cs"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f9e13ee23c303255c1ac8b59a5a5e1225db6f66bd6385a1a6bca2f2de94abfd"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): append_session_throws_when_user_does_not_have_permissions: Skipped with a documented reason \u2014 a deferral, not lazy debt: Skipping for now."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/Modules/Streams/StreamsServiceTests.cs"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbb06c050c21e4a9362afffa1e0162395fe8611da15ae821b3fc4689aa6ca88c"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): authenticate_user_with_no_roles_returns_no_roles: Skipped with a documented reason \u2014 a deferral, not lazy debt: This currently results in an error and the request never returns"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps.Tests/LdapsPluginTests.cs"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"742cac32f100c1f76b3645fd2ab25ef2d0460b5885e636241961aded2ba4a2b6"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): with_two_different_roots_but_equivalent_intermediates: Skipped with a documented reason \u2014 a deferral, not lazy debt: failing on linux due to the above issue"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.UserCertificates.Tests/FindRootsTests.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"b43e1430ebe765510e75e0b9c9b0ee21c54d0c95438e903ff645fef041d12fed"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: exports_from_type: Skipped \u2014 temporary"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validation/SchemaExportTests.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"d568d6c0da80f3cddc00cebb9911dfc254b8e1e5d28744bab9393fd8fe7e4f70"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): null_message_app_should_throw: Skipped with a documented reason \u2014 a deferral, not lazy debt: We do not check each message for null for performance reasons."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Bus/when_publishing_into_memory_bus.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"b272b751d93169b00ec81443c2cacf94325c0e6fd2ae7ce911813e50cc74b63a"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): null_message_should_throw: Skipped with a documented reason \u2014 a deferral, not lazy debt: We do not check each message for null for performance reasons."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Bus/when_publishing_to_queued_handler.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6e3a1502547df067f7995b6749a47c8acd9e937e0d91d1304794c81c8f64916"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): getting_metadata_for_metastream_returns_correct_metadata: Skipped with a documented reason \u2014 a deferral, not lazy debt: You can\u0027t get stream metadata for metastream through ClientAPI"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/when_working_with_stream_metadata_as_structured_info.cs"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"5901622d473f4b8aaaed65b165017ea515a39cd0cc0ec16bc491a06d75ee8f86"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): count_should_be_right: Skipped with a documented reason \u2014 a deferral, not lazy debt: Long running, unsafe"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Index/IndexV1/opening_a_ptable_with_more_than_32bits_of_records.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c529a4b56387afe7d7d5bcf3f516d9ea3e3e539982a3c9ec979b581d8a7dfd8"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): filename_is_correct: Skipped with a documented reason \u2014 a deferral, not lazy debt: Long running, unsafe"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Index/IndexV1/opening_a_ptable_with_more_than_32bits_of_records.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd22c6ebeb4de35792404e8a520c3383a611440ee1b0078dc4a4936e252cbf55"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): construct_valid_cache_for_any_combination_of_params_large: Skipped with a documented reason \u2014 a deferral, not lazy debt: Veerrrryyy long running :)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Index/IndexV1/ptable_midpoint_cache_should.cs"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"000e2e01942f1607e782b01e1ea33f18447286a47f1021be042bce1ad4ebfd83"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ptable_exceeding_maximum_filter_size_succeeds: Skipped with a documented reason \u2014 a deferral, not lazy debt: Quick but requires 4gb disk"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Index/IndexV1/when_creating_large_bloom_filter.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b41fddc142844da829e9070264e7f1df58eca86e4a5510eb57119ef26215eb5"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: construct_same_midpoint_indexes_for_any_combination_of_params_large: Skipped \u2014 Long running"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Index/IndexV4/ptable_midpoint_calculations_should.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"eef0ebbe4fd0f2b6f3de5d6492f255d3d84793bc1c37c2da5798c85144f5abb1"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: not_care_about_trailing_slash: Skipped \u2014 ignore"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Transport/Http/uri_router_should.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a58d409b965deb27d56d8c08bcb297ee06ae78b1a4c1bfe4f6bd9a8226ea83a"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: not_care_about_trailing_slash2: Skipped \u2014 ignore"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Transport/Http/uri_router_should.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"5eec23d6cd0da39bd8f2ce544411668e57ce119650eb9ec60ebffbab7309ebb7"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): client_should_send_intermediate_certificate_during_handshake: Skipped with a documented reason \u2014 a deferral, not lazy debt: Skipped since it adds an intermediate certificate to the current user\u0027s store"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Transport/Tcp/with_intermediate_certificates.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a472501d53abccaeb1fe3fb3e52029ff62a92e0755a0d98341d5b091976d2c9"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: Test: Skipped \u2014 long running"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/FlushTimeMeter.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"975b4809a7d1d69a422f50cec07eb1c7c1abc583818669cf7e520e268955bd8f"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): throw_argumentnullexception_when_given_null_data: Skipped with a documented reason \u2014 a deferral, not lazy debt: ReadOnlyMemory will always convert back to empty array if initialized with null array."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/prepare_log_record_should.cs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"836f41099c8d0db0e0ff999edf5f3c5583d56db86474f069c8bb52f98538084d"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): when_seeking_greater_than_2gb: Skipped with a documented reason \u2014 a deferral, not lazy debt: Requires a 4gb file"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Unbuffered/UnbufferedTests.cs"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad3fdd1cbb9c6feb1d387dc3c687a393ecca05fd53f7d2bb77b14ea29e7c8c3"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): does_not_allow_next_new_completed_chunk_when_checksum_is_exactly_in_between_two_chunks: Skipped with a documented reason \u2014 a deferral, not lazy debt: Due to truncation such situation can happen, so must be considered valid."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Validation/when_validating_tfchunk_db.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"0777a629be3d80c41f26b8721bb572d918a23154549a06800d4183779bc9fb2c"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): with_wrong_size_file_less_than_checksum_throws: Skipped with a documented reason \u2014 a deferral, not lazy debt: Not valid test now after disabling size validation on ongoing TFChunk "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Validation/when_validating_tfchunk_db.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d53f46d285c84e4912157c6580e723ca339c649ef6bcbd126a2e85b7429f612"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): does_not_allow_first_completed_chunk_when_checkpoint_is_zero: Skipped with a documented reason \u2014 a deferral, not lazy debt: Due to truncation such situation can happen, so must be considered valid."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Validation/when_validating_tfchunk_db.cs"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f2099c0c9b40db2526bc7b98a6e6cea2d6dddfff89bccb2b160289f30361f3a"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): does_not_allow_checkpoint_to_point_into_the_middle_of_completed_chunk_when_not_enough_actual_data: Skipped with a documented reason \u2014 a deferral, not lazy debt: We do not check this as it is too erroneous to read ChunkFooter from ongoing chunk..."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Validation/when_validating_tfchunk_db.cs"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2a3d29eab67d525b7617d0563d612a88b0ab8751796d8ca3045d2d03d897efa"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): when_checkpoint_is_on_boundary_of_new_chunk_and_last_chunk_is_truncated_but_not_completed_exception_is_thrown: Skipped with a documented reason \u2014 a deferral, not lazy debt: Not valid test now after disabling size validation on ongoing TFChunk "},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Validation/when_validating_tfchunk_db.cs"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"78d1a260823aa5710e8b4411a3f3ae49345a60feec39cb1c9a326ee9fe7984fb"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): does_not_allow_next_new_chunk_when_checksum_is_exactly_in_between_two_chunks_and_last_is_multi_chunk: Skipped with a documented reason \u2014 a deferral, not lazy debt: Due to truncation such situation can happen, so must be considered valid."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Validation/when_validating_tfchunk_db_with_multi_chunks.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"56cace0080575b8b6aff02c83aab69d406bfdb0d0e13d56d2f3f0fd721d49ba0"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: can_initalize_during_merge: Skipped \u2014 manual"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/LogV2/LogV2StreamExistenceFilterInitializerTests.cs"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcf132d0407dcb654ecdf2d041f85fc08072a65fc165716cf74dcc5d57ffd2e0"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): test_memory_usage: Skipped with a documented reason \u2014 a deferral, not lazy debt: Long running, run manually"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/Sqlite/SqliteScavengeBackendTests.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"61c8b9cf5a9a06bc0930626ea9e9eeca6381d01f89766178e89848f66696aed7"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): test_index_with_archived: Skipped with a documented reason \u2014 a deferral, not lazy debt: Long running, run manually"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/Sqlite/SqliteScavengeBackendTests.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbf360dcc8436a8bcb96a4372cee48db4a5342e1cabef83c7a272643cfed468c"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b7c477815cf93f314aec06fba84056a8e2490981217b8fbb4607e5b43a9f0a5"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_are_indexed.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"bba79028b8beb79d82d5345b281e225a9c3f00b142582ab6c78c205169273d14"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb17daaf6584959a6e0231521bcaab0bec53b40b10f5b5851fafb6ef275fde9a"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"9508704da0295f28950770bb8ea7e275fa63464f19e9e592dfa7ce4597870ffb"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone_postponed.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ec0368af5f85dbdf06f11b0c4a78303cbde912837493b87cab3d62c332e9c14"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"47f7fa507b7b97fc8e02387c87384d7e80d48f76f8eacd9bcdebcc07b0f2b167"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_including_tombstone.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"45220dfa11e73cfe23b0d6182562b3c09c0598ab4ff6cce0dc2ae2bbc933e603"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: receives_deleted_notification: Skipped \u2014 Regression"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcd476daf5459e9282ae626df1bb62685dda986ebe70c64593ccdc9dda40cb0f"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: anonymous_cannot_retrieve_projection_query: Skipped \u2014 ignored"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/projections_manager/runas/when_posting_a_transient_projection.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"70a89f86bb93489bc58b451b7fc350b449a44958d777a942619a06415573b362"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): correct_event_sequence_has_been_processed: Skipped with a documented reason \u2014 a deferral, not lazy debt: No position with stream tag yet"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/projections_system/updating_projections/updating_projection_sources.cs"},"region":{"startLine":263}}}],"partialFingerprints":{"codehealthFindingId/v1":"f30cde2497d665f0dc587480946b07270d0ba9b6ae2e5bb1565c78c7b238b09e"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): correct_event_sequence_has_been_processed: Skipped with a documented reason \u2014 a deferral, not lazy debt: No position in multi-stream tag"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/projections_system/updating_projections/updating_projection_sources.cs"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"f30cde2497d665f0dc587480946b07270d0ba9b6ae2e5bb1565c78c7b238b09e"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: result_events_are_produced_for_each_received_event: Skipped \u2014 To be fixed"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/when_receiving_committed_events_the_projection_without_when.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"a72da9457003a5b35b0b9c7a98ba2c0fa6265f8d8ea974cf5f7667fc637aa4e2"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: delete_versions_successfully: Skipped \u2014 Temporary"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Domain/DeleteSchemaVersionsCommandTests.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"38b6fbb6320e9310212cabafbf6c4873c9e3c82e8dc8f7f7c83599f45d33ab7b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_create_a_connector_with_settings: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Ammeter/ConnectorsTests.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"c570871124b4beb559c1200596473beeba15a91ce5b891d4f92deb2eb3468526"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_create_a_connector_with_configuration: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Ammeter/ConnectorsTests.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1f35ff5195b2e06aa7b127cdb60ffb1dc2b567dccec30cca9927c1bd8352f59"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_delete_a_connector: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Ammeter/ConnectorsTests.cs"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3cfae37d3c2138918b55e95440bf3f44579bc7558899620c22d6b05822f61d9"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: DummyTest: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/DummyTests.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e76aca07ac0635f712ca8c7d338b09bf7cc32011de3ebd68980777415ab4fc5"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: logging_configured: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/TestEnvironmentWireUpTests.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"591517b6fd657fa2382ff2e3619351d33295007c12f78c522a1ca50046c50063"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: logs_are_scoped_to_test: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/TestEnvironmentWireUpTests.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"deed00c0b42b7dd8058a0798c9c9cd02282399c887a19da65c0e2a8d5d7b557a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ShouldAccessConfigureEndpoint: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge.Tests/PluginTests.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"c52bdadd4e1882d5d9588d93b6925589b573a504eb4cee91244330f66af70552"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ShouldAccessPauseEndpoint: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge.Tests/PluginTests.cs"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b2183a1ea4252d2168c82134a55880d120d56568ee0c7a66de8af3abf2aa53e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ShouldAccessResumeEndpoint: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge.Tests/PluginTests.cs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"60b45d790dda1eddf0cf43c7e89c0fe5c85d9d02020e48117d6a2d9b47a8329a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: empty_grant_types_does_not_throw: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth.Tests/DiscoveryDocumentValidatorTests.cs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc80069f9a07ee80babc7b869719418fb4382a9508368a7b0f34cc4f710b71d9"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: disable_pkce_validation_skips_code_challenge_check: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth.Tests/DiscoveryDocumentValidatorTests.cs"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"617f7de4fd30ba829edbead921a020e474e2c232154c13f8602235ca89dd1ddd"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: disable_pkce_validation_skips_s256_check: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth.Tests/DiscoveryDocumentValidatorTests.cs"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d4755b1517595eaef38897e39c271d1c3786ba739291b61389f8bc12f73f5cf"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: when_the_default_policy_write_request_is_not_handled_and_cannot_be_retried: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin.Tests/StreamPolicyWriterTests.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"b512246397545ef77ed4aa26f335f319894f33dd1aa60b7f9082c9962da4de67"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: when_the_default_policy_write_request_fails_and_cannot_be_retried: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin.Tests/StreamPolicyWriterTests.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"d170b5874e6a2f7af4b3cd5bf4deb267900e3407fc0069865475e7186c843fa4"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: has_parameterless_constructor: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.UserCertificates.Tests/UserCertificatesPluginTests.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a0f4de71fc0f63c032dc1dba3dcbf8a9ef17a68267f9cd84a3fb28a9f755153"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: stops_gracefully_when_waiting_for_leadership_and_service_is_stopped: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/System/LeaderNodeBackgroundServiceTests.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"46075480b8113b669e33b7c81188c366783e2310a3a425988856ca420f7092f4"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: stops_gracefully_when_waiting_for_leadership_and_stopping_token_is_cancelled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/System/LeaderNodeBackgroundServiceTests.cs"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"73916f339449432c1fbeafce19f888bfc0d25374b532e60e4851c9233a35f4df"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_accept_a_checked_out_buffer: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.BufferManagement.Tests/BufferManagerTests.cs"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"33f4f331bd847505d450a75f5e87114e27633447ebdb94d959fa6be04c893e6a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_not_throw_exception_when_server_is_down: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/connect.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa4b683a8e9e64c4a084c95553cf3c4c32eb85d63b5d735e8f3827148b811bc1"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_timeout_connection_after_configured_amount_time_on_conenct: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/connect.cs"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"563eb18ea0d52fa9fb80220d7fdd5e645ca5d0ebd16584d9f70e65e1597c335d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_not_throw_when_connect_to_is_set: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/connecting_with_connection_string.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"d748930a62007be673cd0932459019a61a6673aab7810e36e8debe832a7aa297"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_completion_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/create_persistent_subscription.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"65c7e62d16ff79d16fe83817077160a0711f28dbf3b421737886005ebe383054"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_completion_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/create_persistent_subscription.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"65c7e62d16ff79d16fe83817077160a0711f28dbf3b421737886005ebe383054"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_subscription_is_created_without_error: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/create_persistent_subscription.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"682ec11134a3be82bd8d6a7083bee4136d7f491125606bdba81702a5c56f1d76"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_completion_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/create_persistent_subscription.cs"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"65c7e62d16ff79d16fe83817077160a0711f28dbf3b421737886005ebe383054"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_completion_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/create_persistent_subscription.cs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"65c7e62d16ff79d16fe83817077160a0711f28dbf3b421737886005ebe383054"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_delete_of_group_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/deleting_persistent_subscription.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0db77200d8c90c7b6a3fcc846135b249618595c7bdd3d16f7d6d91b274bd46f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_all_with_authorized_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_all_security.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f0ee3acbc250868cf33428e830b4e62f24177d5904395c27f7cc116bd885a25"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_all_with_admin_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_all_security.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"94ec85376b3b2e5af458c9f1623642226eb73168b8e65872da56fd39bfe1dcb0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_stream_meta_with_authorized_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"5800869d3c4fd13f12c07a8e7d547a30ee3aa063bf39432556f3ba49cb8c6aff"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_stream_meta_with_admin_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd03fc806f46fda3da1377dacbc08797cdf27f397a020fe726408093567be1d6"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_no_acl_stream_meta_succeeds_when_no_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"35a2df1403d640183e8ff17f6eebb7dc9d504544d4250153bc7884913c3135ce"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_no_acl_stream_meta_succeeds_when_any_existing_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1b6af6170229d89ed16a9f5a7379ae035cada1a2a5855df9650a54fe10537df"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_no_acl_stream_meta_succeeds_when_admin_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"c80dbfd07cc909ea3a78e12f0aca4e2ccce29ea2410c12d2e3b4b742718fb45c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_all_access_normal_stream_meta_succeeds_when_no_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8c5534d5b5e2f36b82b8f4523c6c818112958a14d56124c72bf31b2b59bee6a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_all_access_normal_stream_meta_succeeds_when_any_existing_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"01d2cf1304dbf8aced4f54dfd2953a7eb0c7b796f006d297301837e07bac54e3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_all_access_normal_stream_meta_succeeds_when_admin_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e741cddcf932bb416092f52ee117a77a8f74f501e0c7a95bb69129835477f8f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_all_with_authorized_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_all_security.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce32c44138b90646f56a581f1809e6e6194ad5d71e15f613a6f9610641dab736"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_all_with_admin_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_all_security.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"5422faf056e486d50076fe4f8fb458031bcab76b25d9f2eaa11224ba68fa7a93"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_stream_with_authorized_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae71e033e3613d72075ad3907cb438f92461e81fc0e721d65ec9c7abb28c6848"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: reading_stream_with_admin_user_credentials_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"87a355cc620cf108507af93718780ef91c028fc05db46f14d4a812f8c18fb607"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_no_acl_stream_succeeds_when_no_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"a40437d0c2a7b1725144332c2450a3ae1e5eb5c92a142bfe37e8a49f7cec462f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_no_acl_stream_succeeds_when_any_existing_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d1a0e2933e1e5e7a5dec72e3476649f71cc9e08c4a1ebd81abd221b18d2621a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_no_acl_stream_succeeds_when_admin_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad093adab5ed1c7f60fe309c14c2ab1912825c845ae9b093305a2d94a690342e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_all_access_normal_stream_succeeds_when_no_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"b582f2960007e4b6cef2a32751b5902b779d28ff958cbd4bddca84eda143b1be"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_all_access_normal_stream_succeeds_when_any_existing_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f367ad045f51f9b870fdcbe99e1c88054357e4002d9462557df50367e5ec25c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: subscribing_to_all_access_normal_streamm_succeeds_when_admin_user_credentials_are_passed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6737402618ec90416cb57cde8967390ad544105bed362d0a8bbdc991c0594a0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: the_completion_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/update_persistent_subscription.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c315dbf0bcccd01833f372d041d3a4c6eb079f63b7bc238e7267aacf577076f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_change_password_and_use_the_new_one: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/UserManagement/reset_change_password.cs"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"db1bd6103e1019db79ad0104841e2085420be27c55aa11b72ddf045d325f49b8"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handle_a_lot_of_elements_and_not_loose_any_elements: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/DataStructures/pairing_heap_should.cs"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"49ddbb66086497435258e9f5d39b732cc844baa10cf36bb19779fd71ab7aa59e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: test_size_multiple_cases_long: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Monitoring/FormatterTests.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"e12a1f26720e02f481095fb4f8b9b335de48261e64dc094dd29d607c25e37910"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: test_size_multiple_cases_ulong: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Monitoring/FormatterTests.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc32a4a9448a48d7e936e8aba9030345001b0c40014f819845e6c8331a29f2ca"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: test_speed_multiple_cases: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Monitoring/FormatterTests.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"febe2cca69cf79cb3739228572530f91974602cc5f9c9d19c774914694539794"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: test_number_multiple_cases_long: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Monitoring/FormatterTests.cs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c56d321cb765edca2db52800e05d0b7a3ae90228cb3a78819e35985b1343a32"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: test_number_multiple_cases_ulong: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Monitoring/FormatterTests.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"94aaae0a1eb340a85d5be523fa84bee685e1825f73c3a2e86f27a3d901b23e4c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: DoesNotOverflow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/PersistentSubscription/RequestStatisticsTests.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"e05ce1d04169b2798fa6f1273887cc388a1c644d51a92ecc251d82a8a0c01cbb"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_create_persistent_subscription: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Transport/Grpc/PersistentSubscriptionTests/CreateTests.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecbe74627853a095c5304387470c379dee6c21cbf83f24a76e2eaa6845915c2d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_graceful_shutdown_with_mininode: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/VNode/ShutdownServiceWithMiniNodeTests.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"0af9c928bfbf7b3410c42caf823cfed04ae2f8ba916fe55c89f826253ef1302e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: DummyTest: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.TUnit.Tests/DummyTests.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"e12e0a0a770e881db3acf54bd3efad4ec26bd78e36ce65f91d5ce09b52d812dd"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: builds_proper: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Configuration/ClusterVNodeOptionsTests.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d4628bbf86860f89da15b81598b022506a47b6c29b5c8050c0b454779e848af"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_reacquire_buffer_if_released: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Helpers/ReusableBufferTests.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"14011ee8fedd21876f5a0a7773c65bed9ec60f89dac1431d93ed15677acd499e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_valid_stream_ids: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Messages/ClientMessageTests/WriteEventsTests.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"a46b519ca3bde5fee1590154c2f9c638801ca293373a5ae96951e7b0fe7e94b9"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: default_is_valid: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Services/Archive/ArchiveOptionsTests.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bca5cdafcb1342b1a3fc4a6741bf6fa6dab4e8184162a1c4702c987ba65474a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_use_file_system_options: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Services/Archive/ArchiveOptionsTests.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"478ab12bbefe3d8f2d38ece67ceb5cd661927ef79663405be3f27698aa1dad9c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_use_s3_options: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Services/Archive/ArchiveOptionsTests.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"a58f00c0b0fee2131f08d297f3e4233a44a51aa444ca8ff4b67f0880aed34d23"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: chunk_factory_reads_correct_header: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Transforms/Identity/IdentityDbTransformTests.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb61852871ab830e2015dd3fe215bdb1b88b4306a20edc0e7c795382875af839"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: has_parameterless_constructor: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.OtlpExporterPlugin.Tests/OtlpExporterTests.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"d88c849629a3eada8a2f6b12aa500cdb8743d1822e07963f14ec2f76105067e0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Test: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript.Tests/SpecRunner.cs"},"region":{"startLine":453}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ffa2c1b21966217dcfb1ad9d4afaf2aa1c9b8aa4cd71db7355b0f19d395a727"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: MeasureStopwatch: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Other/Stopwatch.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ff2446c5eb937a42d598d8f8b85dc7efdea200d2fa75f0c86e238bbfe106819"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Dump: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Other/when_matching_remaining_path.cs"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"715aab061a94285f920e394329d5c62c972b68e1e6eb904c6ec45fa609c7ff37"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: whitespace: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/Jint/Serialization/when_serializing_state.cs"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9deafdbb9c66f6ee0702343fbab22092c5110c0e3d8fbfc116ab7c9156d831b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/Jint/when_creating_jint_projection.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b1ec013bf748d7b45169b2e8f794c57c7a74cb47eab7f24d1f86de213a11022"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/projections_manager/when_creating_projection_manager.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e7081e9e458299b07a872e83b81af546e5852dcfff54c7cac5dfa000777bdd3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_started: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_a_core_projection_checkpoint_manager_has_been_created.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"d83438d8446786e4f7eb2dc25fcaec73447091e1a585adbb1cff17957c6f2bc0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_begin_load_state: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_a_default_checkpoint_manager_has_been_reinitialized.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b3fa7e1c0832c0b3f74325f2959db0b70c3dbc9797e4c8c6131545ce4fb13b1"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_started: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_a_default_checkpoint_manager_has_been_reinitialized.cs"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfc20feabe9fd1128a86d4a69b4a2cdd889889746d46715b033a75e7378c2e81"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_started: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_beginning_to_load_state_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"61e95e9bf0a1b4019905bbe0100833944c565b39a45350fa8733b73f8d35e99a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_creating_a_default_checkpoint_manager.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b47ec7c2ac138b336060500bf80c53df6d4150f1d65f4bfd573c08725a15c9d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_stopping: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_multiple_event_processed_received_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"baf38f4e7c1b229591eeb54be8660050b554a91e71be7c3864837c327fb2f70b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_stopped: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_multiple_event_processed_received_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"74bc524021864f5fec45f1190bfebbdb8a3473bed12d35ad538b287b40a4f99f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_event_processed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_multiple_event_processed_received_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f0cb61cbd01546f1e95262501b07167497aa5161c06db436846966ee0b53b22"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_checkpoint_suggested: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_multiple_event_processed_received_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6be4b7c0704ed445031641a59608d3e4cc789f81fd3c0df21f4efcdba614a7a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_stopping: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_starting_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"7463448e2e1113c3952843922a562557f66fecd6a7799407ac8d57106ee5b20a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_stopped: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_starting_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"c50caf9c4f70c37e0c60b70809410534462121dd1e4d5b06d84404d7c3965c57"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: accepts_event_processed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_starting_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"74568b46e004bee1cf9b37990b4047b545f6702da1adc02b2448b1699423e273"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_is_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/multi_phase/when_creating_a_multi_phase_projection.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b8bf5707a5ce2b3eafcf3872a8dfebebeb843edba0c72a7336df669ec78064d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_starts: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/multi_phase/when_starting_a_multi_phase_projection.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef82665759a6e181936bfd354f5ad17d2f2651e590320f502adcc7d2f21f9b16"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/projection_checkpoint/when_creating_a_projection_checkpoint.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"af34b42d135c48e8a426afc8d6eb9392c6e7286cd2fdaa7134ce9b5fd7982163"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: a_null_run_as_does_not_throw_exception: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/when_creating_a_projection.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec18b3d3fad4d30f0bdf73ede469c064035fbbc683d8a2c0229233b0e1623b9c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_accept_no_event_stream_response: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/when_starting_a_projection.cs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"884505ab8b60390ac344b148056afbe5a9880a6cf77bc5c8628f0cf9ec1a8fab"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_accept_events_not_found_response: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/when_starting_a_projection.cs"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"1390a8b4209aad1dafdd4d0bd259e8a46d4989176d8ca419a681d506d8e04147"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/emitted_stream/when_creating_an_emitted_stream.cs"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"8551fa791a087f2e1c14c92782b2b9ff9d07347ca11eb9022dbb0aa9a8e5c25d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: should_have_called_completed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/emitted_streams_deleter/when_deleting/with_no_emitted_streams_stream.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"9da2edcf9249bfd9ae0e939175776e48a5756b0d80d6348dacae8e85031dba5c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_started: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/heading_event_reader/when_heading_event_reader_has_been_created.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9ffbc412469b6f0e663ddf442035d26bc448b6dfadc44b196685e096bbf007d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_stopped: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/heading_event_reader/when_starting_a_heading_event_reader.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"56dffd646186a03922f2f25d5a3e023330c394ed4cda708e1edaa03f6c593ebf"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_unsubscribed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/heading_event_reader/when_the_heading_event_reader_subscribes_a_projection.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"f64b0fbf0f89a73ef7d4c2af94708912ae7cda1447afefc787ba990cab426b20"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_unsubscribed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/heading_event_reader/when_the_heading_event_reader_with_a_subscribed_projection_handles_an_event.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"565dc1a5db34258a7f77a3825ac23990aa66edec570781c82d0e1e46d1eb47e2"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/multi_stream_reader/when_creating.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ac499bf3059c0ea14e77e2bb0afc47f8b53679a7a958722e2625964a2583994"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/multi_stream_reader/when_handling_read_completed.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcadbb7838a18021d7e537797fef75b7fb90eb3a5ccb583798fcfa245e69fb0b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/multi_stream_reader/when_handling_read_completed_for_all_streams.cs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f0704c02352bfa79643616e42da952d873b16939e3481b1e35fde1ef9cddfcf"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_resumed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/multi_stream_reader/when_handling_read_completed_for_all_streams_after_pause_requested.cs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"699363fdc7bebd5deec1d823e4c5893b9ab90aeb3c4bab608e82bdcc51e18b78"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_resumed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/multi_stream_reader/when_has_been_created.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcd5c445ea5293068d9e11d048c5cbf269a1a03c1f75ebede6e755eb7563df5a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/multi_stream_reader/when_resuming.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7b32c01411cc6c1606d01ca77561eaa39300f696e0f7641baa1c87b8dd59c52"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_creating_stream_event_reader.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe0401554bc868115c9f129a42e08f47519f30b7180e1d47dd04a928726a6a91"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_handling_no_stream.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"2232108a10ab000298d657b900cbdda4973750b5758cac20615d3abd2c645cf7"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_handling_read_completed_and_eof.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc9ed3f02d430fccc0c6722eb697d0862e91c0bd6f2964250c811061a7408aa4"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_handling_read_completed_stream_event_reader.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"6197ff57e8930eb48193b2b971d598ac91182fb4e26f52eac18c65943bb6ec86"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_resumed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_handling_read_completed_then_pause_then_eof.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"72792bc5be00872e08e4ea858421cd1519c0cff50394c6a9c3759032aa49e870"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_resumed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_paused_then_handling_no_stream.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"667c293345f3727bf194874b6f8302cf3d365835905ebfd2f359487b39c398d9"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_cannot_be_paused: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_resuming_stream_event_reader.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"87b2e7c1f1026ee227f703925e98c1e99b5ec8427f21294ab89bb6e3b7f2225a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_resumed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/stream_reader/when_stream_event_reader_has_been_created.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac012479203493ca2eb3030de4c96f53af52b17d37520d78e0156db4db93968c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reordering_projection_subscription/when_creating_projection_subscription.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"c93373bc488a7146e42e029b2c55eb7d90f7cdcbb957070d9f62a8e63b5f3a0d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/feed_reader/feed_reader.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"7669231f8a98b01c21e518f499e253529bd704bcecb4cc878211a5cfbac63a4d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: null_user_account_is_allowed: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/feed_reader/feed_reader.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"b394d187ceb17a641df9c72b08e292c527e68c9a951381dd40170dca94e3ded2"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state/partition_state.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc1671105fc480d3ddc26c2fafe1085b52c815096b74e2bed456d7a328fafe80"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: state_can_be_cached: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_cache/when_the_partition_state_cache_has_been_created.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cc65be7cdf011968db5ba82d268e5c531b52366ec8afedcde64c062c3e8110d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: unlock_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_cache/when_the_partition_state_cache_has_been_created.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"b87836ae1dd9bded1dbcb6cfc5eb20c2978863d3256874fefcf6264b5b454f77"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: state_can_be_cached: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_cache/when_the_partition_state_cache_has_been_reinitialized.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"d78fd73dcfd557c551913455915470ad43886df5062e06d981339d27961a9518"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: unlock_succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_cache/when_the_partition_state_cache_has_been_reinitialized.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d7dec11fb40c01f0954221e11f2da045bf320320f55cce584bc6839058f054c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_created.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b360b3a840f60e99e9803174fa08398750adeaf08abadbc6eb86b6b85b7a534"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: emit_events_does_not_write_any_events: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_created.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b9e015525944ebb9b80b1244ecb6e64fea3313f234153c776bfdae7bc80145b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: no_exceptions_are_thrown: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_creating.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6aaba1170787519b67e8a6a7049b374f8b4df910f59579eff9243a504dc1210"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated_for_the_same_partition: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_state_updated.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"37485e43df689a3a351e330a341227ceef64754d232c500b5f205f49c64d6ad0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated_for_another_partition: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_state_updated.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"4214c4878de360bce0be21e0a14989f2d03053ef9be0704b39a7f4b556b90227"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated_for_the_same_partition: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_state_updated_twice.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"9931a756e8b48c4cc57f38f5f1b6c70f83bf10a98c0e7ccdf8dddeb96ae29a78"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated_for_another_partition: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_state_updated_twice.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba50b5bcf67c353fd125e4c3b89ed3fcc86d3c08b9be526794b8179ae9970d9b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated_for_the_same_partition: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_two_states_were_updated.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d0da62d7f39e40a037b4d6655b2994ff755035e97c4d20677484edc275b2c39"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: handles_state_updated_for_another_partition: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/partition_state_update_manager/when_two_states_were_updated.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c0aaa54462b6d0c21c353e8325c33e65f973beaaa726e37eea5fed50ba9fa56"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/event_by_type_index_position_tagger/event_by_type_index_position_tagger.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"90cffaf0e9339513ebc221130c092881b213ca3dc19ba7bb66653485e0cc3bee"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_with_correct_event_types: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/event_by_type_index_position_tagger/when_creating_event_by_type_index_position_tracker.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"8db3fa8ed500e7593def685c330745af7e4f94ab194ad347a348fe4ea4df022e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/event_by_type_index_position_tagger/when_creating_event_by_type_index_position_tracker.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"4af6ad5be3781b29698ae4b37a953a963e0b04fa60f84018e6f76c724f99e8d3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_update_to_the_same_index_position_but_tf: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/event_by_type_index_position_tagger/when_updating_postion_event_by_type_index_position_tracker.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"01b0bb77b73b0189b0d69030e059ddcbfdf2aea694f6108d25cf1c6e7d52c1c0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/multistream_position_tagger/multistream_position_tagger.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9cc6a5aa370be5dd6d8808bee8ecc1c1a48e5d6d51e4e5eb3f5e3e8789f41a2"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_with_correct_streams: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/multistream_position_tagger/when_creating_multistream_postion_tracker.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e900c0b280c3dd15fa1b8a737e123aa5b9f847ac1e70e4a115d1bb18b0e9224"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/multistream_position_tagger/when_creating_multistream_postion_tracker.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"7463f078e972669d4fb61c4a89daaf02924b1a72760af650e94fac96289ef761"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/prepare_position_tagger/prepare_position_tagger.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b73188ea96c6f4de12e43cf6288fb1c1ddf3b89045851a52b9438d80a62a930"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/prepare_position_tagger/when_creating_prepare_postion_tracker.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"55f454912480ea7c053a905d1545275fa1c481dd016eff1a796cb9f947989ade"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/prepare_position_tagger/when_creating_prepare_postion_tracker.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ca2c072e6c782c15cb6df3a56de0724d347aaabcdfd2fbed8cd2dee46b64a57"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/prepare_position_tagger/when_reinitializing_prepapre_postion_tracker.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd4297596e73ebb6211326e42781ace533098c946de82135654c56ad76561494"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/prepare_position_tagger/when_reinitializing_prepapre_postion_tracker.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb46cdbc133f35d67a99d558cfd9a5fbc2fd07d357ada9b679e053bdb5f3d242"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/stream_position_tagger/stream_position_tagger.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba764dd36c9bb401d0aa4fae926d040b999c6facd5aa923b851803ed398d247d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_with_correct_stream: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/stream_position_tagger/when_creating_stream_postion_tracker.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"16590c3f6d25dbc8baf39f60a6c7097eedede1584d8ae724f125cf8b17e7bc86"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/stream_position_tagger/when_creating_stream_postion_tracker.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3165fd0561079b4618165cf584547ca721f3217faa32fa05b79cebd302a655a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/transaction_file_position_tagger/transaction_file_position_tagger.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"71855d92720adf6ef426437daf2af8359d41570e52d3db0433d94badf6e7c838"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/transaction_file_position_tagger/when_creating_transaction_file_postion_tracker.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"62e64c41029bd91507f5547e868ebdfa63643fc41bc04cbf274e151095b1aea5"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/transaction_file_position_tagger/when_creating_transaction_file_postion_tracker.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"00d34d1d4245f7bf1533c9700fe0c6290b59e918742591c6f913b8deef8674da"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/transaction_file_position_tagger/when_reinitializing_transaction_file_postion_tracker.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"af1bf162474b6734a81a72e841580158fcebfeb1e9a2c272e53bb99730241061"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_updated_to_zero: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/transaction_file_position_tagger/when_reinitializing_transaction_file_postion_tracker.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"48bb8952eda98eaee56c5b9b5c4c6c5e4087b295fc3ccb4915ff0901ce6f7d58"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/projection_subscription/when_creating_projection_subscription.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"de398263f5f0da81dce8d3f4fc4f27735189b8d5639b74d81977d626f714db83"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/result_emitter/result_emitter.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc6275bb6c0c0a9bbeb887e235cc3c3e159828773e3ca6265f570aeaa3ec12af"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: task_can_be_enqueued: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/staged_processing_queue.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"eef44f92e968a44b86fd97a317060846ab66382f9bf845477ceb8307e56593bc"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: task_can_be_enqueued: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/staged_processing_queue.cs"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"eef44f92e968a44b86fd97a317060846ab66382f9bf845477ceb8307e56593bc"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: it_can_be_created: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/write_query_result_phase/creating.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d590e2e4dd1d7fe0ce2cabc20b918f9234710e6236268eef987901907c4c52c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: can_be_initialized_from_phase_checkpoint: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/write_query_result_phase/creating.cs"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"41ef815e4a8b1f5b6b0ca02528ab1e77c1396baf4acaac0add0c5e845f1dd412"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: concurrent_reads_and_writes_do_not_throw: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Unit/PartitionStateCacheTests.cs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca6d0578fead42e262b59ca75789ffa97a443c888aa0443d7eee6de3b12ae987"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Remove_Does_Not_Throw_When_Workspace_Not_Running: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceLifecycleManagerTests.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"949254b58c53a57640f9c240fc9a7d4fd55d571bcd0e75bfc12a9621b3879fe3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Remove_Of_Missing_Directory_Does_Not_Throw: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceLifecycleManagerTests.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"76f2519e85a23aeb0d8721b8dc43cc24502d8fdf18bdfb4c65a24b2b0b2e261b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: StartAsync_Is_NoOp: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceLifecycleManagerTests.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"58d5c365d54e8ce87273a2c7b17f587c7f05ed3e19b9629697f9d4a95c8634a2"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: StopAsync_With_No_Runners_Is_NoOp: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceLifecycleManagerTests.cs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"93dc37d76283a811f6067c6fbb1cedc6a6c5afe23dd0a09239ff1bcc5bc950f6"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: EnsureMemoryReadable_Passes_When_Memory_Enabled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceEntryTests.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"d31ac5f289f9336d1a22f8d3773b269448839bde51dbbca9b2741450d2d0aa6f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: EnsureMemoryWritable_Passes_When_Memory_Enabled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceEntryTests.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"42909bc472bf5131fb556b6b33887489d049d8c9ad5bead628b981f512833392"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: EnsureImportable_Passes_When_Imports_Enabled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceEntryTests.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"f72c9d74ea88ba1c180af7098001caea031a1119e3a4c43f41e3308197bd1884"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: EnsureInquiriesEnabled_Passes_When_Inquiries_Enabled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/Workspaces/WorkspaceEntryTests.cs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c8a5e3c8a0c932b68021fc757969edcf91d83a1130f08e4ed3215a2c05457a6"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: WriteBatchAsync_Empty_List_Is_NoOp: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Kontext.Tests/SystemClientExtensionsTests.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"672497f26f53be927b29fb1cecb0fc7352cf4a15123c1e34c120bce449d906ea"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunSingle: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Playground/Launchpad3.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3f75cf2cafb0bc5904f19ce202777a29da051884b954c833f7793cf1b6784be"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunSingle: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Playground/Launchpad2.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1ca1886b1a2bb52614320ec2e75ba78ae0d6e8fcb37f8e9824f68e669d606ea"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunSingleAndFlood: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Playground/Launchpad2.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"c533d232bfa9d0edb263d1c4bc07e801642f714d6b998e21a7cb6611a6b5d73c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: WriteFloodAndProjections: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Playground/Launchpad.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"e398bb22edf53473c56124adacef908f26ca32f05561fc234e1eda25d411e45e"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: JustProjections: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Playground/Launchpad.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"650366d83f1a848efad1b3f78db318378554e46b05ed59febed18f95517c4c85"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: KurrentDB.SecondaryIndexing.Tests references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D11","level":"note","message":{"text":"No tests discovered: Test reliability not scored \u2014 the test tier(s) built and ran but no tests were discovered, so reliability couldn\u0027t be exercised."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6e4c0ab67b9e87c02498c138fb50373fdab655734b894db638fb9443a28b824b"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration: Microsoft.Extensions.Configuration 10.0.3 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfed1a37193e5ac5f3e8801aaabf2ac7777d85c43d5c1d77559be94c1b696e23"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.1.0 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: RestSharp: RestSharp 112.1.0 \u2192 114.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"304ffca1c67703bbeeda80b01ee9cf61bf3253fa95957cb50e144d18ff6799bd"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Testcontainers: Testcontainers 4.7.0 \u2192 4.12.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a041fe4a4d7adcb61ccf5297fbda311163874e9a743b2a25862e54c0c948ae0e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: TUnit: TUnit 1.0.39 \u2192 1.56.18 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cdbfd01b22880a5b26f7117ca7b887cc3bcba96ac5b63d1d001c777ee8ca80b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: GitInfo: GitInfo 3.3.3 \u2192 3.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4527882ab31f79e24ac54c94020c5d830e9ea02fd3415ceb9a77bd9c4ee60dce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.Common: Grpc.Net.Common 2.76.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94f12f5a8f089dbe9a45bda5aebc3e8e2199e6f615840775cad3613c808e379a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry: OpenTelemetry 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"29fab57b9cc5d9963e8d96c31d402e0af56b098e5a7a0ca603522d5c9ed71907"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Extensions.Logging: Serilog.Extensions.Logging 9.0.2 \u2192 10.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6acb625c1887e32e71958a49d9587e8589a9ce363971c3fe99fb262ebb62e2b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Settings.Configuration: Serilog.Settings.Configuration 9.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ad8b937722893b69e4d51d60838a400356b7a98c88bc4f6e841fffc862361bd0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Console: Serilog.Sinks.Console 6.0.0 \u2192 6.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a8ac878e794249794789c2aa02b06bf9fd84a2c7ada7b66d8be162175a35b46c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Seq: Serilog.Sinks.Seq 9.0.0 \u2192 9.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94b209ddaa1c6e483506c5732df14d0b59e02c0867fc447321fca73b38dd87d1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Security.Cryptography.Pkcs: System.Security.Cryptography.Pkcs 10.0.6 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"edd572fb02d8a7e8db0f572284d190dfb86b12cc1998bd7a809bff04351c2c60"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: YamlDotnet: YamlDotnet 16.3.0 \u2192 18.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e904de9cc584393192ae35e690d03bef54316a1addbbebb5c08bab4bdc6e88a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AWSSDK.Core: AWSSDK.Core 4.0.7.3 \u2192 4.0.9.6 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"79a0cd7ea4194589de9462603caaa51556afb4e99540a1e79affd0b5fb056f18"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Azure.Identity: Azure.Identity 1.16.0 \u2192 1.21.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6189692f3ca4d39ff0fd5d0041f5fcd1672d3ee42ccb9b70277e6cdd12819251"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Azure.Storage.Blobs: Azure.Storage.Blobs 12.25.1 \u2192 12.29.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dc6185bbcb2f69b469ae3e9f0e3e6460e677ec212ed2f24ceaad80f6c8317f11"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: DotNext.IO: DotNext.IO 6.2.1 \u2192 6.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a3f5e8498581a3f8b079579a599b08d027bf49e308c46a965f6a8e02228bc4b0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: DotNext.Threading: DotNext.Threading 6.2.1 \u2192 6.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"73fa03f90b5b3783992984a6be205f0c516716a3736c6c604df65f92d06d40c8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: DotNext.Unsafe: DotNext.Unsafe 6.2.1 \u2192 6.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e0f3a7c85a912069d06f9124bafcb431c4ccac7e9391847785855d62e4a2001d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Cloud.Storage.V1: Google.Cloud.Storage.V1 4.13.0 \u2192 4.15.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bd8581e01b570bf012125bc5c707b19e9fb0e84febea2eca0ce22104fbbf6115"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore: Grpc.AspNetCore 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e8a866603141c72e80acfcdb9a66c4d7ed4ff16337fe3e1c81615d3f049898f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Quack: Kurrent.Quack 0.0.0-alpha.176 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eb4069bf81e21b417c21e53533b2bf1dfeb47514910dafeeb5a8f2bf4d079ddc"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: librdkafka.redist: librdkafka.redist 2.5.0 \u2192 2.14.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c7643c1a8e169a21721b9a47e40313e64bc222a50a9eb001bffa36d9129a840f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Authentication.OpenIdConnect: Microsoft.AspNetCore.Authentication.OpenIdConnect 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d18cbcbbf2e8ef434477d3f8a888a4083f739f4d9c278e7e69f2deb699a5184c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Data.Sqlite: Microsoft.Data.Sqlite 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4562b5b3b68a9fd35044e1d81f432fb26bf4eca8fa85b36a4f5ec4f77fcc5a05"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Diagnostics.NETCore.Client: Microsoft.Diagnostics.NETCore.Client 0.2.621003 \u2192 0.2.661903 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"93313543203b6b3318ee092ac1d395aff959058c34a286134d2159b9087f43fd"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Diagnostics.Tracing.TraceEvent: Microsoft.Diagnostics.Tracing.TraceEvent 3.1.24 \u2192 3.2.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"923e58ec68ed2ca61d6eb3431aa9b883e30f5d3727267ce0e18ddd85aca74c5a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.IdentityModel.Protocols.OpenIdConnect: Microsoft.IdentityModel.Protocols.OpenIdConnect 8.14.0 \u2192 8.19.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"54d6e462481abb6912a6fbe92c37250653fc11fef39d0b43d70e7b1747fcf094"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.Prometheus.AspNetCore: OpenTelemetry.Exporter.Prometheus.AspNetCore 1.15.0-beta.1 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"65fc2017bf61176d07fba8691b4c5f14920746703db0cb9da8a67ea7bc0fce9e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Polly.Core: Polly.Core 8.6.3 \u2192 8.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f34326f0c0b135a883836c532acf2c082bae8295b772eeab83df01de901b3ee9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Scrutor: Scrutor 6.1.0 \u2192 7.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"703b793e70fb5993af875f880dec2a4490a5777b67812bc67b0e703a4e7f6ee2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Diagnostics.PerformanceCounter: System.Diagnostics.PerformanceCounter 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a055f0e7953c9029f82d25d35f3da2944e718c563ec7b0664cfc9180ebb824f9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Quack: Kurrent.Quack 0.0.0-alpha.176 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eb4069bf81e21b417c21e53533b2bf1dfeb47514910dafeeb5a8f2bf4d079ddc"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.DependencyInjection.Abstractions: Microsoft.Extensions.DependencyInjection.Abstractions 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"975f7090c672cd42740e422628e485e691d2c29a30f7397b39d26918aeb57e4a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: RestSharp: RestSharp 112.1.0 \u2192 114.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"304ffca1c67703bbeeda80b01ee9cf61bf3253fa95957cb50e144d18ff6799bd"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: BenchmarkDotNet: BenchmarkDotNet 0.15.2 \u2192 0.15.8 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b533f74e585b27f6190e5a78c6a71e91925e7c42d1f8bf7f99698b4b7ae2a04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Security.Cryptography.Pkcs: System.Security.Cryptography.Pkcs 10.0.6 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"edd572fb02d8a7e8db0f572284d190dfb86b12cc1998bd7a809bff04351c2c60"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Security.Cryptography.Xml: System.Security.Cryptography.Xml 10.0.6 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b7f18e0586b0bc82cf2cb8cb793224dd269a4f6f699b8a1ddab7f6224441a4df"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.ServiceModel.Http: System.ServiceModel.Http 8.1.2 \u2192 10.0.652802 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"948aa579e68e26595ed5baa57ab20477210c851e57adcfaeb2868ec712f4b30f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Jint: Jint 4.0.3 \u2192 4.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"790b232c0b0334400014e018c96093e55ada493f8e533e713f2363ae55058a75"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Jint: Jint 4.0.3 \u2192 4.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"790b232c0b0334400014e018c96093e55ada493f8e533e713f2363ae55058a75"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.CodeAnalysis.Analyzers: Microsoft.CodeAnalysis.Analyzers 3.3.4 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"06142a75be059353016254e017c4df8c7ed4351c314b430c5c81f8b878c8ed9a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.CodeAnalysis.CSharp: Microsoft.CodeAnalysis.CSharp 4.7.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5ac1c5e76514695d0a3f7ad8e0f42f878fdedc04974f60a573405539ef6f2855"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Bogus: Bogus 35.6.4 \u2192 35.6.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d7c4cda242f448446a6d13add4822eb1867fe8b3824b38abb2a3624cf8919c7d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: DotNext: DotNext 6.2.1 \u2192 6.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1fd5a6932f3bf16e68c422b572fbe9c4d696e81402c7afd73e500b6a1ec6420a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Testing: Eventuous.Testing 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b254d517769d0ef2d1d086cdcbbb44db8ecc01f73be97a086b75c22a2c589d47"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Humanizer.Core: Humanizer.Core 2.14.1 \u2192 3.0.10 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b4ee1013f35b28ab6aff56558db933b2343c8a366b0603ec6de04f127a5e393"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge: Kurrent.Surge 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b066003db16391fabb33d2f957a11f4b95636fc0c3dc0f0a96aeb6f66482cfb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.TestHost: Microsoft.AspNetCore.TestHost 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a594b27146a65656a5e835f703f097bd83b1a41c9690ad70aca29b82a9631929"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.EnvironmentVariables: Microsoft.Extensions.Configuration.EnvironmentVariables 10.0.3 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"052f870d23c40b3425161c2fe9e06b218bac9cf0527d9159f61222495bf682b8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Hosting.Abstractions: Microsoft.Extensions.Hosting.Abstractions 10.0.5 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"efd6572e7f9750683e8ff20906e2a67a1e1910413ebf9e3427e1d76a0ec0341f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.TimeProvider.Testing: Microsoft.Extensions.TimeProvider.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4a2e364e95d6bcd440eed94b9e54618d28a79d78c671314c37c92469d064aff0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Extensions.Logging: Serilog.Extensions.Logging 9.0.2 \u2192 10.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6acb625c1887e32e71958a49d9587e8589a9ce363971c3fe99fb262ebb62e2b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Settings.Configuration: Serilog.Settings.Configuration 9.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ad8b937722893b69e4d51d60838a400356b7a98c88bc4f6e841fffc862361bd0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Console: Serilog.Sinks.Console 6.0.0 \u2192 6.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a8ac878e794249794789c2aa02b06bf9fd84a2c7ada7b66d8be162175a35b46c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Seq: Serilog.Sinks.Seq 9.0.0 \u2192 9.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94b209ddaa1c6e483506c5732df14d0b59e02c0867fc447321fca73b38dd87d1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Application: Eventuous.Application 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5e54e82be119026d704d3486cc99df860b7f1254366cb4ed2c0b8947c011f09a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Extensions.AspNetCore: Eventuous.Extensions.AspNetCore 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dbb9df53638fb591fcdf00aa69f6f65924bbfcbbb6f04bc866c662aaf56e9a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Extensions.DependencyInjection: Eventuous.Extensions.DependencyInjection 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"412f47c39096a3c57196200a77c6537b9246d2dbfdecd80ac66bd30e94819bdf"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.Core: Kurrent.Surge.Core 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a3067b6eeb01e4ec11f79792e42d05f3da2e2cf7c1857b81d8298ebb500a4fdb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Diagnostics.PerformanceCounter: System.Diagnostics.PerformanceCounter 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a055f0e7953c9029f82d25d35f3da2944e718c563ec7b0664cfc9180ebb824f9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: EventStore.Client.Grpc.Streams: EventStore.Client.Grpc.Streams 23.3.3 \u2192 23.3.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f418a90d4fc55fad9dbcf74f4b33c9261f911e50f3e202e584bbf1b02ce0c807"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.Client: Grpc.Net.Client 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3d2c36e8b1fbf5c416750cd31e616841e01efaadd9459bc081b487ba83a0f698"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.CommandLine.DragonFruit: System.CommandLine.DragonFruit 0.3.0-alpha.21216.1 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"08053456b4e01c10063470971f693781828ab726e2696cb1f254a9348128eb55"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Extensions.MudBlazor.StaticInput: Extensions.MudBlazor.StaticInput 3.2.1 \u2192 4.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"10914c6370f6f2b1a65bf1aa11f456ae9b0f95516d9ed3236f432684a47e6e7a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Components.WebAssembly: Microsoft.AspNetCore.Components.WebAssembly 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"258110ea3daf0f9a259a764713e09efcc97c0939f3757cf9841c9ba835aa9fca"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Components.WebAssembly.Authentication: Microsoft.AspNetCore.Components.WebAssembly.Authentication 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1c0142b25d6907bd13d44b0ba9ebaf086f9b7b62c57278804bf125c74ce8b16d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MudBlazor: MudBlazor 8.15.0 \u2192 9.5.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e72245e26990e9c9d395d8daa0827474aeb0609f53fdcff5695daa0572c9c2bb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Extensions.MudBlazor.StaticInput: Extensions.MudBlazor.StaticInput 3.2.1 \u2192 4.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"10914c6370f6f2b1a65bf1aa11f456ae9b0f95516d9ed3236f432684a47e6e7a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Components.WebAssembly.Server: Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a178ea7d3f39d1112c737a3b36929d0b0c3b16d57ffdb2277635aeb45004d2b2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Hosting.WindowsServices: Microsoft.Extensions.Hosting.WindowsServices 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9eeba6a533694fb0792ff11f1e89ab27b9bfeaebd32317146fe83b8a544be1dc"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.IdentityModel.Tokens: Microsoft.IdentityModel.Tokens 8.14.0 \u2192 8.19.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"427fb11267b0ca4cb1e7e37e38834d4061908e3e1cceee2cd00aa8a1799c1ee1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MudBlazor: MudBlazor 8.15.0 \u2192 9.5.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e72245e26990e9c9d395d8daa0827474aeb0609f53fdcff5695daa0572c9c2bb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MudBlazor.Markdown: MudBlazor.Markdown 8.11.0 \u2192 9.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1158e1ac0d58301decea715dc673b75f7908f4c5e6dc22a1c8558556cc7c15c1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: SharpDotYaml.Extensions.Configuration: SharpDotYaml.Extensions.Configuration 0.3.1 \u2192 0.4.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e78180b658c748c844c5df5053bf73dd10b1e053e09de3c79b728a727fe0a8e4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.ComponentModel.Composition: System.ComponentModel.Composition 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4215de364453a1eb6a9b39426be9b03c365e0ab82f6ecff57d5459429442176"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.IdentityModel.Tokens.Jwt: System.IdentityModel.Tokens.Jwt 8.14.0 \u2192 8.19.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dd511ba2c5b237bd4227729986865d25bb6646c6fb629b8eb7281557e1de800d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.Client: Grpc.Net.Client 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3d2c36e8b1fbf5c416750cd31e616841e01efaadd9459bc081b487ba83a0f698"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.StatusProto: Grpc.StatusProto 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7675003f11f135808421172e1b3282319a759e3feabafebe47b24832752b31e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.1.0 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: TUnit: TUnit 1.0.39 \u2192 1.56.18 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cdbfd01b22880a5b26f7117ca7b887cc3bcba96ac5b63d1d001c777ee8ca80b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentValidation.DependencyInjectionExtensions: FluentValidation.DependencyInjectionExtensions 12.0.0 \u2192 12.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"601e32ea3c4fcc6b79c042517b85e0277cf85af7dec8d019f7cb9fc6fe2c5049"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore: Grpc.AspNetCore 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e8a866603141c72e80acfcdb9a66c4d7ed4ff16337fe3e1c81615d3f049898f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore.Web: Grpc.AspNetCore.Web 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c19082d161ee2486d1d59e46dfdc4d991ed64358647fcacb33dba02b5b449f9c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.StatusProto: Grpc.StatusProto 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7675003f11f135808421172e1b3282319a759e3feabafebe47b24832752b31e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Humanizer.Core: Humanizer.Core 2.14.1 \u2192 3.0.10 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b4ee1013f35b28ab6aff56558db933b2343c8a366b0603ec6de04f127a5e393"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Grpc.JsonTranscoding: Microsoft.AspNetCore.Grpc.JsonTranscoding 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9aba63d08436724b5d8106e75693a5e8995e88197761954a5ec18f080a1b1a05"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Scrutor: Scrutor 6.1.0 \u2192 7.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"703b793e70fb5993af875f880dec2a4490a5777b67812bc67b0e703a4e7f6ee2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.Client: Grpc.Net.Client 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3d2c36e8b1fbf5c416750cd31e616841e01efaadd9459bc081b487ba83a0f698"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: RestSharp: RestSharp 112.1.0 \u2192 114.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"304ffca1c67703bbeeda80b01ee9cf61bf3253fa95957cb50e144d18ff6799bd"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Testcontainers: Testcontainers 4.7.0 \u2192 4.12.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a041fe4a4d7adcb61ccf5297fbda311163874e9a743b2a25862e54c0c948ae0e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Bogus: Bogus 35.6.4 \u2192 35.6.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d7c4cda242f448446a6d13add4822eb1867fe8b3824b38abb2a3624cf8919c7d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: DiffEngine: DiffEngine 16.7.1 \u2192 19.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ac9372be07862de5944e64eafa274040e8f830ab24b8d7ffa91a99bc25b90e36"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: DotNext: DotNext 6.2.1 \u2192 6.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1fd5a6932f3bf16e68c422b572fbe9c4d696e81402c7afd73e500b6a1ec6420a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.StatusProto: Grpc.StatusProto 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7675003f11f135808421172e1b3282319a759e3feabafebe47b24832752b31e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Humanizer.Core: Humanizer.Core 2.14.1 \u2192 3.0.10 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b4ee1013f35b28ab6aff56558db933b2343c8a366b0603ec6de04f127a5e393"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration: Microsoft.Extensions.Configuration 10.0.3 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfed1a37193e5ac5f3e8801aaabf2ac7777d85c43d5c1d77559be94c1b696e23"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.EnvironmentVariables: Microsoft.Extensions.Configuration.EnvironmentVariables 10.0.3 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"052f870d23c40b3425161c2fe9e06b218bac9cf0527d9159f61222495bf682b8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.Json: Microsoft.Extensions.Configuration.Json 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4230d05b7c7d3db0149424a3a7d927feeab5aa787aafff4f3cc6bedc2f96b8ef"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.DependencyInjection: Microsoft.Extensions.DependencyInjection 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef055357f0d3faf9f0ba06a196104811089401bd5b0d3e787f800b06c65ae3e4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.TimeProvider.Testing: Microsoft.Extensions.TimeProvider.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4a2e364e95d6bcd440eed94b9e54618d28a79d78c671314c37c92469d064aff0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Extensions.Hosting: Serilog.Extensions.Hosting 9.0.0 \u2192 10.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bb7d5497475defb20735d439c2045f2869db7b16b32df5090bd644f71735eccc"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Extensions.Logging: Serilog.Extensions.Logging 9.0.2 \u2192 10.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6acb625c1887e32e71958a49d9587e8589a9ce363971c3fe99fb262ebb62e2b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Settings.Configuration: Serilog.Settings.Configuration 9.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ad8b937722893b69e4d51d60838a400356b7a98c88bc4f6e841fffc862361bd0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Console: Serilog.Sinks.Console 6.0.0 \u2192 6.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a8ac878e794249794789c2aa02b06bf9fd84a2c7ada7b66d8be162175a35b46c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Seq: Serilog.Sinks.Seq 9.0.0 \u2192 9.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94b209ddaa1c6e483506c5732df14d0b59e02c0867fc447321fca73b38dd87d1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: TUnit: TUnit 1.0.39 \u2192 1.56.18 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cdbfd01b22880a5b26f7117ca7b887cc3bcba96ac5b63d1d001c777ee8ca80b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Bogus: Bogus 35.6.4 \u2192 35.6.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d7c4cda242f448446a6d13add4822eb1867fe8b3824b38abb2a3624cf8919c7d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NCrontab: NCrontab 3.3.3 \u2192 3.4.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"51354127006695bc7201dc36d5dc9174cd892929f683302e96c2b91e5de101db"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions.Analyzers: FluentAssertions.Analyzers 0.33.0 \u2192 0.34.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8486caf2377dfe3c61a4a5195b0962e11fb8492fd6e4fd5a00586f20e873881d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.IdentityModel.JsonWebTokens: Microsoft.IdentityModel.JsonWebTokens 8.14.0 \u2192 8.19.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8113688276b451f46400b6dc595252aa84895caa1c72fc507ee981ddc3b2afc4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: YamlDotNet: YamlDotNet 16.3.0 \u2192 18.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b141f163bc41303aaa36345b40d2bb4f54748fa1f4ffba151dd7fa53f79e426"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Scrutor: Scrutor 6.1.0 \u2192 7.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"703b793e70fb5993af875f880dec2a4490a5777b67812bc67b0e703a4e7f6ee2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: EventStore.Client.Grpc.Streams: EventStore.Client.Grpc.Streams 23.3.3 \u2192 23.3.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f418a90d4fc55fad9dbcf74f4b33c9261f911e50f3e202e584bbf1b02ce0c807"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.TestHost: Microsoft.AspNetCore.TestHost 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a594b27146a65656a5e835f703f097bd83b1a41c9690ad70aca29b82a9631929"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: SharpCompress: SharpCompress 0.48.0 \u2192 0.49.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d6f3502b8610f23c81b1898b6dd64f3dfc2aea55dce0bab4124f83b56acbdef2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Novell.Directory.Ldap.NETStandard: Novell.Directory.Ldap.NETStandard 3.6.0 \u2192 4.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"255ea5268499e741240ae2130cf84c0ff639b7c42b092bdf5924b7f0b24193fd"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.ComponentModel.Composition: System.ComponentModel.Composition 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4215de364453a1eb6a9b39426be9b03c365e0ab82f6ecff57d5459429442176"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: EventStore.Client.Grpc.Streams: EventStore.Client.Grpc.Streams 23.3.3 \u2192 23.3.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f418a90d4fc55fad9dbcf74f4b33c9261f911e50f3e202e584bbf1b02ce0c807"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.TestHost: Microsoft.AspNetCore.TestHost 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a594b27146a65656a5e835f703f097bd83b1a41c9690ad70aca29b82a9631929"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Polly: Polly 8.6.3 \u2192 8.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d8e52652bf969ee5b0c88fa2f9936ec03434008405c42e83b1ba8fd6eaec5292"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: SharpCompress: SharpCompress 0.48.0 \u2192 0.49.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d6f3502b8610f23c81b1898b6dd64f3dfc2aea55dce0bab4124f83b56acbdef2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.ComponentModel.Composition: System.ComponentModel.Composition 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4215de364453a1eb6a9b39426be9b03c365e0ab82f6ecff57d5459429442176"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: EventStore.Client.Grpc.Streams: EventStore.Client.Grpc.Streams 23.3.3 \u2192 23.3.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f418a90d4fc55fad9dbcf74f4b33c9261f911e50f3e202e584bbf1b02ce0c807"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.TestHost: Microsoft.AspNetCore.TestHost 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a594b27146a65656a5e835f703f097bd83b1a41c9690ad70aca29b82a9631929"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Polly: Polly 8.6.3 \u2192 8.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d8e52652bf969ee5b0c88fa2f9936ec03434008405c42e83b1ba8fd6eaec5292"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: SharpCompress: SharpCompress 0.48.0 \u2192 0.49.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d6f3502b8610f23c81b1898b6dd64f3dfc2aea55dce0bab4124f83b56acbdef2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: IdentityModel: IdentityModel 7.0.0 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"65f357d4f3c80232c8d519ce653312ac0febb80a6cea14ef5dff8e465e58f492"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.ComponentModel.Composition: System.ComponentModel.Composition 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4215de364453a1eb6a9b39426be9b03c365e0ab82f6ecff57d5459429442176"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.IdentityModel.Tokens.Jwt: System.IdentityModel.Tokens.Jwt 8.14.0 \u2192 8.19.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dd511ba2c5b237bd4227729986865d25bb6646c6fb629b8eb7281557e1de800d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.ComponentModel.Composition: System.ComponentModel.Composition 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4215de364453a1eb6a9b39426be9b03c365e0ab82f6ecff57d5459429442176"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Scrutor: Scrutor 6.1.0 \u2192 7.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"703b793e70fb5993af875f880dec2a4490a5777b67812bc67b0e703a4e7f6ee2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore: Grpc.AspNetCore 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e8a866603141c72e80acfcdb9a66c4d7ed4ff16337fe3e1c81615d3f049898f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Application: Eventuous.Application 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5e54e82be119026d704d3486cc99df860b7f1254366cb4ed2c0b8947c011f09a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Extensions.AspNetCore: Eventuous.Extensions.AspNetCore 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dbb9df53638fb591fcdf00aa69f6f65924bbfcbbb6f04bc866c662aaf56e9a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Extensions.DependencyInjection: Eventuous.Extensions.DependencyInjection 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"412f47c39096a3c57196200a77c6537b9246d2dbfdecd80ac66bd30e94819bdf"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentValidation.DependencyInjectionExtensions: FluentValidation.DependencyInjectionExtensions 12.0.0 \u2192 12.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"601e32ea3c4fcc6b79c042517b85e0277cf85af7dec8d019f7cb9fc6fe2c5049"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.StatusProto: Grpc.StatusProto 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7675003f11f135808421172e1b3282319a759e3feabafebe47b24832752b31e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.Elasticsearch: Kurrent.Connectors.Elasticsearch 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8dedb2a1deb4f19d411c0b42e0589a4495a9614aaa594717b2a96a4bc3753b11"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.Http: Kurrent.Connectors.Http 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"13ee8c594b707e4c4ce441d9bfcd463b7f0946207cd1f9319549bee50de359d9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.Kafka: Kurrent.Connectors.Kafka 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ee623e35fa4b0febe0e417f0aa5589a46b48ff78670550a3699c242f9791176a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.MongoDB: Kurrent.Connectors.MongoDB 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"026925f32f6d49ef7fa8b6d448676e1f2217a81bd873d2b69c6769abd90bc142"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.Pulsar: Kurrent.Connectors.Pulsar 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"88d0f3fbd374f5dbc8b8cd4e77269ddedf0d5bdfbd1cfe475b786fe7fe823572"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.RabbitMQ: Kurrent.Connectors.RabbitMQ 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"da5a00694b792831fb18a10a34d0d5f67b9406c0f628e3ee5962f0e28e4b2f77"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.Sql: Kurrent.Connectors.Sql 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"147e51898e30237da076e0c14497256680ff6da3a0ba90c6617c288637897632"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Connectors.Webhook: Kurrent.Connectors.Webhook 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0fa4d408734d9ac8523fa5dd9aecbbf4cb515992c092e0ed1421764d642aadb5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge: Kurrent.Surge 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b066003db16391fabb33d2f957a11f4b95636fc0c3dc0f0a96aeb6f66482cfb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.Core: Kurrent.Surge.Core 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a3067b6eeb01e4ec11f79792e42d05f3da2e2cf7c1857b81d8298ebb500a4fdb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.DataProtection: Kurrent.Surge.DataProtection 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"25d86de4ae741c17d02e7e9599d57afe7fef67dd3fb102ff647a0e02b731eea1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Grpc.JsonTranscoding: Microsoft.AspNetCore.Grpc.JsonTranscoding 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9aba63d08436724b5d8106e75693a5e8995e88197761954a5ec18f080a1b1a05"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog: Serilog 4.3.0 \u2192 4.3.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"960fbbfaff057572c558f30824c18cce4ce212d442e0a2fa2e34bda122ebbe90"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Extensions.Logging: Serilog.Extensions.Logging 9.0.2 \u2192 10.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6acb625c1887e32e71958a49d9587e8589a9ce363971c3fe99fb262ebb62e2b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Settings.Configuration: Serilog.Settings.Configuration 9.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ad8b937722893b69e4d51d60838a400356b7a98c88bc4f6e841fffc862361bd0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Console: Serilog.Sinks.Console 6.0.0 \u2192 6.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a8ac878e794249794789c2aa02b06bf9fd84a2c7ada7b66d8be162175a35b46c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.Sinks.Seq: Serilog.Sinks.Seq 9.0.0 \u2192 9.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94b209ddaa1c6e483506c5732df14d0b59e02c0867fc447321fca73b38dd87d1"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Testing: Eventuous.Testing 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b254d517769d0ef2d1d086cdcbbb44db8ecc01f73be97a086b75c22a2c589d47"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge: Kurrent.Surge 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b066003db16391fabb33d2f957a11f4b95636fc0c3dc0f0a96aeb6f66482cfb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.ClientFactory: Grpc.Net.ClientFactory 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"45a1896aa26aa704fc4000c0ffa31c0b1658d36652981fcac80697f3b983fa06"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.StatusProto: Grpc.StatusProto 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7675003f11f135808421172e1b3282319a759e3feabafebe47b24832752b31e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge: Kurrent.Surge 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b066003db16391fabb33d2f957a11f4b95636fc0c3dc0f0a96aeb6f66482cfb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.DuckDB: Kurrent.Surge.DuckDB 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fb1d3df81e5eb2534f9b6c0872988b6d867d2455d8f68f53a0b5020dc03f1714"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.1.0 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: TUnit: TUnit 1.0.39 \u2192 1.56.18 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cdbfd01b22880a5b26f7117ca7b887cc3bcba96ac5b63d1d001c777ee8ca80b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentValidation.DependencyInjectionExtensions: FluentValidation.DependencyInjectionExtensions 12.0.0 \u2192 12.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"601e32ea3c4fcc6b79c042517b85e0277cf85af7dec8d019f7cb9fc6fe2c5049"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore: Grpc.AspNetCore 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e8a866603141c72e80acfcdb9a66c4d7ed4ff16337fe3e1c81615d3f049898f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Quack: Kurrent.Quack 0.0.0-alpha.176 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eb4069bf81e21b417c21e53533b2bf1dfeb47514910dafeeb5a8f2bf4d079ddc"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.Core: Kurrent.Surge.Core 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a3067b6eeb01e4ec11f79792e42d05f3da2e2cf7c1857b81d8298ebb500a4fdb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.DuckDB: Kurrent.Surge.DuckDB 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fb1d3df81e5eb2534f9b6c0872988b6d867d2455d8f68f53a0b5020dc03f1714"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NJsonSchema: NJsonSchema 11.4.0 \u2192 11.6.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5341bc4536e8d613854d2ca6cfa584dc87635dde903a1c3e15a738436e8d9857"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Dapper: Dapper 2.1.66 \u2192 2.1.79 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4fe29cdf6ffa4e04e6b92e6e75cc02cb00db354a969a8579b466d8b1ddfc0024"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: KurrentDB.Client: KurrentDB.Client 1.0.0 \u2192 1.4.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bb9c5a5a863108062f0c5a02cac872fbfcb4027cf777f8a8f50343dd88dc1ac2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Bogus: Bogus 35.6.4 \u2192 35.6.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d7c4cda242f448446a6d13add4822eb1867fe8b3824b38abb2a3624cf8919c7d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Apache.Arrow.Flight.AspNetCore: Apache.Arrow.Flight.AspNetCore 22.1.0 \u2192 23.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f9ac67d0ddb1c687d8ae4316432ae4704cf0d271138b13bb40357bed10dd0aad"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Apache.Arrow.Flight.Sql: Apache.Arrow.Flight.Sql 22.1.0 \u2192 23.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d1496a2036f2490f8db4afbe0c59fd7c6419822277f6a09f3bb3fcfff7e97c0e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Application: Eventuous.Application 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5e54e82be119026d704d3486cc99df860b7f1254366cb4ed2c0b8947c011f09a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Eventuous.Extensions.DependencyInjection: Eventuous.Extensions.DependencyInjection 0.15.0 \u2192 0.16.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"412f47c39096a3c57196200a77c6537b9246d2dbfdecd80ac66bd30e94819bdf"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Jint: Jint 4.0.3 \u2192 4.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"790b232c0b0334400014e018c96093e55ada493f8e533e713f2363ae55058a75"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Quack: Kurrent.Quack 0.0.0-alpha.176 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eb4069bf81e21b417c21e53533b2bf1dfeb47514910dafeeb5a8f2bf4d079ddc"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Quack.Arrow: Kurrent.Quack.Arrow 0.0.0-alpha.176 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8394428cbcefd2ae9eea9175485eed8cd86f96a7e28bb5f20fcc29582904e1de"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Kurrent.Surge.Core: Kurrent.Surge.Core 1.1.1-alpha.1.71 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a3067b6eeb01e4ec11f79792e42d05f3da2e2cf7c1857b81d8298ebb500a4fdb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Grpc.JsonTranscoding: Microsoft.AspNetCore.Grpc.JsonTranscoding 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9aba63d08436724b5d8106e75693a5e8995e88197761954a5ec18f080a1b1a05"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit: NUnit 3.14.0 \u2192 4.6.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c37c3903bc6f44579ed0951ee4896558dc987bc8f8f42919c792c944ab18262e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit3TestAdapter: NUnit3TestAdapter 5.2.0 \u2192 6.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4d94bcb7e7737fd97dfa9e239a890c95433b4c78a1ea635b334a5e6b01b1bed3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit: NUnit 3.14.0 \u2192 4.6.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c37c3903bc6f44579ed0951ee4896558dc987bc8f8f42919c792c944ab18262e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit3TestAdapter: NUnit3TestAdapter 5.2.0 \u2192 6.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4d94bcb7e7737fd97dfa9e239a890c95433b4c78a1ea635b334a5e6b01b1bed3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3.extensibility.core: xunit.v3.extensibility.core 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4847cbb36322830e24ef5efc198c1b34b540a9430e991e315a0cfae52bd5cea2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.TestHost: Microsoft.AspNetCore.TestHost 10.0.0 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a594b27146a65656a5e835f703f097bd83b1a41c9690ad70aca29b82a9631929"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Serilog.AspNetCore: Serilog.AspNetCore 9.0.0 \u2192 10.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c541905d32e1db83986413f99d40843f5fdb7b6824af3058e03921b13d0fef06"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.OpenApi.Readers: Microsoft.OpenApi.Readers 1.6.28 \u2192 1.6.29 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4054bb0e0d30bc24ff4c4f9c1925b6c79b5d668ea0d12a78cca877d68c70df7a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit: NUnit 3.14.0 \u2192 4.6.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c37c3903bc6f44579ed0951ee4896558dc987bc8f8f42919c792c944ab18262e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit3TestAdapter: NUnit3TestAdapter 5.2.0 \u2192 6.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4d94bcb7e7737fd97dfa9e239a890c95433b4c78a1ea635b334a5e6b01b1bed3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.Client: Grpc.Net.Client 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3d2c36e8b1fbf5c416750cd31e616841e01efaadd9459bc081b487ba83a0f698"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.StatusProto: Grpc.StatusProto 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7675003f11f135808421172e1b3282319a759e3feabafebe47b24832752b31e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.1.0 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: TUnit: TUnit 1.0.39 \u2192 1.56.18 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cdbfd01b22880a5b26f7117ca7b887cc3bcba96ac5b63d1d001c777ee8ca80b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Linq.Async: System.Linq.Async 6.0.3 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e79e9c6a8cc4011f440cb8f11963f1e402e1886d60877c0ff4d00b9ab904a2d3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 6.12.2 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore: Grpc.AspNetCore 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e8a866603141c72e80acfcdb9a66c4d7ed4ff16337fe3e1c81615d3f049898f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit: NUnit 3.14.0 \u2192 4.6.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c37c3903bc6f44579ed0951ee4896558dc987bc8f8f42919c792c944ab18262e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit3TestAdapter: NUnit3TestAdapter 5.2.0 \u2192 6.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4d94bcb7e7737fd97dfa9e239a890c95433b4c78a1ea635b334a5e6b01b1bed3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit: NUnit 3.14.0 \u2192 4.6.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c37c3903bc6f44579ed0951ee4896558dc987bc8f8f42919c792c944ab18262e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NUnit3TestAdapter: NUnit3TestAdapter 5.2.0 \u2192 6.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4d94bcb7e7737fd97dfa9e239a890c95433b4c78a1ea635b334a5e6b01b1bed3"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.32.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Net.Client: Grpc.Net.Client 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3d2c36e8b1fbf5c416750cd31e616841e01efaadd9459bc081b487ba83a0f698"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.Tools: Grpc.Tools 2.72.0 \u2192 2.81.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef9a90da4b3ec58fb654d023f0488094550f2fae6e1e5d37269dc2a7962be7e9"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.1.0 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 2.0.1 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: TUnit: TUnit 1.0.39 \u2192 1.56.18 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cdbfd01b22880a5b26f7117ca7b887cc3bcba96ac5b63d1d001c777ee8ca80b6"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing: Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing 1.1.2 \u2192 1.1.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1405d97480bd29c23e307eee084115c6f3303944f7b04bc6adfe3866e6a1cd97"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.CodeAnalysis.CSharp.Workspaces: Microsoft.CodeAnalysis.CSharp.Workspaces 4.7.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6a46acddb2e227f6fc38aeeb2c5d2082b2d0f5528095c7d8b4fcc4358c7bcc99"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NuGet.Protocol: NuGet.Protocol 6.7.1 \u2192 7.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a11aeac741b3a84db29a31d487d1a4b0bf42a41f97cdd3441b74cf0b7fb96bdb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: JetBrains.Annotations: JetBrains.Annotations 2025.2.2 \u2192 2026.2.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9af93d06c799f86400b2ce547111ffc62f756d5bd61f4f46798e79e3c9971d04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CodeCoverage: Microsoft.Testing.Extensions.CodeCoverage 18.0.4 \u2192 18.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94a3d307974e637d426b419e3eaf0607136a3f26b427d920a175ac9e33123a2d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.CrashDump: Microsoft.Testing.Extensions.CrashDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bdb0160c39424ca50d61c5d4499db990a8e54d674071dc6f73d9d5451fc1cace"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.HangDump: Microsoft.Testing.Extensions.HangDump 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"185871673ec63634fcab28f46857bec3b3307cb1e5f7cd2f3f4caf2eb7d45209"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Testing.Extensions.TrxReport: Microsoft.Testing.Extensions.TrxReport 1.9.0 \u2192 2.2.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00d73807fe3da43d02bbe28d1acd7a0420797d5f634227436676d62f564010b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.1.0 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Azure.Identity: Azure.Identity 1.16.0 \u2014 Other"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2c48b8b518e33f322169a01b4e304c093ae4e143a4f32e23f92274ffeccb9051"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: EventStore.Client: EventStore.Client 22.0.0 \u2014 Legacy EventStore.Client.Grpc.Streams \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7a547aa5c96ec8f0a0722d1a65dfaa1db3d67a36021ec4b877dec496d666b708"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: System.CommandLine.DragonFruit: System.CommandLine.DragonFruit 0.3.0-alpha.21216.1 \u2014 Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9856bf5b583a98ffc5f4a0ebb02807c894650b381470244ae50e050083ca2051"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: EventStore.Client: EventStore.Client 22.0.0 \u2014 Legacy EventStore.Client.Grpc.Streams \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7a547aa5c96ec8f0a0722d1a65dfaa1db3d67a36021ec4b877dec496d666b708"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: EventStore.Client: EventStore.Client 22.0.0 \u2014 Legacy EventStore.Client.Grpc.Streams \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7a547aa5c96ec8f0a0722d1a65dfaa1db3d67a36021ec4b877dec496d666b708"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: IdentityModel: IdentityModel 7.0.0 \u2014 Legacy Duende.IdentityModel \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfc9df13ac5cecb816e0f48b4935afc9630dd1ef87bc3fa0f4982a5d21afd263"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: EventStore.Client: EventStore.Client 22.0.0 \u2014 Legacy EventStore.Client.Grpc.Streams \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7a547aa5c96ec8f0a0722d1a65dfaa1db3d67a36021ec4b877dec496d666b708"}},{"ruleId":"D14","level":"note","message":{"text":"Licenses scanned: 169 packages scanned; 4 distinct SPDX licenses."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1d29d66daec20840f6831f63c1b66b87c40390635ef3e9f728002964c77e88d4"}},{"ruleId":"D15","level":"warning","message":{"text":"git history depth insufficient: git history depth insufficient \u2014 install a full clone for reliable trend signal."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ab15c4a7c72fcad940ff795282e210fd7f3769431dab6bffd8ce9ee8f7ee13f1"}},{"ruleId":"D16","level":"warning","message":{"text":"single-maintainer \u2014 knowledge-concentration (bus factor) risk: single-maintainer \u2014 knowledge-concentration (bus factor) risk (0 author(s) across 0 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4b49d961df742f0e507f4cc5c8094fb077ba0391a27fd015d18320865187719"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: cleanup cast: https://github.com/dotnet/aspnetcore/issues/41455 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":434}}}],"partialFingerprints":{"codehealthFindingId/v1":"13ed844b37c7cd47520f07ba5ea366e25f96dcaa65f3954b378c67e2b7f9ed71"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: cleanup cast: https://github.com/dotnet/aspnetcore/issues/41455 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":444}}}],"partialFingerprints":{"codehealthFindingId/v1":"13ed844b37c7cd47520f07ba5ea366e25f96dcaa65f3954b378c67e2b7f9ed71"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: cleanup cast: https://github.com/dotnet/aspnetcore/issues/41455 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":450}}}],"partialFingerprints":{"codehealthFindingId/v1":"13ed844b37c7cd47520f07ba5ea366e25f96dcaa65f3954b378c67e2b7f9ed71"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":653}}}],"partialFingerprints":{"codehealthFindingId/v1":"94632d267e6a71d215ef61dcee0138a7499305968119c9939fcd86979c85ec5f"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: UnconditionalSuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":697}}}],"partialFingerprints":{"codehealthFindingId/v1":"3903c158f37589a711ae06c6230d9a9d1b0f7c13f4c132dbf17e2ff7d4cb0327"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: UnconditionalSuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":745}}}],"partialFingerprints":{"codehealthFindingId/v1":"3903c158f37589a711ae06c6230d9a9d1b0f7c13f4c132dbf17e2ff7d4cb0327"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CA1416 // Validate platform compatibility"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/CertificateManager.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"3903c158f37589a711ae06c6230d9a9d1b0f7c13f4c132dbf17e2ff7d4cb0327"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/MacOSCertificateManager.cs"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"0348260d17cee08d5bdc6b79be94ce7c29038643e1ac734e9fa0416da1dfc6a5"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/MacOSCertificateManager.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"8acc122a968e0e393b345465e3a6a3cbbf2c9599bb6aebe70b4d34c92eab845c"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/DevCertificates/MacOSCertificateManager.cs"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"0348260d17cee08d5bdc6b79be94ce7c29038643e1ac734e9fa0416da1dfc6a5"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Properties/JetbrainsAnnotations.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"e921f7eded2bcaee304f1c86aa2aa10ea778130eda9260cf7f2ce204fee39871"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/FileStreamExtensions.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb61fefa78e3435bd5dfcde5c6f7d49ebd25097dad125cd2a4c5a39d0da686b2"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/Helper.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"86f773738c17ef02ff0b9753dc22951051929f2a2e3ee30e60590be55d378f50"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/Helper.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"86f773738c17ef02ff0b9753dc22951051929f2a2e3ee30e60590be55d378f50"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: encode??? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/HostName.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"85f83f0456ae4bc916b26be3dbd6915445825626f0e42584ecbf12dcaed56478"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider union \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/Utils/LowAllocReadOnlyMemory.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bc6c01344f4644fee5033fde08b259e6cbf4c2bf53dce08d1cd297f2e4dd140"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: avoid \u0027is\u0027 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Authentication/InternalAuthentication/UserManagementService.cs"},"region":{"startLine":438}}}],"partialFingerprints":{"codehealthFindingId/v1":"4950ebd2b09e6548b5d426eda16aeeeda30ddffc3a3ace2ab74071419888628e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move this to EventStore.Plugins when we\u0027re decoupling the StreamPolicies Plugin \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Authorization/AuthorizationPolicies/IPolicySelectorFactory.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e29b0252f495ad2ce6f320de1fbc3be36f59cba4114ee8c25bae6c3115f2571"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ReadResponseException.StreamNotFound) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Authorization/AuthorizationPolicies/StreamBasedAuthorizationPolicyRegistry.cs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8e3e9c4a897b86abcecb43264b64f64c19a0ba70b163c75103cc33150122d8"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CA2012"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Authorization/LegacyStreamPermissionAssertion.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"625328d482d010e39ffafb5f6ed23edf0449344530fbc3aafc8a5d95f92e71b8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: support other cases by checking that the expected version is \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/Extensions/SystemClient.cs"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e33d7dfe3dfda9e0d066ed549d2438a6b52c657158e1b908a2397226ac4ec22"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/QueuedHandlerThreadPool.cs"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"cce059ed62ce17c0ea4205e638011ce84f4a4a83fd822798d7d9f9661c8d19c0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We need to respect readiness barrier here and delay messages if the scheduler is not yet started \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/ThreadPoolMessageScheduler.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e598ce772d7ab3e3347e29c0ac9b0e30f1fae782415c8f7936a3d30ee9110f1"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/ThreadPoolMessageScheduler.cs"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"801f476295f3bb7d75911ff1f538993998460c6588c4c579be8b49d1cdf580be"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/ThreadPoolMessageScheduler.StateMachine.cs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"b485a4aae20838a7e52a782d27fe10e27a440606f95b1e54ea88ad789e3dcf23"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/ThreadPoolMessageScheduler.StateMachine.cs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"b485a4aae20838a7e52a782d27fe10e27a440606f95b1e54ea88ad789e3dcf23"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Bus/ThreadPoolMessageScheduler.StateMachine.cs"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"b485a4aae20838a7e52a782d27fe10e27a440606f95b1e54ea88ad789e3dcf23"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: could consider taking into account capacity not used by children because \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Caching/CompositeCacheResizer.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"df73a7b1d2909b81d7ba7ddc6b340b9e53c9044a2c6dbe8ccd4ed15133d9715e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: hits and misses \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Caching/IDynamicCache.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba54227f1be2a1a928d2721edf6ab46d1591f237723d99d9451c8f6841f75a29"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (CryptographicException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Certificates/CertificateUtils.cs"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d1e3b265c0d9d39d950941add46d3a337cf51620d25f2e6baf01b7d181239f0"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Certificates/CertificateUtils.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d1e3b265c0d9d39d950941add46d3a337cf51620d25f2e6baf01b7d181239f0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: Align with Gossip Dead Member Removal Time once the options is in ClusterNodeOptions \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Cluster/EventStoreClusterClientCache.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"a13bac517788f225451f361fecbda6a38e7724db053f192a2f1f08233a2fc36f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo(clc) : promote these to file backed checkpoints re:project-io \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/ClusterVNode.cs"},"region":{"startLine":384}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ae0f164b5d8c6e9210a00cc69b48a67e8d337d12307cd463d27f0142dbb2d78"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO CC can have multiple threads working on subscription if partition \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/ClusterVNode.cs"},"region":{"startLine":1230}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ae0f164b5d8c6e9210a00cc69b48a67e8d337d12307cd463d27f0142dbb2d78"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: not sure if we should do this here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Configuration/ClusterVNodeOptions.cs"},"region":{"startLine":452}}}],"partialFingerprints":{"codehealthFindingId/v1":"64367548b46aa92fe53f9180bc4c4990153e387a2158c7fd7861702f25ffc79f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: something more permanent. exclude GossipSeed default because it overrides gossip seeds specified as arrays \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Configuration/Sources/KurrentDBDefaultValuesConfigurationSource.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f893a91ff5f22d6d50039a157995577bbae065e978def6f376306ac56d62883"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo probably better to use a safe handle \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DataStructures/ProbabilisticFilter/AlignedMemory.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9e0bd40b8bf5949d033b543e707808e50e0d3d0e33efd31ff74024b3bbca764"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo later: maybe could be a common implementation across the strategies that reads \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DataStructures/ProbabilisticFilter/FileStreamPersistence.cs"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"50b2c14ef801649f7a065eab0784fd0dc6bb3682c42a2f95c2150bca67536e6b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: OpenOrCreate can be CreateNew if the mininode closed the file before declaring itself \u0027stopped\u0027 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DataStructures/ProbabilisticFilter/MemoryMappedFilePersistence.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"3dcc4f01dfff12c3f2f9c03e9195e5fa8eef0bd12bc136d55dc11fdc24a82ec9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo later: maybe could be a common implementation across the strategies that reads \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DataStructures/ProbabilisticFilter/MemoryMappedFilePersistence.cs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"3dcc4f01dfff12c3f2f9c03e9195e5fa8eef0bd12bc136d55dc11fdc24a82ec9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: confirm is this is true on ARM \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DataStructures/ProbabilisticFilter/PersistentBloomFilter.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"61876162b5a48f13cf6888e963ace30f10ff851ddc5f40c025d112d9e26136b5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (IOException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DuckDB/DuckDBConnectionPoolLifetime.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"70d9f1f584d94b48e3503d16f65827e4ced93b2c2b34282e9aff551be65fcf44"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/DuckDB/DuckDBConnectionPoolLifetime.cs"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"70d9f1f584d94b48e3503d16f65827e4ced93b2c2b34282e9aff551be65fcf44"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: move away from this and towards bespoke implementations (like AuthReadResponseHandler) to avoid having to \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Helpers/ReadStreamEventsBackwardHandlers.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"9daa0db5c4de450109a8c1b1826e15c6b26c2c9dc1770a155204532082c90689"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: else if the requested start version is less than or equal to what we have in this ptable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Index/PTable.cs"},"region":{"startLine":1027}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb51ddb2c7b2d29a15215fdf7c954389656e9c27633f8972dd6de46e79951929"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: rename to GetOrReserveStream when we generalise to EventTypes too. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/LogAbstraction/INameIndexExtensions.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"de2a6d522f3016aa1cbf8570dcbd7f23bde51bbe6a6164328afd79dab0080541"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: use .Span instead of .ToArray() when we move to .NET 10 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Messages/ClientMessage.cs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7a6cd758dbde6b12b4533c3d62618737a5c4b0399788648dc7236bf3b661509"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: use .Span instead of .ToArray() when we move to .NET 10 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Messages/StorageMessage.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"95c1c193a257aadde2f48c810735af32173863d34526dd3246b8ffcefcbdcf3f"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Messaging/AsyncTaskEnvelope.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"7aa75156512cb7134d764cfdddb75d776839a90922132ba706f10b9e235b13a1"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Messaging/ContinuationEnvelope.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8951635881771dab9d097890bac550fd69d2327f2634b4fc183922ae71bc02f"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Messaging/ContinuationEnvelope.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8951635881771dab9d097890bac550fd69d2327f2634b4fc183922ae71bc02f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: expiration? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Messaging/RequestResponseDispatcher.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"a24e079b162cefff87199f022c66df1c9de6717971fcd3ac4e9b6efa0998c603"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider sampling if this turns out to have a performance implication. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Metrics/LogicalChunkReadDistributionMetric.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"27b604a975fb31e3175c53c48b008c3e3442f267dbf8a55f08de6271309cb889"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: consider buffering last 10 events to avoid race condition \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/AwakeReaderService/AwakeService.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"f669f3c3ddc2a1feec2e32a5426dbf5388fad24f710684327563767613237ae1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: histogram metric? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/HttpSendService.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5199e95e25533e3ed4f1e50587cd4da2b17432645b95085f17d67e0953f7e3a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: histogram metric? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/HttpSendService.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5199e95e25533e3ed4f1e50587cd4da2b17432645b95085f17d67e0953f7e3a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Monitoring/Utils/EventCountersHelper.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"5312f3db985b36945472383d50495fb5182e64f9e0bfd1e9f30fb6871efbaa20"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ServerNotAvailableException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Monitoring/Utils/EventCountersHelper.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"5312f3db985b36945472383d50495fb5182e64f9e0bfd1e9f30fb6871efbaa20"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY REFACTOR TO USE ACTUAL STATE MACHINE \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscription.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc641fd11814cb7405fe68fb76362eedf6f93dbd072fe97803ee1ea3837cbddf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY this is hacky and just trying to keep the state at this level when it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscription.cs"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc641fd11814cb7405fe68fb76362eedf6f93dbd072fe97803ee1ea3837cbddf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO CC Stop subscription? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscription.cs"},"region":{"startLine":672}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc641fd11814cb7405fe68fb76362eedf6f93dbd072fe97803ee1ea3837cbddf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO this can be cached \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscriptionService.cs"},"region":{"startLine":1047}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1dfb1cab639042f9b3e8f99ffe138623cebdbe11d0206eda839ab80b4d484a9"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscriptionService.cs"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb56f431823a45356e5d8cb99dda3f44ccd17f87c9baf3a1f8a4124635193332"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscriptionService.cs"},"region":{"startLine":537}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb56f431823a45356e5d8cb99dda3f44ccd17f87c9baf3a1f8a4124635193332"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/PersistentSubscriptionService.cs"},"region":{"startLine":1232}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb56f431823a45356e5d8cb99dda3f44ccd17f87c9baf3a1f8a4124635193332"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO CC this can likely be done in a smarter way (though a few thousand ints is still pretty cheap memory wise) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/PersistentSubscription/RequestStatistics.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"ede52660ef4de7e30a19e29e8867c7a930830eac209742b8358d0baf0eca33d8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO(clc): if the node is busy and misses an update it might be a long time till the next update do we need check if they get too stale? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Replication/LeaderReplicationService.cs"},"region":{"startLine":692}}}],"partialFingerprints":{"codehealthFindingId/v1":"86557acf0d49a015f241c0a0b1d6e26cb81215b45bd5e5d69b358d044ce7862d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/CommitSource.cs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"e426a5fb8599525c15c839938c86c867ed137d5b56dd7210d393de4929a7fd1c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo (clc) need a better Result here, but need to see if this will impact the client API \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/Managers/RequestManagerBase.cs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"174bfdaecef5111a89f74608dd0fd4290b4b536de7346ac0d7fb83ef4be19bd7"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/Managers/RequestManagerBase.cs"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"d089734a3a627a64b666686afc8ad573d7177b55767670b3aabc430d4ee048e4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: think it through (ticket DB-1957) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/RequestManagementService.cs"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"84fa794b9042f0f15bbf6529107771a5e4f624bd1439d97673a179ccd2cb1644"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO(clc): if we have become resigning leader should all requests be actively disposed? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/RequestManagementService.cs"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"84fa794b9042f0f15bbf6529107771a5e4f624bd1439d97673a179ccd2cb1644"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: histogram metric? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/RequestManagementService.cs"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"84fa794b9042f0f15bbf6529107771a5e4f624bd1439d97673a179ccd2cb1644"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS9336 // The pattern is redundant."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/RequestManager/RequestManagementService.cs"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bee345e0a1a8281897c6fecd3584667985aa3ba7b440b6f0a038dd8eecc95a9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: later we can move the logic that tracks the core service shutdown into here, and also subsystems shutdown. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/ShutdownService.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7b4867e6b21fad428c6f8fd79faf3ad7663087c3207aac2faae1dc293db82a0"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/IndexCommitterService.cs"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d8b7bb243a86f66df7411c60ac908770dd711aaed0c76a1ac7e07a5453b22a9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo(clc) determin if this needs to move into the TableIndex re:project-io \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/ReaderIndex/IndexCommitter.cs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb5bbf6854f4403cadda897c290ed5eb51cfe9723391971e7ba995e7dc5d2c04"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: refactor into one call \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/ReaderIndex/IndexCommitter.cs"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb5bbf6854f4403cadda897c290ed5eb51cfe9723391971e7ba995e7dc5d2c04"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO(clc): confirm this logic, it seems that reads less than min should be invaild rather than found \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/ReaderIndex/IndexReader.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"74402e67663a68f06ed5a63f58dcfc3db57d4348abd2eddd3f1b7df842ffd125"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO(clc): the new index should hold the log positions removing this read \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/ReaderIndex/IndexWriter.cs"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a31df1db668f6a58143306e63e7bac5d26a9ded549c2f303ad254362773234c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO(clc): the new index should hold the log positions removing this read \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/ReaderIndex/IndexWriter.cs"},"region":{"startLine":303}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a31df1db668f6a58143306e63e7bac5d26a9ded549c2f303ad254362773234c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: histogram metric? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/StorageChaser.cs"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2e0d2b273a5fb41c39f448460d25aae55f4d403337aba3a842f86e91e47da2a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: histogram metric? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/StorageChaser.cs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2e0d2b273a5fb41c39f448460d25aae55f4d403337aba3a842f86e91e47da2a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: soft undelete in a transaction \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/StorageWriterService.cs"},"region":{"startLine":423}}}],"partialFingerprints":{"codehealthFindingId/v1":"61c8d8186f83697c123b03938873d02bfd252bed5f8f9220ed08f56441f6b34e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO(clc): when we have the pre-index we should be able to get the logPosition from the pre-index and allow the transaction to wait for the cluster commit \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Storage/StorageWriterService.cs"},"region":{"startLine":791}}}],"partialFingerprints":{"codehealthFindingId/v1":"61c8d8186f83697c123b03938873d02bfd252bed5f8f9220ed08f56441f6b34e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: histogram metric? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/TcpSendService.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"1077eea447351dd41d0a10f4238255af1168f743e9527a4af826aa16bc18723c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO  JPB make this configurable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Enumerators/Enumerator.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"c066b1f31a0313dad98a058f3455205f0547ddf280e37f1c7039602df7be37d4"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Grpc/PersistentSubscriptions.Create.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5a3f0472edba4ecd70832f44fb2bacdc0ed4ebaadb99d3468e2b7d1e39976a6"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Grpc/PersistentSubscriptions.Create.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5a3f0472edba4ecd70832f44fb2bacdc0ed4ebaadb99d3468e2b7d1e39976a6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Grpc/PersistentSubscriptions.Read.cs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad8aa4f7c62283b927ee444ac64dd1408d38afe433ce7d2ce1289fe0efcc4e7a"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Grpc/PersistentSubscriptions.Update.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"78b229c1170cb1417dfbdb59a236d401d25c77f548eb2ff98c675fb6341e251f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: JPB use request id? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Grpc/Streams.Append.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"33d7816ee227d24b1451986e8487f0534a8b46c5be20840cd7cea3aed4e78cce"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: JPB use request id? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Grpc/Streams.Delete.cs"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"7749e6ca4eccce0c531d6e8cc222faa778ea7ef460c560e2d5612b0b48d938b4"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 649"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Authentication/PasswordChangeNotificationReader.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8886e99a7329a96336d54ea67bc50eb7bf6531dc635f32b44d9108f421534cd"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/AuthenticationMiddleware.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"407b69271ea56167ce1c8ed0d9f51f0c7fb03724dfb86f67fe5f7aaf18e656a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY THERE IS WAY TOO MUCH COPYING/SERIALIZING/DESERIALIZING HERE! \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/AutoEventConverter.cs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd1da5e014a819133c7d2b8cc817b2c3a1f27185b8c311694ed554d37e03e8ee"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY SHOULD WE MAKE THIS READ BYTE[] FOR RAW THEN CONVERT? AS OF NOW ITS ALL NO BOM UTF8 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/AtomController.cs"},"region":{"startLine":978}}}],"partialFingerprints":{"codehealthFindingId/v1":"70ac47ff8d262b2e0f0a3c27566b33a68b15c7f4540689e8666444db36008cfa"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO competing return uri to subscription \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":559}}}],"partialFingerprints":{"codehealthFindingId/v1":"188390d07666d786b8425374e8a4e5a19899727a57501007b853369c8d0a10d0"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":521}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":595}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":621}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":999}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1003}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1029}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1112}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1153}}}],"partialFingerprints":{"codehealthFindingId/v1":"812c2b2331af64807c418e977c9b14bb1609aa8849084e39b21a4c2a62c4efcb"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] StartFrom"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1137}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ff1a635e2537a679cf426ace62e54faa1259c1439ce0f5a38d5f44164c5fbc"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LastProcessedEventNumber"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1188}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ff1a635e2537a679cf426ace62e54faa1259c1439ce0f5a38d5f44164c5fbc"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LastKnownEventNumber"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1190}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ff1a635e2537a679cf426ace62e54faa1259c1439ce0f5a38d5f44164c5fbc"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LastProcessedEventNumber"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1207}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ff1a635e2537a679cf426ace62e54faa1259c1439ce0f5a38d5f44164c5fbc"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LastKnownEventNumber"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/PersistentSubscriptionController.cs"},"region":{"startLine":1209}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ff1a635e2537a679cf426ace62e54faa1259c1439ce0f5a38d5f44164c5fbc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo: use IsMono here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Controllers/StatController.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"a771b705a32e0bbaa3776905c446cb1387fb02cf4f868b2866e1e8e83ee061f5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Convert.cs"},"region":{"startLine":297}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8731d983001e5a01a53b2b657f55c51fe95b0eefddf245dcff915727d9c987d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Convert.cs"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8731d983001e5a01a53b2b657f55c51fe95b0eefddf245dcff915727d9c987d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Convert.cs"},"region":{"startLine":327}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8731d983001e5a01a53b2b657f55c51fe95b0eefddf245dcff915727d9c987d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/Convert.cs"},"region":{"startLine":340}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8731d983001e5a01a53b2b657f55c51fe95b0eefddf245dcff915727d9c987d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: figure out why AuthenticationMiddleware is as complicated as it is and whether it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/EventStoreAuthenticationHandler.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd470044b2ff90a887f246d17aeabbd6db031b4962d3b8775aaa4df16de1c380"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Http/GrpcProtocolHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb4d2e7b7a4f7cde5c54aabe86c4967bd1ee708348d2726a5dfc10dc3d6699a4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: currently, it\u0027s not straightforward to determine if the original write was a multi-stream write when there is a failure \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Tcp/ClientWriteTcpDispatcher.cs"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"05d9d7aee5a075fc6089cbdb99bfc36ad0663ebe36710504d502692ce53eba86"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO AN: race condition \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Services/Transport/Tcp/TcpService.cs"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"1688095707cb741690aeb8dee34c691937c7ff8b39b0fb3e5ae9604f65c40b9c"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Telemetry/TelemetryService.cs"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"6521f4da254b0a341bc48645c4c34ecedcf835c33e03b2487037a95d2150dce1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Consider struct instead of class \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Chunks/ChunkFooter.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e36923ddad6358f7b2cfbeec39f8b42b0757c7486243598b06e96eaae6dfcfa"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Consider struct instead of class \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Chunks/ChunkHeader.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"134f566554861ab11b42e5ff5e20c8c9cd3f7cc413aeb19e273e625083ab9c8e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (UnauthorizedAccessException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Chunks/TFChunk/ChunkLocalFileSystem.cs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"123793096a659f9d14b1547d7878c1b541f0bb40617ae7c745c0232ba17c3685"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider making this not stream specific \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/Data/StreamHandle.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d5cf035fb3206f1f1bd1b2828a7e723b949318af6ec4e1909ab4a197aa0620f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: if time permits we could look in more detail at this implementation and see if it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/DbAccess/OldScavengeChunkMergerBackend.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8f399ef07acb06fcb2ceb1eb39db0e162e5bd9496197719943b3d320cece09"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: if time permits we could stop after the chunk with the scavenge point \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/DbAccess/OldScavengeChunkMergerBackend.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8f399ef07acb06fcb2ceb1eb39db0e162e5bd9496197719943b3d320cece09"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: if time permits we could start with the minimum executed chunk this scavenge \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/DbAccess/OldScavengeChunkMergerBackend.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8f399ef07acb06fcb2ceb1eb39db0e162e5bd9496197719943b3d320cece09"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: if time permits we could add some way of checkpointing during the merges \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/DbAccess/OldScavengeChunkMergerBackend.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8f399ef07acb06fcb2ceb1eb39db0e162e5bd9496197719943b3d320cece09"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: move MergePhase to non-generic TFChunkScavenger \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/DbAccess/OldScavengeChunkMergerBackend.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8f399ef07acb06fcb2ceb1eb39db0e162e5bd9496197719943b3d320cece09"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/ScavengeCheckpointJsonPersistence.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"487f53537b508fbf8a27759812cb673e77b24d13ea61df1bc7c3b9d0c925fa9c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: in log v3 inject an implementation that doesn\u0027t store hash users \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/ScavengeState.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e4b096f29f91cf20d4e80da87a0c201b63f53c47e0f82865c6d40aaaa2ead4c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider searching the rest of the eventInfos in the stream, not just 100 events \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/Stages/Accumulator.cs"},"region":{"startLine":418}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d23a8d4396bd941ca6ce179ea80115c09c795ec00821ebe5e39b37822f6452d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Scavenging/Stages/IndexExecutor.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb174d04f3c70bfc36f715d78625ab05ac6a1229003519566d06146ed32addb3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO cant do two seeks \u002B a read here. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/TransactionLog/Unbuffered/UnbufferedFileStream.cs"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"dac3c28f6bcc72237d56aad46894e22411266365272d655a389bb3a8b38ba3aa"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: name may not necessarily be the company name, depends what we do in the keygen dashboard \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Licensing/Keygen/KeygenLicenseProvider.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffe756da27e7a0a88ceba146207fae69dc18ee57caecd357fb7173c40c120387"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: Interceptors = [new KeygenSignatureInterceptor()], \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Licensing/LicensingPlugin.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"f765a4bbc560f3b4227da6e26f1ee3dbf8a4b4cdcd5aa431f0da04581808e242"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO UNBUFF use FileAccess etc or do custom? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Native/TransactionLog/Unbuffered/NativeFileUnix.cs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"a23b30be8a5b254d5752e6cffb622be9105cee0559bdd6b0bbfff94de083dcfb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO convert flags or separate methods? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Native/TransactionLog/Unbuffered/NativeFileUnix.cs"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"a23b30be8a5b254d5752e6cffb622be9105cee0559bdd6b0bbfff94de083dcfb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO UNBUFF use FileAccess etc or do custom? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Native/TransactionLog/Unbuffered/NativeFileWindows.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"676c57ab88e2255edf838661cb8764c8218bcde1c339d2839f23bc2d8b4d1874"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/Collections/ObjectModel/FreezableCollection.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"55ad0b082d742a68759f116dc3df664f478653102394da852f43f70a3fc47bf8"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/DiagnosticUtility.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b7d8b7b3db4b3945fc75943701804e597cde93e547d2bf30de4909923e819a8"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/Fx.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a96b8bc23ffb8c49d8355c01a3daa5ac6f9f1552c1758238aa2aa885f9b50f9"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/SR.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"669483eb3a3e62e619e47578ba60fb79a427f51fb747a8f2827f870ec1779af9"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5ae967494258c21a9ab9ad427f4fe4a19b756d90f77253d4e2b595217296d00"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":361}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5ae967494258c21a9ab9ad427f4fe4a19b756d90f77253d4e2b595217296d00"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/stubs/UrlUtility.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6b5a437bcc258eb74ccd197daa91915ab6f219cd7d96d33c1c7825782bfd33b"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplate.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7873e7ff4186638923ca62444480775017d464da8c49639aa68271c21afc43da"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateCompoundPathSegment.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"03b66b000bc1b4cc7b6f9b870e52fbc27911cc4de4bf5cecdde0e45d97a09413"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateEquivalenceComparer.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a997028b8492be3ecc23f453106f6f83b5fe24051b073e4b940f9ae569e15d87"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1634, 1691 // Stops compiler from warning about unknown warnings (for Presharp)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateEquivalenceComparer.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"a997028b8492be3ecc23f453106f6f83b5fe24051b073e4b940f9ae569e15d87"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 56506 // obj.xxx is never null"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateEquivalenceComparer.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"a997028b8492be3ecc23f453106f6f83b5fe24051b073e4b940f9ae569e15d87"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateHelpers.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"067c9d9e420a53c4f51e7e8c17cc8038ef75724282af224e40d4b7902e320a90"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"067c9d9e420a53c4f51e7e8c17cc8038ef75724282af224e40d4b7902e320a90"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateLiteralPathSegment.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b8915da7560005231d65e55ad267f9c47c96f530ef47599691ea33ae161ed64"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateLiteralQueryValue.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e9ac6b5c5e5fc822afba22dbd1d4695e5441636f7c3f933ec1c1ac0f4fd270e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateMatch.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef1991d203f66eb75ae0746fa6f01bac36a8fbdd27d041dc85730df26ac4cb65"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateMatchException.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b580231ec1bc0569cfcd96a06bf4c911f42150030155e33740602fb32408f5e7"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplatePartType.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"75c8d12c6bcac8606869ac851f4b4c4206bae594d13528898d8453084d9e134a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplatePathPartiallyEquivalentSet.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ae26b301a6e0bba250710bd54fe1f8cec616c9e603470d9c34ba8dc8e66b762"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplatePathSegment.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"48f4503d1fcb622ad2155ee8459f25ce022ab5a2c3dc72b3a92c2cb3a914fb7e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateQueryValue.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e767e32bed29d0925709bf375a7b1459e48f3665620f14e799f5b8273cb44b69"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTable.cs"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e4ad76fe61a1d63d5551e64d8a96316737302f21eae6581280930481b146e45"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTable.cs"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e4ad76fe61a1d63d5551e64d8a96316737302f21eae6581280930481b146e45"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e4ad76fe61a1d63d5551e64d8a96316737302f21eae6581280930481b146e45"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTableMatchCandidate.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e075f0f4c00a4931134b7da5da85128786477e36fece8e6567726d4509d9950"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieIntraNodeLocation.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"403d0a9b25a5c887365ba41f8a1a4771b584debbfd6e5f82015a5637f3ca27fe"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieLocation.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7558d21e608e9430d5efa682e108cbf605fa4e38630c55011d06d96a238258f5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateTrieNode.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"57cb3d0bcbbf1405537422ce2a100eda1ed6389d3c3e5189e29451948025b0e0"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateVariablePathSegment.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3730850b5c64f87333637f109ec38a6e69c1bded26cd7f6655d1499517c6355"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/System.UriTemplate/UriTemplateVariableQueryValue.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"114bef01e8e2e2169f3fd0585eff2a02e219f9c17b474f7fdbbb6b5915917977"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (BadImageFormatException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.PluginHosting/PluginLoader.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"76f8a029e37398bf08fe89800e45f48a4dcf1bc9d3eaa1211e6da87f596caaf0"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CA2208 // ReSharper disable once NotResolvedInText"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcd1758e7c994030998cd1dda65faaf0933d1eac51abaa03625fa2012d231e5d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CA2208 // ReSharper disable NotResolvedInText"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/Services/Interpreted/JintProjectionStateHandler.cs"},"region":{"startLine":596}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcd1758e7c994030998cd1dda65faaf0933d1eac51abaa03625fa2012d231e5d"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/AssemblyLoading.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"08b65b0d735fb50a8d7114c3b3844a945735c6f7f02045291512898a7f0c2a90"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: throw? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Http/ProjectionsController.cs"},"region":{"startLine":631}}}],"partialFingerprints":{"codehealthFindingId/v1":"79973a4053dda44abd29e28743740965020b842cd93277acde9575c1901f3a5b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: encapsulate this into managed projection \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjection.cs"},"region":{"startLine":642}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecb6ce6032196896702824ebc6ec05f3b1be88587f2c01de8250c127c0084d51"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: move to common completion procedure \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjection.cs"},"region":{"startLine":727}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecb6ce6032196896702824ebc6ec05f3b1be88587f2c01de8250c127c0084d51"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: make sure nobody else uses it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjection.cs"},"region":{"startLine":1094}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecb6ce6032196896702824ebc6ec05f3b1be88587f2c01de8250c127c0084d51"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: stop sending second Started \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ManagedProjectionStates/RunningState.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"67695095bd82b49abb70b1879037fa632b57d1297fee051d1ae59842bb6e8113"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Find out why projections still run even when ProjectionType.None \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Management/ProjectionCoreCoordinator.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"26e453ea8e85453149ae9d0d8872c831770299cef21a6de52b23354bdc192ef6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: factory method can throw \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/Services/Processing/ProjectionCoreService.cs"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"afe370b13f06237e3961f3a0c49de7eb24ff1cbf3bb039690d414781fc4886bc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: rename to StreamsOrEventTypes or just Positions \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"588b66d683f71f08a8f357dfb5270d6fa30e7558a8bddde327cbb88009a674cb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: remove this if with time \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":669}}}],"partialFingerprints":{"codehealthFindingId/v1":"588b66d683f71f08a8f357dfb5270d6fa30e7558a8bddde327cbb88009a674cb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: better handle errors \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/Checkpointing/CheckpointTag.cs"},"region":{"startLine":672}}}],"partialFingerprints":{"codehealthFindingId/v1":"588b66d683f71f08a8f357dfb5270d6fa30e7558a8bddde327cbb88009a674cb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle utf-8 conversion exception \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/ResolvedEvent.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"773c620f4e06e75884a6bb07175fc54f1bdf31368b72b3de55437d6f1da21ff6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: parse JSON only when unresolved link and just tag otherwise \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/ResolvedEvent.cs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"773c620f4e06e75884a6bb07175fc54f1bdf31368b72b3de55437d6f1da21ff6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle utf-8 conversion exception \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/Processing/ResolvedEvent.cs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"773c620f4e06e75884a6bb07175fc54f1bdf31368b72b3de55437d6f1da21ff6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: resolve name collisions... \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/Services/ProjectionStatistics.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"152b9ca4771b061c87d7df98d963f8717792fcfeb12a131ac984f138364613ec"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: make reader mode explicit \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/EventReaders/Feeds/FeedReader.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"882ef44d5f903b00ad2da49a0a58822231324b0fb0c6ba14f13def2ed8ba64a9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: separate message? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Messages/ReaderSubscriptionMessage.cs"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a516b40a18118366c8c5e8b82bfc834cce04a1e84c378dac865acac11a46a90"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: check epoch and correctly set _lastWrittenCheckpointEventNumber \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Checkpointing/CoreProjectionCheckpointReader.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"942be06b541e35f57b0e956097125f08f9011238ff444b3d0b720584bfdf53a5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: pass correct expected version \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Checkpointing/CoreProjectionCheckpointWriter.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"dca974780966e6a792aeb8af080c947218a24ba6839152d593ef3bbbdb8ff753"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: initialize projection state here (test it) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/CoreProjection.cs"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bc0cb7400438bf42f190f1499b11959512389efb1463d6f4ef565784e0fa277"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: write test to ensure projection state is correctly loaded from a checkpoint and posted back when enough empty records processed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/CoreProjection.cs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bc0cb7400438bf42f190f1499b11959512389efb1463d6f4ef565784e0fa277"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle errors \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/CoreProjection.cs"},"region":{"startLine":288}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bc0cb7400438bf42f190f1499b11959512389efb1463d6f4ef565784e0fa277"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rename \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b0874dc8eee06cf5026a3a4cbcaec5cfebc6473111389daad2b22c134b27221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: verify order - as we are reading backward \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":263}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b0874dc8eee06cf5026a3a4cbcaec5cfebc6473111389daad2b22c134b27221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: if the following statement is about event order stream - let write null event into this stream \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Emitting/EmittedStream.cs"},"region":{"startLine":526}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b0874dc8eee06cf5026a3a4cbcaec5cfebc6473111389daad2b22c134b27221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: progress calculation below is incorrect.  sum(current)/sum(last_event) where sum by all streams \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3da2152bcc5fce5ab2283631fc25448d05b499b57fc18c5b9cb2758cca7f2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: cancel subscribeAwake \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3da2152bcc5fce5ab2283631fc25448d05b499b57fc18c5b9cb2758cca7f2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: reissue read requests \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3da2152bcc5fce5ab2283631fc25448d05b499b57fc18c5b9cb2758cca7f2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: make sure async completions of awake do not work \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3da2152bcc5fce5ab2283631fc25448d05b499b57fc18c5b9cb2758cca7f2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: add event sequence validation for inside the index stream \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.IndexBased.cs"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3da2152bcc5fce5ab2283631fc25448d05b499b57fc18c5b9cb2758cca7f2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: this is incomplete.  where reading from TF we need to handle actual deletes \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.State.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3450af7a90921d0fdd9223d5cf5ed52c072241049d73d0d7ed593efb95aed0a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: publish both link and event data \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.State.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3450af7a90921d0fdd9223d5cf5ed52c072241049d73d0d7ed593efb95aed0a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: publish both link and event data \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.State.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3450af7a90921d0fdd9223d5cf5ed52c072241049d73d0d7ed593efb95aed0a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: is it safe to pass NEXT as last commit position here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.TfBased.cs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"45a515abde65b438c3f96e2760d1b115bbd4ed5a5607c5434fa0eb399884a388"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: we do not need resolve links, but lets check first with \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.TfBased.cs"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"45a515abde65b438c3f96e2760d1b115bbd4ed5a5607c5434fa0eb399884a388"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: check was is passed here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexEventReader.TfBased.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"45a515abde65b438c3f96e2760d1b115bbd4ed5a5607c5434fa0eb399884a388"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle invalid partition deleted messages without required values \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexPositionTagger.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"444f25d849cf1d58fb590d63024a321a7dc32ee62cf4cbf372c8cb4b01bf0065"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: should Stream be supported here as well if in the set? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventByType/EventByTypeIndexPositionTagger.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"444f25d849cf1d58fb590d63024a321a7dc32ee62cf4cbf372c8cb4b01bf0065"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: do we need to clear subscribed projections here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventReaderCoreService.cs"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"866fec6e11d25d8b22d83a739def8df6a8fcf32e7bd7759fa97a7c868ec78b73"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: do we need to clear subscribed distribution points here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/EventReaderCoreService.cs"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"866fec6e11d25d8b22d83a739def8df6a8fcf32e7bd7759fa97a7c868ec78b73"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: progress calculation below is incorrect.  sum(current)/sum(last_event) where sum by all streams \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamEventReader.cs"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"74537f3a34ec8085ff03f56529753eaf87a847fbb5fa75751c7847189d983f5d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: publish both link and event data \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamEventReader.cs"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"74537f3a34ec8085ff03f56529753eaf87a847fbb5fa75751c7847189d983f5d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: use position tracker to ensure order? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamMultiOutputCheckpointManager.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"b636553507ab76e25b00dc79e670f011a12567a758cc5a04f893733c674c692a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: -order stream requires correctly configured event expiration. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamMultiOutputCheckpointManager.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"b636553507ab76e25b00dc79e670f011a12567a758cc5a04f893733c674c692a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: this stream requires $startFrom to be updated from time to time to reduce space taken \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamMultiOutputCheckpointManager.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"b636553507ab76e25b00dc79e670f011a12567a758cc5a04f893733c674c692a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: throw exception if different projectionID? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamMultiOutputCheckpointManager.cs"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"b636553507ab76e25b00dc79e670f011a12567a758cc5a04f893733c674c692a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: should Stream be supported here as well if in the set? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/MultiStream/MultiStreamPositionTagger.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"58cb5d9d1dd1d127b28f59617205a1b89f2be5ed07ef5d76b3ae4ee51f39d435"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle exceptions properly \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Partitioning/ByStreamStatePartitionSelector.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"eeccd3bdcff3f9fc304a3649e4702fdee833318d3d582be7d007090404fa1fc4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO:  make sure this is no longer required : if (_state != State.StateLoaded) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO:  make sure this is no longer required : if (_state != State.StateLoaded) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: support shared state \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: not emitting (optimized) projection handlers can skip serializing state on each processed event \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: not emitting (optimized) projection handlers can skip serializing state on each processed event \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: depending on query processing final state to result transformation should happen either here (if EOF) on while writing results \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: depending on query processing final state to result transformation should happen either here (if EOF) on while writing results \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventProcessingProjectionProcessingPhase.cs"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"e65e121a27d2ba62fee83b2c18a8500c45ed1539cd5dc8111f370cbfa8a024eb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: move to separate projection method and cache result in work item \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/EventSubscriptionBasedProjectionProcessingPhase.cs"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2ed149db23f15e174ffc3bb9f9ed593ee5e98a2d5529b1e8b431a1a3b67d08f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: remove from - it is passed for validation purpose only \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Phases/IProjectionProcessingPhase.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d71cd0094ed5e2bc828dbe7288e409c6ad65487b73d695d109b1f2669173dc7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: this should not happen, but StorageReader does not return it now \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/SingleStream/StreamEventReader.cs"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f2cf5a66eec1a3d3b721839ea987a682a22a64152c8f6fcc24c197d3597d047"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: publish both link and event data \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/SingleStream/StreamEventReader.cs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f2cf5a66eec1a3d3b721839ea987a682a22a64152c8f6fcc24c197d3597d047"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: publish both link and event data \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/SingleStream/StreamEventReader.cs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f2cf5a66eec1a3d3b721839ea987a682a22a64152c8f6fcc24c197d3597d047"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: get rid of this cast \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/EventReaderBasedProjectionProcessingStrategy.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3ca37655248c70459d55774aea726ea9a06a32f453aba4c857c993b449081e7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle if not the same \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/ReaderStrategy.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee8e3f0f1b902c734e55398a2ed31eb6b2d8c56712a3147b2d79d0a4de2a74ea"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: clean up $deleted event notification vs $streamDeleted event \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/ReaderStrategy.cs"},"region":{"startLine":219}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee8e3f0f1b902c734e55398a2ed31eb6b2d8c56712a3147b2d79d0a4de2a74ea"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: \u0027-\u0027 is a hardcoded separator \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/ReaderStrategy.cs"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee8e3f0f1b902c734e55398a2ed31eb6b2d8c56712a3147b2d79d0a4de2a74ea"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: consider passing projection phase from outside (above) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Strategies/ReaderStrategy.cs"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee8e3f0f1b902c734e55398a2ed31eb6b2d8c56712a3147b2d79d0a4de2a74ea"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: build proper data structure when the approach is finalized \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/Subscriptions/EventReorderingReaderSubscription.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9d1d7512aab747605dabc9c9e73ba44147a186e03b23357f90f5f1a5c10a0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: check was is passed here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/TransactionFile/TransactionFileEventReader.cs"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"501e73ecae9c91d1fd64673fc675401d99e670ec6a559d824f541f5130c9768c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/Services/Processing/WorkItems/WorkItem.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3ba5ecb89599d0b4992731c2a25841f11b086a801aa5629a91e87e8889ada3c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: is this less rich than CheckpointTag? should it be? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/CheckpointCoordinator.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"09737d43cf129653fcf3366162ac2d859c59a61fb800a8af3e7e56313ae5fa99"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: is this an important gap? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/PartitionProcessor.cs"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"c96111f97a6a432deab3d8163007a4cc0c1818df3506445752b0d7e0dd3384cf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider limiting partitionCount to 1 if the projection itself does not partition. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionEngineV2.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"98afccabd1e163a66cffbf45f3af4470da114b88ebd9d75b1a16660692a96257"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider checkpointing here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionEngineV2.cs"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"98afccabd1e163a66cffbf45f3af4470da114b88ebd9d75b1a16660692a96257"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) when (\u2026) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionEngineV2.cs"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"742c4e55ebc81f34dca8d521de5218263cf0b9f4bc201684c4437263b8a4589b"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) when (\u2026) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionEngineV2.cs"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"742c4e55ebc81f34dca8d521de5218263cf0b9f4bc201684c4437263b8a4589b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: unused, might represent an important gap \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionProcessingStrategyV2.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bcd8ac58fee605ad76773948410668331e34012a07de3e189dececc210f37a7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: unused, might represent an important gap \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/Services/Processing/V2/ProjectionProcessingStrategyV2.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bcd8ac58fee605ad76773948410668331e34012a07de3e189dececc210f37a7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider incremental generators if necessary. for now it looks like the generator is run \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SourceGenerators/Messaging/MessageSourceGenerator.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"504a39c22b8bfb469504ed4c9b6e093e2030105bc42396146e0886289a5f1580"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // super hack to ignore the db\u0027s absurd logging config \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/ClusterVNodeApp.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d26d6a04efd07b12ff2f4d00af3323ace7850ef30bcf571babc6d9d4f9e6c34"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the \u0027required\u0027 modifier or declaring as nullable."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Domains/VehicleRegistration/Commands.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"26c387e243a52484d72cfb969029417ab3dd941d13432675b71c7fcc79e0d59d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the \u0027required\u0027 modifier or declaring as nullable."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Domains/VehicleRegistration/Dataset/VehicleDataset.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"05d48ea0daac73fe5ba80870602b47edb80574826ba55c2c50dc33c31f63cc65"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the \u0027required\u0027 modifier or declaring as nullable."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Domains/VehicleRegistration/Dataset/VehicleRegistrationFaker.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"b704ee0358539d70ac3bc105d50e6cc57771d3ad54c930cd672ae4603403a999"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the \u0027required\u0027 modifier or declaring as nullable."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Domains/VehicleRegistration/Events.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"95fac0e293fc7fbc4696cfeef6eb01aa5ea54477da73d0454f596118250b623c"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the \u0027required\u0027 modifier or declaring as nullable."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Domains/VehicleRegistration/Resources.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"a28507a39cb722c0f0df2bb1d44122ae33ef241e84ab10b092d1b02bc4141f1e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: need to know if someone cancelled the cts, or the timeout triggered to fix this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Fixtures/ClusterVNodeFixture.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"c58882412266f6430cd1bc1f041881d474ba1a8719bb14223dcb92b86044f2a0"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Fixtures/ClusterVNodeFixture.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"a305b526d864ac24416b81143df39103c63a3b80be07b25e02271ac97c4308c7"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Fixtures/ClusterVNodeFixture.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"50c03b09be036408d8cfc14043ba479c0bdabdf33c6f2cb73250cac309e7ab30"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Fixtures/FastFixture.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ce7755fdebdb7412f5e7907ebe096fe0480d47730827cb09cbe6fbe52036b86"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: ffs the implementation should be on the Should helper and the extensions would use it. not the other way around... fml \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/FluentAssertions/FluentAssertionsThrowExtensions.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5653897c929795819aea083a6fd6340bf6937ac3fc2f65f309cadecf984a79a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Logging.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8ac5a9551202ac6ca81833b12508393f60c6673c614d4c1d5232e03c7c41ad1"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/Logging.cs"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8ac5a9551202ac6ca81833b12508393f60c6673c614d4c1d5232e03c7c41ad1"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS9107 // Parameter is captured into the state of the enclosing type and its value is also passed to the base constructor. The value might be captured by the base class as well."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Tests/Eventuous/SystemEventStoreTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"5025423c652911441fdce3e5170132ef46a4826a2a928b47708e41ade11745f6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO SS: fix magic strings \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Consumers/Extensions.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b8a0bbc8ddcacd0108ac2a5984ecfb111b57d556cf7932c03ea41f90a1b0ca7"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0618 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Consumers/Extensions.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eaed13bc6d01d2c84a561239a1a7c72cfe45fcfff4adc2ac45f776b9f1afdc9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO WC: To be reviewed. We should be able to delete this because it should never happen \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Consumers/SystemConsumer.cs"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ce44d29ccb50238e7b8893bb297c67fae386f23a0864ef0c87ee3a372d8e2e2"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Consumers/SystemConsumerBuilder.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bb3c98038e4fd9fca7492f39dc4f909b0db2fd1d9a1cb24e17d923c12879d3a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: schema definition type should come from the eventuous event headers to support any schema type (not important for now) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Eventuous/SystemEventStore.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"fea4d816770ca13d4d0cad813e708f56deb8dd60af523e040d6dd67c4be54d82"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: must validate what exceptions are actually thrown when reading events \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Eventuous/SystemEventStore.cs"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"fea4d816770ca13d4d0cad813e708f56deb8dd60af523e040d6dd67c4be54d82"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: must validate what exceptions are actually thrown when reading events \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Eventuous/SystemEventStore.cs"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"fea4d816770ca13d4d0cad813e708f56deb8dd60af523e040d6dd67c4be54d82"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/Processors/SystemProcessorBuilder.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7546fed9640e4be81a47a84b637003e46a10e22304250ff8df5317981f36757"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ArgumentException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SystemRuntime/Diagnostics/Interop/WindowsProcessUtil.cs"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c51561783686b286210e5a2e80a9808d6b89de299232ee68f7c3f1e25b22d"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SystemRuntime/Diagnostics/RuntimeStats.cs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3954c2ce5df80f09eb6839914031dd2c54975b91fd409039eda90f99e418615"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Client.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e2dab3f8125ea6ab11b38287c0954f5a3e16d0183f524e1b21c0a8d7d783220"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ClientOptions.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"92ada12e3c50ff73fd45005e2e720d8d24d67152845836ed7ef47b369946ccb3"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/CommandProcessorContext.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"42cc0a3a5d4aeee47b5926c3d5d566653c24b197b093c7842da9a4e1961fb86e"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DvuBasic/BankAccountBasicProducer.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"91e0b4d564535115519293d42e3aecaf5c26a50b4df79f4826c706bb1f32d2dd"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DvuBasic/IBasicProducer.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"4eb1a3962bb50797b72747b1253ea12483eb1672e9ad480acea57a7e5a6d33b9"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Commands/DvuBasic/Status.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ec8e79aae703e2d54444c65942a6db30e8b1f706fe30988ba382b453dffd065"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ConsoleTable.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"695b3d50bf0b9bb90e6be45c59074c40cb93e6a8113dc49061a657c248d869db"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/ICmdProcessor.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"63b4d4a4cb6972b59a288fd9c7085003a1e9d90a7074e9fb14aa65a2f34da29b"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/PerfUtils.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8b5f62306a5bf277d18b0a74e84887c46c282ed11c90f0b32e4c5fa62d7be75"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/Statistics/StatsCsvEncoder.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff64c2fdc20040ba54bdfb19ef7e99ea2c7611a604ba327cbf17fe72616063cd"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManager.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f81e3d144ea8b1cadb3a5fd3c86aec3f932336d2c05d0e99938359122dbc58d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManager.cs"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f81e3d144ea8b1cadb3a5fd3c86aec3f932336d2c05d0e99938359122dbc58d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManager.cs"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f81e3d144ea8b1cadb3a5fd3c86aec3f932336d2c05d0e99938359122dbc58d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManager.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f81e3d144ea8b1cadb3a5fd3c86aec3f932336d2c05d0e99938359122dbc58d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManager.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f81e3d144ea8b1cadb3a5fd3c86aec3f932336d2c05d0e99938359122dbc58d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManager.cs"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f81e3d144ea8b1cadb3a5fd3c86aec3f932336d2c05d0e99938359122dbc58d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: add encoding header??? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManagerExtensions.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b58a5d0a86cc426edae057e966ab705f04b262f78ee12a021d7414e815d8bb8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: add encoding header??? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/EntityManagement/HttpEntityManagerExtensions.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b58a5d0a86cc426edae057e966ab705f04b262f78ee12a021d7414e815d8bb8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //public bool IsMutuallyAuthenticated { get; private set; }//TODO TR: not implemented in mono \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/HttpResponse.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"999b629a34b532e7a4fdb467b4d555fd2739c61a0f6884bf58bdbcf651cde9d1"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/HttpResponse.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e0d66bd8077b368f8ffc3979586503a3f47d1b7a9d18c71967009b7041a29f1"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/Helper.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d703fe08a1aedcdf0b0437230f43acb4f02a697d5b72d39eae06f6771210eb6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ObjectDisposedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpClientConnector.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5321ff1f5e0f545406a4afb9ea3da35684ca7ff69961a0428f9b73aabc2eef9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO AN: do we need to lock on _receiveSocketArgs?.. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnection.cs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"e36d80df19c47745a6a3b61f3788421a5fdd95a9c9a2cd2ac3654933f9bff3ca"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: why do we get this? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionBase.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1482b6195bb1054877333d7c4af18a8af629812dda9da4b6210673de557e703"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: why do we get this? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionBase.cs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1482b6195bb1054877333d7c4af18a8af629812dda9da4b6210673de557e703"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: why do we get this? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionBase.cs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1482b6195bb1054877333d7c4af18a8af629812dda9da4b6210673de557e703"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (NotImplementedException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/TcpConnectionSsl.cs"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"09e75bdb83d70fcc7ea7eadacc282798db668af71b8bbdb1e1291ff667a77195"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider setting min threads. this would not create them up front, but allows them to be created quickly on demand without hill climbing. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB/Program.cs"},"region":{"startLine":340}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f6544f6191d86ae102c0f7019f45d6101b678ef77ed958e63e56168402e75ee"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/Fixtures/ClusterVNodeTestContext.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb16de891c7d0fa58ffd92f67962d9a4a31c25db619573f36b2a02636f74fc6e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CA1822 // Mark members as static"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/Fixtures/ClusterVNodeTestContext.Helpers.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d37cbb796cc85c142a1160a2fd1a2a1275003ff6a79961516c97da9ba078060"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CA2254"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/Infrastructure/ValidationExceptionLoggingExtensions.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"61905fabb7f188e44356066e32921d46ad28803bd6e5bcffac607aad3cca43a1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo better way to wait for it to stop \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/Modules/Indexes/IndexesSubscriptionTests.cs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"09929c550ea827d6471e2e0693616831c3676f396887f5cac2712fb00729398d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: in hindsight, it seems that Pre-Success validation logic only applies to certain message types and should not be in the base class \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Infrastructure/ApiCallback.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"701c6dce0199afe574f69ae38f89734d0f965578c07c80b03375c822ce37af09"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CS8524, CS8509"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Infrastructure/ApiCallback.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fb327d07bc16bfe734e8669e840dc35dc30ef1d671437009d24e816a706b8a8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: when we allow multiple fields, their names will need to be unique within the request \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Indexes/Validators/CreateIndexValidator.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"5792eee5a9e21237187f036c81033bb0967a1693b847bae38c3136db1b37f157"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8321 // Local function declared but never used"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Streams/ApiErrors.cs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ba993408594364b8fbbf084e492bdf7f20985066f5ee1af1a27e718cf280e4"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8524 // The switch expression does not handle some values of its input type (it is not exhaustive) involving an unnamed enum value."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Streams/StreamsService.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"488e0fab359fd8cfd0b885718ff7c16d61ed80514e83dbc4f554d519d930ed56"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8509 // The switch expression does not handle all possible values of its input type (it is not exhaustive)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Streams/StreamsService.cs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"488e0fab359fd8cfd0b885718ff7c16d61ed80514e83dbc4f554d519d930ed56"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Streams/Validators/AppendRecordsRequestValidator.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0c0099705ab7f4f20c9e80760de9d87e1a10b5c125d127c747ac67924928fd7"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 9 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/Modules/Streams/Validators/AppendRecordValidator.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"d20061bb9b9dfc2fb1d693e3aab0dc0051f27fd15017281d6c995e57bea78680"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // super hack to ignore the db\u0027s absurd logging config \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing.ClusterVNodeApp/ClusterVNodeApp.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"7257cc5d57923e709f5e71ed225739652e09df7d48e2a14e532d5a3c2c994cee"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO SS: enable dev certs to allow proper auth testing once we are able to support macOS where it currently fails \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing.ClusterVNodeApp/ClusterVNodeApp.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"f24abf02edd4555bcb6175f0ec424cd43e8e8367202620a0d6f67db01fe59e49"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: consider creating certificates only if they are missing or expired \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing.ClusterVNodeApp/NodeShim.ContainerNode.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc48adec502892df303bff304f052d3ff83b5b904aa74e6f8d5230c1728e89c3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // Todo: rather not have to list these explicitly, maybe we can pass through everything \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing.ClusterVNodeApp/NodeShimOptions.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a34d302642501adc5656305784bb6ebdea15ce5ef7e7eca95696b18caedcfee"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ShouldAssertException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Shouldly/ShouldlyObjectGraphTestExtensions.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a17d4b3f05b86de92f5698251bb8ac4b2572502cde7175f50d43048306aff47"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ShouldAssertException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Shouldly/ShouldlyObjectGraphTestExtensions.cs"},"region":{"startLine":454}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a17d4b3f05b86de92f5698251bb8ac4b2572502cde7175f50d43048306aff47"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/Toolkit/ToolkitTestEnvironment.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"26c8272879b9b8bfc630b5b2d4bf52b63a68b0fbdc52362090ec37d508842e07"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This approach won\u0027t work if another node is on part with the leader. We ought to prioritize the follower \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge.Tests/ClusterFixtures.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"287e2ed5f0306b28cb25c806a0cdd147a8b4a0893734444891ef9f70fa606831"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO - We also probably need to check the state transitions to ascertain we are moving the way we expect. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge.Tests/StateMachine/StatusTests.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea1c387657039943cf615c4655f579a77bf5bfb03802921320c97fdf376e9548"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo We might consider bulletproofing subscription tasks \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/AutoScavengeService.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"d530146444fc801a16f8fac09addf296b37944db16ba7d51f12c8d103c0b8795"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO - Do we really want to break here? What about restarting the subscription? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/AutoScavengeService.cs"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"d530146444fc801a16f8fac09addf296b37944db16ba7d51f12c8d103c0b8795"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: we may want to consider the statuses and the checkpoints \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Domain/AutoScavengeProcessManager.cs"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"f54f1deabdd372a980ad98ee30dbc25ec2c6ddd1c814cc11ba073618fd513649"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider reducing allocations here by passing a visitor object (nested struct? be careful not to box) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Domain/AutoScavengeProcessManager.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"f54f1deabdd372a980ad98ee30dbc25ec2c6ddd1c814cc11ba073618fd513649"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: only used by this and tests, make private \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Domain/AutoScavengeState.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"729412524f9cf7ff9eda0d59aaa24e8dc1701b3b0517bf1aa7f19755c5834211"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: only used by this and tests, make private \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Domain/AutoScavengeState.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"729412524f9cf7ff9eda0d59aaa24e8dc1701b3b0517bf1aa7f19755c5834211"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: only used by this and tests, make private \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Domain/AutoScavengeState.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"729412524f9cf7ff9eda0d59aaa24e8dc1701b3b0517bf1aa7f19755c5834211"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo - We should probably use the same serialization options across the board. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/Sources/ClientSource.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"20ae2d3c070126fe27a8d01c147ab3b42d4fac5b6144fe52197ba0ccef9a6255"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Diagnostics.LogsEndpointPlugin.Tests/LogsEndpointPluginTests.cs"},"region":{"startLine":202}}}],"partialFingerprints":{"codehealthFindingId/v1":"b288e266ec7004d9ec823b31f4e5eb0004beb3c9152e64d202411fd041f47fed"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: use SubsystemPlugin now that it is more flexible about licence requirements and what to do when they fail \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Diagnostics.LogsEndpointPlugin/LogsEndpointPlugin.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e1f2b3694968d36ba1271c0a059f069372857d29edee84b8573b984d4ecfe30"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/DiagnosticsListeners.cs"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"fca770a9a5d2eae2862a7e9e9dca52b1ae100ed9419896111643bf930d5caba9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: presumably we don\u0027t want to remove the Snapshot \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/PluginDiagnosticsDataCollector.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"f61e4e948a3d234344619f78efa087d9bca158a59598a34739bf314f5894902a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/Diagnostics/PluginDiagnosticsDataCollector.cs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"48fdd29c382112289c8b942c8a5fbc206249d8c170132b5f0d1b31a4a12388c3"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/InflectorExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4b87f8d834021cf70f31f2810bc19a275c6a9ebeda1f7be4cce7903fdcd63ff"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: log failed authentication attempts \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps/LdapsAuthenticationProvider.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0f71e1ec4315a13f199219142b467b528940de7afb5af0fb1b44c2db2d771f7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: Return roles here instead of groups \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps/LdapsCredentialValidator.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"2178f952433f53a9b457ec4ef6928fcc7584fbb6021324dda8ffd340822cefa6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0618 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps/LdapsCredentialValidator.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"42165298868640a3e37b066b2b3bc047c2076bf2d479f5bd4fd7ef6fc0ee199e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8601 // Possible null reference assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth/OAuthAuthenticationPlugin.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"250d6a53d772068f391e0d7a9d37cb422355bd9beabefa3c95ec1647a553f70a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8602 // Dereference of a possibly null reference."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth/OAuthAuthenticationPlugin.cs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"250d6a53d772068f391e0d7a9d37cb422355bd9beabefa3c95ec1647a553f70a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: use the IClient interface instead of enumerators to read streams \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin/StreamBasedPolicySelector.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe5a5a9201ec98e95edf55826dc244fc80f4f92c137435c670b0ebd6fdc70cb9"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin/StreamBasedPolicySelector.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc4c58bffe9822fa01dfed1dfbe43eef41172867ee0b6c0cbdd38fa2a08de5ec"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: use the IClient interface instead to write to streams \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin/StreamPolicyWriter.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f2a66f4375356f297ecc50201fe45f1a01694f582d968dd8af683ea41634655"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider not falling through if we have a cert but fail to authenticate it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.UserCertificates/UserCertificateAuthenticationProvider.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0293e823c42af5cbb64565a7fa26e8d96c8bc7975cf713e5d204aa2c8dbce21"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: seriously, this is a bad idea, but creating a connector to be hosted in ESDB or PaaS is different from having full control of the Surge framework \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Connect/Components/Connectors/SystemConnectorsFactory.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"9641af9058c277341eacaab0d2a42ce38b477ad0d1c170ca80655af639bbd288"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/DiagnosticsDataCollector.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"177dcbb94e95ea337690c2b245affd2e191197acd8b6c8bc8f0bfbaad5539ad6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/Diagnostics/GenericDiagnosticsListener.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ba8f55f55cd1c2a6c61165ee169f732b71791b7d084873ace4a574a232f3329"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/System/Node/LeaderNodeProcessorWorker.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"6650e2789285173453496221bb9bd2a7fd02276e49f3e4d8f5fa872f7c639b2e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/System/Node/SystemStartupTasks.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"376f4ca9079c77e75ba771e9ea8269c6bc014e36e07e172393c735ee4afe00ab"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Infrastructure/System/SystemReadinessProbe.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8c36cd5342449a5b31a53de0bff87cf04d7f8254f105c36f839919d1e3ac64f"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/ConnectorsFeatureConventions.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"61cedc1279a77256f43484417a0adc5c0b78124d81f60c62a3db440a715c9ff5"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 8 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc49cdcbad06bc48909965f0699b1ff8122fd3f2d995f5966ed6f63f2cb6623"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsActivator.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"c59d61f009b0b40f84781d62536b4a36bfa265588cd5e8b4d7a5e5d55d004fb3"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS8509 // The switch expression does not handle all possible values of its input type (it is not exhaustive)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsControlRegistry.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"9338b283c3f9c510af3d15cc34660ff87fe2fd838e24c53c1002098effb7228e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/ConnectorsControlService.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"f21b9dc7ed84dd373b7286140fcb00737f0c35867d7d9cba9c49b0fd038f41c9"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/Diagnostics/ControlPlaneMetrics.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0b143f19ecd2462607f708c65af100d42ac88c0450bc8f8bc1d6e5f422416fd"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Control/Diagnostics/ControlPlaneMetrics.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"f39b62edf2d2cea1a960ffb5c6be453573e23137dc0b47f0c4578c45e70d279d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: BadRequest should be agnostic, but dont know how to handle this yet, perhaps check for some specific ex type later on... \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Management/ConnectorsCommandService.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"3faf68688001620c75674f778aeb952358b197e2b8c933becf4ea833d71a54cc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO SS: improve this exception mess later (we dont control the command service from eventuous) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Management/ConnectorsCommandService.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"3faf68688001620c75674f778aeb952358b197e2b8c933becf4ea833d71a54cc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Refactor into an extension method \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/Planes/Management/ManagementPlaneWireUp.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1827c421c4a5e1c2b20c27b95686c94187a3232616ac53e93cbb0223ef4d405"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Infrastructure/Http/TestServerContext.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bbbc02d4c2c90d2cee8c36e8235eaae549c818c5c40575d0333f67fc1163313"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Planes/Control/Activation/ConnectorsTaskManagerTests.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"68e27e61788cc9e49e47e80ac3d58523375d62f3040ceb5ad458a58982ce72b7"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Planes/Control/Activation/ConnectorsTaskManagerTests.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"68e27e61788cc9e49e47e80ac3d58523375d62f3040ceb5ad458a58982ce72b7"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Planes/Control/Activation/ConnectorsTaskManagerTests.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"68e27e61788cc9e49e47e80ac3d58523375d62f3040ceb5ad458a58982ce72b7"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Planes/Control/ClusterTopologyTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c35fc753bc3dde956c576ef041cbfcefd6b5a85f17a9de96efbc90aa23db770"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Planes/Control/ClusterTopologyTests.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c35fc753bc3dde956c576ef041cbfcefd6b5a85f17a9de96efbc90aa23db770"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable EXTEXP0004"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/Planes/Management/ConnectorsStateProjectionTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ab598fce6b023a1024af1b53862f8848cc4d2be241587c48a66764802620fcb"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Fixtures/ClusterVNodeTestContext.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"be74f53bd79997aafc1de28fae52c086d638d505271debb6999b6b40665e78e9"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CA1822 // Mark members as static"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Fixtures/ClusterVNodeTestContext.Helpers.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab2c43e5ebecad1869db9b1e69bb9039644a6bb99d04acdfe7560477f619f9e4"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/ChangeSchemaCompatibilityModeRequestValidatorTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"5be69cc0bf4477d2e290a8d659cd02ba27d23751883ef004a1f4420cb01d6130"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/GetSchemaRequestValidatorTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2a9da93bab6d72b3bb9febaa91942f4bbc4785b8c16909cfde3e6dcd54205da"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/ListSchemaVersionsRequestValidatorTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"c44fd1e68acff35bfd7c05055aeaa78e90021153867a70be60fcf8a28f31702b"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/RegisterSchemaRequestValidatorTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"83569e50a8f5b4a5eb4b59487cdfa9d3a6be6f432830433a5753dd1eb3e80344"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 7 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/RegisterSchemaRequestValidatorTests.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"83569e50a8f5b4a5eb4b59487cdfa9d3a6be6f432830433a5753dd1eb3e80344"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/RegisterSchemaRequestValidatorTests.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"83569e50a8f5b4a5eb4b59487cdfa9d3a6be6f432830433a5753dd1eb3e80344"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/Modules/Schemas/Validators/ValidateSchemaRequestValidatorTests.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ffd553ac7762096fdf158f3bf61572926a8cea6eb3e3da88bd87c1da96240e1"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Infrastructure/System/Node/SystemStartupTasks.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"24cc2fa92a1eddf09cddc3dcbfc8e5c10c55b1d96c9a80acc1238f6aec8a1756"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Must figure out a better way to do this. Right now, we have to do string interpolation, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Modules/Schemas/Data/SchemaProjections.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"6606df4e3d71341522ed2d79a727dd2b7e16a798b6be27c80a22b1e242642ab6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Refactor to ensure both connector and registry use a unified system readiness component \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/Planes/Projection/DuckDBProjectorService.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"7518ec57bd145a74bf423be0602889049aec075ad1c232135cda33353c497f2a"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/SchemaRegistryService.cs"},"region":{"startLine":217}}}],"partialFingerprints":{"codehealthFindingId/v1":"0548ce21b8d08640e8b9eefad2dd8694f273ceb4c2a2ca0e2254295e889ef43d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing.Tests/Fixtures/SecondaryIndexingFixture.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"9129fa5e4dc78c074d50b0c7f230ae4a458efc603836bbf26c05c6dd29988d24"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Ad-hoc query execution doesn\u0027t return the schema for the dataset. It\u0027s not possible to check \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/FlightSql/FlightSqlServer.cs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"230dc04d51985205d4011f0d0208de50f3de74072d5983b08419a298353f7ad6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // is_deleted TODO: What happens if the event is deleted before we commit? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/Default/DefaultIndexProcessor.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"03ab326a07bffb3f4a0cd81800a0e22d08230b9c9edff1f10189a25fa1b3a529"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove array allocation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/Indexes/GetDatabaseEventsFunction.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bc18bb657cd42057c426f37eae30ae96f7602d061bbd4ecfdd93c0b050a6ce8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO JPB Remove this sadness when dotnet core supports kestrel \u002B http2 on macOS \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/Helpers/MiniClusterNode.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"feee53956d88e5b681f719e32599ca3ba93fae400f06c2ab9917af841e34615c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY THESE NEED TO BE LOOKED AT IN LINUX \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/connect.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"f610c904b91cfb25fe5d5fb07b4004ed914095b457b7ad1680e0bfbba2904b73"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY THESE NEED TO BE LOOKED AT IN LINUX \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/connect.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"f610c904b91cfb25fe5d5fb07b4004ed914095b457b7ad1680e0bfbba2904b73"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY THIS TEST TIMES OUT IN LINUX. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/connect.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"f610c904b91cfb25fe5d5fb07b4004ed914095b457b7ad1680e0bfbba2904b73"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /*\n\t//TODO WEIRD TEST GFY\n\t\t\t[Test]\n\t\t\t[Category(\u0022Network\u0022)]\n\t\t\tpublic void throw_on_connect_called_more_than_once()\n\t\t\t{\n\t\t\t\tvar connection = TestConnection.To(_node, _tcpType);\n\t\t\t\tAssert.DoesNotThrow(() =\u003E connection.ConnectAsync().Wait());\n\n\t\t\t\tawait AssertEx.ThrowsAsync\u003C\u003E(() =\u003E connection.ConnectAsync().Wait(),\n\t\t\t\t\t\t\tThrows.Exception.InstanceOf\u003CAggregateException\u003E().With.InnerException.InstanceOf\u003CInvalidOperationException\u003E());\n\t\t\t}\n\n\t\t\t[Test]\n\t\t\t[Category(\u0022Network\u0022)]\n\t\t\tpublic void throw_on_connect_called_after_close()\n\t\t\t{\n\t\t\t\tvar connection = TestConnection.To(_node, _tcpType);\n\t\t\t\tconnection.ConnectAsync().Wait();\n\t\t\t\tconnection.Close();\n\n\t\t\t\tawait AssertEx.ThrowsAsync\u003C\u003E(() =\u003E connection.ConnectAsync().Wait(),\n\t\t\t\t\t\t\tThrows.Exception.InstanceOf\u003CAggregateException\u003E().With.InnerException.InstanceOf\u003CInvalidOperationException\u003E());\n\t\t\t}\n\t*/ \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/event_store_connection_should.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b9c547e5f3db804ab2a170df20adedf5e141b88e47076b589f14a4d4277a91a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY this should be removed and merged with the public idea of a transaction. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/Helpers/Writer.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"41b7695186a63cf6c59eb59e42cb6bedd699a61942c391e21170843fe776fc69"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":334}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This is a workaround until github issue #1744 is fixed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientAPI/soft_delete.cs"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"09640c5dc9113d6d0ffd3f489e773f39fd145e9a6f0b7952dc98047aa5a98e41"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/ClientOperations/specification_with_bare_vnode.cs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"25a7810b6b913ce7ceacf6d6bce388daeb50802eb6361e7b3798930affa4d39c"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: //quick greg hack to allow methods to not exist! \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Helpers/ReflectionDynamic.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"648d040458f9f7b925990618a4d405fb2210741e9d2f21c22268091ef5a80301"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY I really wish we were targeting 4.5 only so I could use Uri.EscapeDataString \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Http/Streams/feed.cs"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc767e04c64a68bb0758acfc5c7010af1f182a8e66e39292c4759a80b4070e3e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: fix this unsafe test it will fill the target disk if the test is aborted or an error occurs \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Index/IndexV1/opening_a_ptable_with_more_than_32bits_of_records.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0ba2b4600f138bb58d8f4500891004c20ef3e7800e4058eb860da5adb6b6d29"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: we no longer support mono and can remove this test, but we can also remove whatever production code change \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/mono_filestream_bug.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"8024b0abc830245e8b27d99c1722c867022992f4d0ee67e2a8ea0870fecb1b54"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Storage/EpochManager/when_having_TFLog_with_existing_epochs.cs"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"68b22a4c821751502201bac2bee2bb58d94c274bb3af46f59847c41884b668f5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Storage/EpochManager/when_starting_having_TFLog_with_existing_epochs.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"b326d5ea9368e74913aa39d41cd73d10358e9bf7580692ccca51690cdcdfb80b"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Storage/EpochManager/when_starting_having_TFLog_with_no_epochs.cs"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f1191c0947f6e3b007f274624f2a2fc77d29eba3d891c5064f34b83d0cdf661"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Storage/EpochManager/when_truncating_the_epoch_checkpoint.cs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"b848092ab63ce076876d57a0ad16557e2314ce07079cd4b86ee60d1966d1ed92"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 612"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Transport/Grpc/PersistentSubscriptionTests/CreateTests.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd0b6e2cda8733ee4bc47c33925ab66056067e911eb6c5137010b7fdcfd94a7d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/Transport/Grpc/StreamsTests/SubscribeToAllFilteredTests.cs"},"region":{"startLine":393}}}],"partialFingerprints":{"codehealthFindingId/v1":"181f0476101a2e460b3fd3d03e0cc23a57e7bd35fb5bde4b378dadfc4843c4f8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO GFY THIS TEST LOOKS LIKE ITS NO LONGER VALID AS THE \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/Services/UserManagementService/password_change_notification_reader.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"54a223fa8230f847a669e399729fd50c15428386b92a26381828927048e0c466"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO MM: avoid this complexity - try scavenging exactly at where its invoked and not wait for readIndex to rebuild \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Truncation/when_truncating_into_the_middle_of_scavenged_chunk_with_index_in_memory.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"324399597b5ef13c35770f27aeadb1e8928e2fb25ea1b095479dc5d617efbd03"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO MM: avoid this complexity - try scavenging exactly at where its invoked and not wait for readIndex to rebuild \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/Truncation/when_truncating_into_the_middle_of_scavenged_chunk_with_index_in_memory_and_then_reopening_db.cs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"2aff0a75f3053a867ba2882999a16c160df9542cdecda3fd1cb66177b3c69bd5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO MAKE THIS ACTUALLY ASSERT OFF THE FILE AND READER FROM KNOWN FILE \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/when_writing_prepare_record_to_file.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fcf147e8875b331ef1115773873e70a92e7c686b4819277c23b909ccf2a6c78"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO MAKE THIS ACTUALLY ASSERT OFF THE FILE AND READER FROM KNOWN FILE \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/TransactionLog/when_writing_prepare_record_with_properties_to_file.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"0aaa5fe31f6e30df055990c42393292f473a85b8235d74e74d048bfc3b49bbd5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable xUnit1026 // Theory methods should use all of their parameters"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/DataStructures/ProbabilisticFilter/BloomFilterAccessorTests.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9925782430545215244c239790dd66c7bc1df46319c9a77d935e40c62b364d8"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (CollectionException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Metrics/ProcessMetricsTests.cs"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"391f4a0b4809fc614d6ef6ba34dc68f703fe6625430217e46a149ffaa1cf87c5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: something weird happens here, possibly the system doesn\u0027t properly handle \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/ChunkWeightTests.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e84a9f923b7ce24a59907964ff1e9e126aec6dffb0c00e6a1adc5a3c8fe2312"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0162 // Unreachable code detected"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/ChunkWeightTests.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"beec1f7e4fd5573b8adab490f57bdfaa8a41006abf15cb93d649956313ae72cf"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0162 // Unreachable code detected"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/CombinationCriteriaTests.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"9147fa8fb80da932a25eb118adef537e9fc6c11649a227807b5b7136bba0452e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/Infrastructure/Scenario.cs"},"region":{"startLine":355}}}],"partialFingerprints":{"codehealthFindingId/v1":"204d7bc304ff576a26589174f4deb5a8b1170395491a889fe8ea782e06f0f852"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0162 // Unreachable code detected"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/Infrastructure/Scenario.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"204d7bc304ff576a26589174f4deb5a8b1170395491a889fe8ea782e06f0f852"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0162 // Unreachable code detected"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/MaxAgeTests.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb3e810cfab456f872454e153a8856bccc245868daab0cba45f74e31dd90abac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0162 // Unreachable code detected"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/PortedFromOldScavenge/ScavengeTestScenarioPortedScavengeTests.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f670bd30e97b84bbcfe311aa0c28000c63a696721570fdbcd0a382e20b3f4f6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0162 // Unreachable code detected"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Scavenge/SubsequentScavengeTests.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d460ad2ea625106af6ccc45ea528d8e52d694a849ccac06ce151b3978d0cbae"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable IDE0073 // The file header does not match the required text"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/Services/Transport/Grpc/TestServerCallContext.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b209996943e7c9662b715255fbebcc09785c99ee65d577d8a892f562b4de44ab"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Licensing.Tests/FakeAuthenticationHandler.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7ccbef8032b3244dd3f23a6e615df47abd32683479a6b97f5e58d3195ac404f"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript.Tests/Integration/ProjectionRuntimeScenario.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"3040ce1af3a0cc9757c141ba68c4fb1651ad18a348e07e1c76ad1e37ad55ef5d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript.Tests/Integration/SubsystemScenario.cs"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"f16c89cc0e61d9a094eed99c32b80a51d906215bc260e305e318bd11a5eb476a"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/AssemblyLoading.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"585113bb9a09a7922965936813788124757a017c075de7464e31aceb51e28f43"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1998"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/Cluster/specification_with_standard_projections_runnning.cs"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"83ffc4be21d621eff573e6e91bec6b3d6909fe7e0eb388307a62e5ac07ed56e7"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1998"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/Cluster/specification_with_standard_projections_runnning.cs"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"83ffc4be21d621eff573e6e91bec6b3d6909fe7e0eb388307a62e5ac07ed56e7"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1998"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/specification_with_standard_projections_runnning.cs"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c355fd32b8c16270111527bde137649ccff8fe04b22ae1c1e3ceb3de76d7bd0"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1998"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/specification_with_standard_projections_runnning.cs"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c355fd32b8c16270111527bde137649ccff8fe04b22ae1c1e3ceb3de76d7bd0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo replace with a deterministic fix rather than just covering the potential race condition #2236 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_are_indexed.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"316dbfb7942115c2e9816196f2d2c21e319d00fe3ebe89d13191e4c52604e196"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/Jint/Serialization/when_serializing_state.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"61f3d0bbb88b59f17b5b3a3cf31a0d31269c3855d79f7d14bea04e325423d998"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (TimeoutException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/Jint/when_creating_jint_projection.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"f72631d71f83b57b069b6e52a7b43daba914ce71a47e01e3c102325c6926ed45"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: replace with an actual benchmark \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/Jint/when_running_a_js_projection_emitting_metadata.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"b611a3a0a1753d142b471a8469429a4aed2e14c66c34f264f816b05a66ba758a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo: actual benchmark \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/Jint/when_running_emitting_js_projection.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"33282fd922015d69db7717257a7a158ba8c937f7c9859303c1b34c2b0beca416"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: this became an integration test - proper ProjectionCoreService and ProjectionManager testing is required as well \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/projections_manager/specification_with_projection_management_service.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"480584be86ff6489f7a79ed49ef7c9abcd574bab799dcdfa01ad7f823ad57743"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: this became an integration test - proper ProjectionCoreService and ProjectionManager testing is required as well \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/Services/projections_manager/TestFixtureWithProjectionCoreAndManagementServices.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"c62f13d63e8b06e782973f224504c78b62be4b2c6ac6c6c4d31a5cdfda9da8c7"}},{"ruleId":"D17","level":"warning","message":{"text":"BareSuppressMessage: SuppressMessage"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/AssemblyLoading.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"642036446c582706490ca41c35aa0f2f966a74d39853cf1df6c64ec185ad67a0"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_catalog_stream.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"5735dcab964e643d6f51b7d172f8256779b4c9c36303891456df00d07ba855c6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_event_type_index_positions.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"079f6881e3ffc26c2ba4ebdd67051a17bb7dce853b400e6655acfa3444a03e7a"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1718"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_phase.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d2c620a462ab297100ea5990b0ca6768e459cc4da07a5dcf2e161fa51fd780f"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1718"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_prepare_position.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"c282ecbf9c7b3a17cfb0343558e3ab79dd149060d07793135bc3c509761897ec"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_stream_position.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fec79451274b62bfb46c495419464b89f469e89c313170eb47439d327fc4e2b"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_stream_positions.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"dda60c580286cea120dbcc73a99cfb04213833f7af8a3ae29f9683d73a49c4c5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_by_tf_position.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"85280299f04d6d6460fdbe279fcb6c24471758bea19f66970e978610f1ca3e7d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/checkpoint_tag/checkpoint_tag_phase.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"34ac2ad69227f7c5cc23fe31e236e2763695b7dafe18955183d183ef0291f18c"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_a_default_checkpoint_manager_has_been_reinitialized.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"4399719101277824fb2c94933563bf4f7c7a03cdeeeee88145bfe67f85ad5125"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: move to when loaded \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/checkpoint_manager/when_beginning_to_load_state_the_core_projection_checkpoint_manager.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"294321adafda4cc1b6d0f1761804b28e3602cc2b8f9ff3a52bdbcdb75ac54b61"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: test whether checkpoint does not allow positions before last emitted event caused by position \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/projection_checkpoint/when_requesting_checkpoint_after_all_writes_completed.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"1761a7967b652a02daeef4f494802c3d4160cf83cc9e37f116d55d9fa0b5ce56"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: support sequence numbers here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/when_receiving_a_committed_event_the_projection_should.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"72bf6ef73a8318aae87f2ba5ca883b01c276394f2ed25af456766ff83a96423d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: support sequence numbers here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/core_projection/when_receiving_a_committed_event_the_projection_with_partitioned_state_should.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d62084c9daf47c255d223b531398c5e0d866261a1985760035c53b39505b220"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: is it corrupted dB case? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/emitted_stream/when_handling_an_emit_with_expected_tag_the_started_in_recovery_stream.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a3f27f422d5d1baa6d6e1e4890ce0d5980c9697d1b6f52e5f0c41f176f95e13"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable 1718 // allow a == a comparison"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_position.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"6553a8af7c7ceab2382e4911bc224f516a42c5c2092505864263d0b5daa11c12"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: SW1 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/heading_event_reader/when_the_heading_event_reader_handles_an_event.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d2a8892f879c8c28336e2e7414c6479617d2614ea415168fc6154fbda6c10e"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reader/heading_event_reader/when_the_heading_event_reader_with_a_subscribed_projection_handles_an_idle_notification.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e8617606f3fea83b3f3c475c92a56b57a385f769c86536eb6f86f2f30604eb5"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 108, 114"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reordering_projection_subscription/when_handling_a_second_event_after_the_delay.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"9137352e7f3f4eef2f34f40ec09ea02fe0242c91e445e383763fa4286b157a97"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 108, 114"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/event_reordering_projection_subscription/when_handling_two_subsequent_events.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6dc46844114eda9b88b6e43e9ac4636849d0748d3d160ad1b61e50dc379a669"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: write tests on updating with incompatible snapshot loaded \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/event_by_type_index_position_tagger/when_updating_postion_event_by_type_index_position_tracker.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"42d77a27bfc5346deccc69abb6bcc157e72a019de714e094844c4f076aef1fd5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: write tests on updating with incompatible snapshot loaded \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/multistream_position_tagger/when_updating_postion_multistream_position_tracker.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bf22536cc131d5dafbe63cbf2bd59a8fa7a73f2162c8addcc12e8b97d162a8f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: write tests on updating with incompatible snapshot loaded \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/Services/position_tagging/stream_position_tagger/when_updating_postion_stream_position_tracker.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac559682874eaa60fec76591098a0ee90aa71c5ad85d780548ee9f55afe6c45b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Flesh out this helper as more tests need it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.XUnit.Tests/TestHelpers/ExistingStreamsHelper.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"43fff6f53e069b0a5455ab263d8e52fac448846a20fe70e200f5d66fe0df3068"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Flesh out this helper as more tests need it \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.XUnit.Tests/TestHelpers/FakePositionTagger.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b8e20866e66d662601361d64f34a23d86011ce47320193f4386f62ed8b3d5a2"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/CreatedStreamProjectionTests.cs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"670f4d0267677ae95d8b6e4178935f4cb5b9c369ccc6e7177abcac9f9cb82675"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/CreatedStreamProjectionTests.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"670f4d0267677ae95d8b6e4178935f4cb5b9c369ccc6e7177abcac9f9cb82675"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/CreatedStreamProjectionTests.cs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"670f4d0267677ae95d8b6e4178935f4cb5b9c369ccc6e7177abcac9f9cb82675"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/DeletedStreamCategoryProjectionTests.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0004b4bc84a73154db5020c3176c5dacb94b6d3041a73ecb2e113c64c67aacd"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/DeletedStreamCategoryProjectionTests.cs"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0004b4bc84a73154db5020c3176c5dacb94b6d3041a73ecb2e113c64c67aacd"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/DeletedStreamCategoryProjectionTests.cs"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0004b4bc84a73154db5020c3176c5dacb94b6d3041a73ecb2e113c64c67aacd"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/DeletedStreamProjectionTests.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"08a6bb4ff1a5b0a9f5a64c4165ae465612229a622d866f98a168a0c5d68f52a9"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/DeletedStreamProjectionTests.cs"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"08a6bb4ff1a5b0a9f5a64c4165ae465612229a622d866f98a168a0c5d68f52a9"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) when (\u2026) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/DeletedStreamProjectionTests.cs"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"08a6bb4ff1a5b0a9f5a64c4165ae465612229a622d866f98a168a0c5d68f52a9"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (RpcException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Integration/UserLoginProjectionTests.cs"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d38c98b754f5bf9abc4e6825b8837fed514e861d0ef8ed7a485ae58a66f2314"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: whats with all the delays in this test project \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/Unit/ProjectionEngineV2LifecycleTests.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"56178f4ea7c6a2536611f0b85c8e18ed2df7bc8c19b5ae36bccdc569ff6865da"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (JsonException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Events/EventTextHelpers.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b8d6c964ce80a62e1d7abe6c233623f6f719497b1bf2c5309a74daa54e658a4"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (JsonException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Events/EventTextHelpers.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b8d6c964ce80a62e1d7abe6c233623f6f719497b1bf2c5309a74daa54e658a4"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Indexing/SubscriptionBase.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"11299433c161bcf6086d95f518a94e44aea3a82b4c3c594b3e7da928ecba96e1"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Indexing/USearch/SegmentMerger.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cdf423435ec6e62a98af2acac96d1fe894cf80f293ad121e3721dd3366246a6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (AggregateException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Indexing/USearch/SegmentMerger.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cdf423435ec6e62a98af2acac96d1fe894cf80f293ad121e3721dd3366246a6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (InvalidDataException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Indexing/VectorIndexMetadata.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a145809560cd5bb01eefa3a884859e78cf9b81128bd3907b079d9bab5d75420"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (OperationCanceledException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/Workspaces/Runtime/WorkspaceRunner.cs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd8b8ed65c1ba24eb7435e5ecd27fefd7c2413b2fdb40331627dc8007fadd62b"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable MCPEXP0001, MCPEXP002 // RunSessionHandler is experimental"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Kontext/KontextPlugin.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b7b591996ab71651e848b9636fdf2e99cf6f02dcce982cd72a261dcd56a49b8"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/KurrentDB.TestClient.csproj"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"c36b903ac34c018b7391885e4de111582876eeab9a6adf23c08ce26d9f1b4110"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1702"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/KurrentDB.TestClient.csproj"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"c36b903ac34c018b7391885e4de111582876eeab9a6adf23c08ce26d9f1b4110"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/KurrentDB.TestClient.csproj"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"c36b903ac34c018b7391885e4de111582876eeab9a6adf23c08ce26d9f1b4110"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: xUnit1041"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Tests/KurrentDB.Surge.Tests.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c0ae7cc6fa063b5183e84143b216ac6ec883f32ecdcb7f898320b2effdb026d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: xUnit1051"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Tests/KurrentDB.Surge.Tests.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c0ae7cc6fa063b5183e84143b216ac6ec883f32ecdcb7f898320b2effdb026d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: xUnit1041"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/KurrentDB.Surge.Testing.csproj"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"750e4f72ac4b9ce15d971b7495af183ada88e358d59846477a47917904c48872"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: DuckDBNET001"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/KurrentDB.SecondaryIndexing.csproj"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"650780994d4b0c93ef804999ddcbfa83fefee928d7a2fefb5348501f2a0dc661"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: CS7022"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing.LoadTesting/KurrentDB.SecondaryIndexing.LoadTesting.csproj"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec4508aef7f09840a6b0458ca28f52504061d3b8aa8717367c1da2ca5271c29a"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: NU1904"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Kontext/KurrentDB.Plugins.Kontext.csproj"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"5828b1d52fcab72d66a24f141435fccccede96028b4c6e74c9fbd71e69a3ee01"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: NU1904"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Kontext.Tests/KurrentDB.Plugins.Kontext.Tests.csproj"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"45554939372891ba155e104b871b965973816b980ffbc7e614e950006db03cc3"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: NU1904"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/KurrentDB.Kontext.Tests.csproj"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a30fb5c9ee1d2b0f54109fc431ec84d8727548fb0f3304b14a6666d64be7c28"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: CS1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f709f9c1150ade8812ab3a100ed1d85f19194818cbc6ca7b00c4a09b56a45f"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: CS1998"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f709f9c1150ade8812ab3a100ed1d85f19194818cbc6ca7b00c4a09b56a45f"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: CS8618"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f709f9c1150ade8812ab3a100ed1d85f19194818cbc6ca7b00c4a09b56a45f"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: CS8524"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f709f9c1150ade8812ab3a100ed1d85f19194818cbc6ca7b00c4a09b56a45f"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: CS8655"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f709f9c1150ade8812ab3a100ed1d85f19194818cbc6ca7b00c4a09b56a45f"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: RCS1194"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f709f9c1150ade8812ab3a100ed1d85f19194818cbc6ca7b00c4a09b56a45f"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: xUnit1041"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/KurrentDB.Connectors.Tests.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"d57ed8f9ffbcb22d299688f69eb94025781eb8c5c4d4197479c11cf1c879c127"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: xUnit1051"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/KurrentDB.Connectors.Tests.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"d57ed8f9ffbcb22d299688f69eb94025781eb8c5c4d4197479c11cf1c879c127"}},{"ruleId":"D18","level":"note","message":{"text":"Build status unknown: The build did not finish within its budget on this run; structural metrics are reported, build/warning status is unknown."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"78e40f3b9a0e52c8707cbe4b5154bc230ba104e99fc8a0b453669e73b2ef6814"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: KurrentDB.ClusterNode.Web: \u0060KurrentDB.ClusterNode.Web\u0060 contributes only 0 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.ClusterNode.Web/KurrentDB.ClusterNode.Web.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2c8caea07e7565d6bf4142a61a4c9c549f1cc372c9e3010dd3a8d2ba93dea23"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: KurrentDB.Connectors.Contracts: \u0060KurrentDB.Connectors.Contracts\u0060 contributes only 0 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Contracts/KurrentDB.Connectors.Contracts.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d89260a19411f1977551c8c4a42a3438ed188e510a68f93695bb0764f9408b29"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: KurrentDB.SchemaRegistry.Protocol: \u0060KurrentDB.SchemaRegistry.Protocol\u0060 contributes only 0 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Protocol/KurrentDB.SchemaRegistry.Protocol.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"451dc7640a4223704544d518f00894ba1c9c80c987d82445b22dceb8d7df2145"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: KurrentDB.Surge.Testing.Messages: \u0060KurrentDB.Surge.Testing.Messages\u0060 contributes only 0 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing.Messages/KurrentDB.Surge.Testing.Messages.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba167bd07433b2c25e6c68f522ed41893103c71b7b71cac174b1cb8d96e3b99a"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: KurrentDB.Kontext.Models: \u0060KurrentDB.Kontext.Models\u0060 contributes only 0 significant line(s) \u2014 an empty/placeholder project is structural noise. Remove it or fold its contents into a real project."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Models/KurrentDB.Kontext.Models.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"518aea14786c30f1183c2642061aad311a2c7861054b2ed26bd395cb2bde2a5c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.BufferManagement (Production): 5 .cs files, 728 LoC (440 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.BufferManagement/KurrentDB.BufferManagement.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec7f944ad7677759d9c6edcb9f09f2df801afabeca96d35259bf0d16185d1810"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.BufferManagement.Tests (Test): 3 .cs files, 700 LoC (587 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.BufferManagement.Tests/KurrentDB.BufferManagement.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cac63e5778e5bb84eab0e79c08d71d7c95e205303b3146affccd5dfcf42f7f4"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.V1.Tests (Test): 288 .cs files, 22482 LoC (18349 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.Tests/KurrentDB.Projections.V1.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"967244ecdc2a1141807d44ece333a78cb6e613e155438745ad115bef79437442"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.ClusterNode.Web (Production): 0 .cs files, 0 LoC (0 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.ClusterNode.Web/KurrentDB.ClusterNode.Web.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1be21716d3c512120d34f3eca4292277df978814cf9dfd4bca0e92c56c6be05e"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Common (Production): 57 .cs files, 4495 LoC (2985 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common/KurrentDB.Common.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc5ecb36dcfd5bbcd4832b327b05740702ad4e75a8c62058b1d17071e22d4ce8"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core.Tests (Test): 812 .cs files, 99625 LoC (80116 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Tests/KurrentDB.Core.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"554002fa7694de3050e2e91f37984bc54d82a96d818c94b82ded4cda8edf42da"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.V1 (Production): 128 .cs files, 12688 LoC (10150 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1/KurrentDB.Projections.V1.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0da8038bff9f2ac0aa2871095021467575e22fa5effe37d1b1bda41a8884f078"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.TestClient (Production): 66 .cs files, 7863 LoC (6110 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TestClient/KurrentDB.TestClient.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec778e24366796087b0d8e86c81a1ccfef8cb070ddd300b98e600ded73578bea"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Transport.Http (Production): 34 .cs files, 2472 LoC (1859 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Http/KurrentDB.Transport.Http.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5f57eb9a858f091d33de7e203b770b9397865fdcc954ad45ab2ad7f7154bda7"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core (Test): 868 .cs files, 95366 LoC (73732 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/KurrentDB.Core.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0913b8f19581e130b3f368583f10ac2592137265f6081dd621350e04f2f270fe"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Transport.Tcp (Production): 20 .cs files, 2546 LoC (1906 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Transport.Tcp/KurrentDB.Transport.Tcp.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8742263b2467f0d77b49fa694520b6bab6212ce467395e15a063aa65c61281bd"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB (Production): 18 .cs files, 1486 LoC (1156 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB/KurrentDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"92474e3daf95606a955f00cbe8f2d2653d9c530cb0f61567def0c91e80916065"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Native (Production): 6 .cs files, 413 LoC (302 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Native/KurrentDB.Native.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1fcdad65563dd44f18b7014ae7e99f17bdaf2fc6feda2482786b262907080ba"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.NETCore.Compatibility (Production): 24 .cs files, 4710 LoC (3922 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.NETCore.Compatibility/KurrentDB.NETCore.Compatibility.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c341d09f97e0dfa12612a3fbcf5c8ddd34083e3ff40c5343ba3e0bbb5aae76cd"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.LogCommon (Production): 2 .cs files, 39 LoC (24 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.LogCommon/KurrentDB.LogCommon.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e96b6bc01beb03862123958b439819b0243c4b3dd4cf5480d447c2388f79f70"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core.XUnit.Tests (Test): 182 .cs files, 23563 LoC (18833 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.XUnit.Tests/KurrentDB.Core.XUnit.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"678408af04a50aaa7cfcc6e7aa5d5f740330c1d70bb8913a0e0c6b6c1b26484c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.JavaScript.Tests (Test): 7 .cs files, 1141 LoC (972 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript.Tests/KurrentDB.Projections.JavaScript.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a4c47b7980637d927c3a82037da015c92e2645d79996b5c579ecb19e16346bc"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.MicroBenchmarks (Production): 3 .cs files, 127 LoC (97 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.MicroBenchmarks/KurrentDB.MicroBenchmarks.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f612cae32ab76fedd9ef9f9ee3418a6ce2d387ef1646066590a726fe2c952da"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SourceGenerators (Production): 4 .cs files, 351 LoC (276 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SourceGenerators/KurrentDB.SourceGenerators.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3dcb1ba09fcfb3a33d0d9771710e6cec44cbedc29fb9768f5e461d028ead283"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SourceGenerators.Tests (Test): 12 .cs files, 281 LoC (229 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SourceGenerators.Tests/KurrentDB.SourceGenerators.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"62d3b0ddb2a9dfe49bf6fd9637c121298d9b162e71d8f8699b758e972157e080"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Common.Tests (Test): 9 .cs files, 510 LoC (383 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Common.Tests/KurrentDB.Common.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a939d5756ae83c9cd1a2b5151345874a558e507e52f8e9c9b44b3e549c9aefcb"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.PluginHosting (Production): 1 .cs files, 84 LoC (65 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.PluginHosting/KurrentDB.PluginHosting.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2ed1f4b0c94a2d81c787d779bce6d3a04284c4b3b4d7b0485002e9751277926"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SystemRuntime (Production): 8 .cs files, 877 LoC (546 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SystemRuntime/KurrentDB.SystemRuntime.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7122f304d07d1385388012e7274c27a8f6b295d963176c727c51e15e25100def"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Licensing (Production): 13 .cs files, 1127 LoC (813 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Licensing/KurrentDB.Licensing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"98245f730be0806f55cc967ee38fa6b9f2f44e93f10bf3868f22818891812861"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Licensing.Tests (Test): 12 .cs files, 1062 LoC (824 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Licensing.Tests/KurrentDB.Licensing.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ddcc0fe09c027a83155724aa8ce3dd89e27d8f48b99a70fe4acf01ca4946482"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SystemRuntime.Tests (Test): 2 .cs files, 79 LoC (57 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SystemRuntime.Tests/KurrentDB.SystemRuntime.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3135ef419f1bce7b4163e82036438b274bb3653e33a0e594bef379faf9bd2b2"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.OtlpExporterPlugin.Tests (Test): 4 .cs files, 302 LoC (230 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.OtlpExporterPlugin.Tests/KurrentDB.OtlpExporterPlugin.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e84908cab5f6447980ff1ec8ed1e869ac6fbd043438cc086a5a70d4bcb82d69"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.OtlpExporterPlugin (Production): 1 .cs files, 78 LoC (46 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.OtlpExporterPlugin/KurrentDB.OtlpExporterPlugin.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c64af70d1d47ba6f8922a5681febce539290f2dbc9b2e5cbc36d8925a508ea3"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.TestHelpers (Production): 1 .cs files, 54 LoC (41 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.TestHelpers/KurrentDB.Plugins.TestHelpers.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b9af5f278bd91585cf1d0acf493291a05ee03fef199264a3fea5d7b23f28fae"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.Ldaps (Production): 9 .cs files, 708 LoC (518 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps/KurrentDB.Auth.Ldaps.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"59487ba879758dcca1742b6f8200792b9be2b652298c2c9bb6d8d5d6d5c23659"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.Ldaps.Tests (Test): 4 .cs files, 351 LoC (268 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.Ldaps.Tests/KurrentDB.Auth.Ldaps.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"47537744931713ab523efffdae7ec5ad970fa2be77f051151baab77584fb177c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled (Production): 29 .cs files, 1125 LoC (820 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e8b949ba065b4e07982be2da901c89612f9c46ad38abbda831e6b9b0f4cca06"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled.Tests (Test): 1 .cs files, 125 LoC (95 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled.Tests/KurrentDB.Auth.LegacyAuthorizationWithStreamAuthorizationDisabled.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b3a53049768157ff81abb4dc778ca47bba9b83b14a3da9a8b380a03b62e485f"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.OAuth (Production): 2 .cs files, 581 LoC (481 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth/KurrentDB.Auth.OAuth.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6acbfa577a047b9bdf7541d2db40cfcad66e96992c3d5dd87a05bf22df78fa8f"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.OAuth.Tests (Test): 11 .cs files, 878 LoC (667 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.OAuth.Tests/KurrentDB.Auth.OAuth.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a2b8b1341cfaa958f77129c1dc3090c3ead97c85b03bbb6a56dcecb6475abdd"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.UserCertificates (Production): 4 .cs files, 430 LoC (309 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.UserCertificates/KurrentDB.Auth.UserCertificates.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e48c4d84d6a38989a0c041ed8f195b2755678b30115fc9533e287c03540262bd"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.UserCertificates.Tests (Test): 10 .cs files, 1199 LoC (939 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.UserCertificates.Tests/KurrentDB.Auth.UserCertificates.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"860bc954d3833a1e02f4aab121537e35a8c4421d0c8707ce6a5fad3cd2d98e6d"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Diagnostics.LogsEndpointPlugin (Production): 2 .cs files, 208 LoC (161 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Diagnostics.LogsEndpointPlugin/KurrentDB.Diagnostics.LogsEndpointPlugin.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"72b169d2259e6e9b651087d517e7427de4cff0b00900a582e752476003c9c5ba"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Diagnostics.LogsEndpointPlugin.Tests (Test): 2 .cs files, 400 LoC (304 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Diagnostics.LogsEndpointPlugin.Tests/KurrentDB.Diagnostics.LogsEndpointPlugin.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"049e6f83d77d9df519d7d2ab0edd63f1e02d363f52ed70194887cf828d1b1f3b"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Security.EncryptionAtRest (Production): 23 .cs files, 1429 LoC (984 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Security.EncryptionAtRest/KurrentDB.Security.EncryptionAtRest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbc348f33074edddbbca2e0dc8fef07901c1beaa9fede31f1079ad84faec5cba"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Security.EncryptionAtRest.Tests (Test): 2 .cs files, 397 LoC (295 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Security.EncryptionAtRest.Tests/KurrentDB.Security.EncryptionAtRest.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbcf899346a0fcc22f1730eacbc377368ec57a134446384b5d797c03c5a3c73c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.POC.IO.Core (Production): 9 .cs files, 386 LoC (275 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.POC.IO.Core/KurrentDB.POC.IO.Core.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b06a15633c5def04d5dea978d39e772d3186ae69f728914503c0ec77c21946c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.POC.ConnectedSubsystemsPlugin (Production): 3 .cs files, 480 LoC (402 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.POC.ConnectedSubsystemsPlugin/KurrentDB.POC.ConnectedSubsystemsPlugin.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2a9e3e02dc0ce34b79896e55e95171db955b6655ce282d1afa6cbadc2e8a440"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.AutoScavenge (Production): 38 .cs files, 2561 LoC (1699 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge/KurrentDB.AutoScavenge.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"73daba58c46905a567357f0be281be988f73a9165c2eb81ab34dffcb43342539"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.AutoScavenge.Tests (Test): 28 .cs files, 2680 LoC (1974 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.AutoScavenge.Tests/KurrentDB.AutoScavenge.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"61e038e449f692497d1e30ce181e0d25555e98eb1b1cb398d15c574cd7d70d65"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.StreamPolicyPlugin (Production): 11 .cs files, 899 LoC (719 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin/KurrentDB.Auth.StreamPolicyPlugin.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8d00652903cd2511a6aee9756cf4258dd1ff9d0a614c1867549b6b4b20e0090"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Auth.StreamPolicyPlugin.Tests (Test): 7 .cs files, 1171 LoC (947 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Auth.StreamPolicyPlugin.Tests/KurrentDB.Auth.StreamPolicyPlugin.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"72a5f8405d3e665edc112741b938f7fe29a998bf7713f041b5d09749ac1b24b7"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.TcpPlugin (Production): 3 .cs files, 133 LoC (106 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TcpPlugin/KurrentDB.TcpPlugin.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c2c937ca53444e71beaa36835a7e6e137357e89d5ec473eb6325623229b0161"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.TcpPlugin.Tests (Test): 4 .cs files, 262 LoC (209 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.TcpPlugin.Tests/KurrentDB.TcpPlugin.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5aeb24765a111ba914d9c718019922f1ac1829b88e4fd5ac70128a4ca3cd7c1f"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.UI (Production): 4 .cs files, 70 LoC (40 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.UI/KurrentDB.UI.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bdaa62e6a3731f153b841e7387375496050662be52b55deaeb273c3e634ad6b"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.Connectors (Production): 1 .cs files, 45 LoC (36 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Plugins.Connectors/KurrentDB.Plugins.Connectors.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"693c82fc8b80db66c035ff96c1ecf3dd2364ef0ea6bbde09e9b76cccf5849a6a"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Connectors (Production): 74 .cs files, 6016 LoC (4129 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors/KurrentDB.Connectors.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"02adaaeedca74a651771f19607b07b53c65525d18bb68b2d3cdb33766c965f28"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Connectors.Contracts (Production): 0 .cs files, 0 LoC (0 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Contracts/KurrentDB.Connectors.Contracts.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"475f8232812bbd0f72f967a0467ae24cd9748d6fd4da9315c7538449c1cda018"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Connectors.Tests (Test): 26 .cs files, 3171 LoC (2018 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.Tests/KurrentDB.Connectors.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9116db9dd3151ff682cc26021dc50dfe956f672593a6df03138fdd7d82acd9eb"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Connectors.TestServer (Production): 1 .cs files, 24 LoC (18 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Connectors/KurrentDB.Connectors.TestServer/KurrentDB.Connectors.TestServer.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54261434d8df86ff7de5d1a64e5f2a90b3c33bfd34db5dcd2b7c4dfe57a0c98d"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SchemaRegistry.Protocol (Production): 0 .cs files, 0 LoC (0 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Protocol/KurrentDB.SchemaRegistry.Protocol.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9da66c40c3d1a15df7080e62550856b9b8cf19e8fa71242c154ea578afbeb1d3"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SchemaRegistry (Production): 41 .cs files, 4159 LoC (2985 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry/KurrentDB.SchemaRegistry.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"59172e407c44fd021606656ac4ca93ff1e2b5de300d8a2f0ff0255fb747a72db"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SchemaRegistry.Tests (Test): 48 .cs files, 3900 LoC (2577 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.SchemaRegistry.Tests/KurrentDB.SchemaRegistry.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a757246dbeec6b3a6349352531c76ab931091c094389c3b5d47f6c04cdb8f46"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Surge (Production): 18 .cs files, 1603 LoC (1199 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge/KurrentDB.Surge.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"97cd987b5f99be511389cccf7c50b97016c064017c4bb64ca0d87bdcc0c9054f"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Surge.Tests (Test): 7 .cs files, 1372 LoC (887 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Tests/KurrentDB.Surge.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e164478db004e2492c302502da224015adac2888bc8b582971a8012f68faeb3c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Surge.Testing (Test): 20 .cs files, 1492 LoC (1006 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing/KurrentDB.Surge.Testing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb018783c7f0145382a2426eade194f0cfdd981233dcf26d2a66c71d2b126d11"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Surge.Testing.Messages (Production): 0 .cs files, 0 LoC (0 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Surge.Testing.Messages/KurrentDB.Surge.Testing.Messages.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f940cd2418a3cb5451b9c3fe63563dcc78f7c9079cae8a0126b7e30067d787f"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.SchemaRegistry (Production): 1 .cs files, 36 LoC (27 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SchemaRegistry/KurrentDB.Plugins.SchemaRegistry/KurrentDB.Plugins.SchemaRegistry.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf023272f401669997d36c46b28447617ff693ed3b55b9884d9ddedd9c60a299"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.Tests (Test): 10 .cs files, 843 LoC (598 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Tests/KurrentDB.Plugins.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac10b9e438d9e8d995129ba0ebf5812281ab9aae6910b2daee1adcff70797d11"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins (Production): 42 .cs files, 2084 LoC (1197 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins/KurrentDB.Plugins.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"63be3f9f785c5d99e460965a1b2f4a2ce9e9c1b3d74d2d76f44096deb78bbe14"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Api.V2 (Production): 50 .cs files, 3225 LoC (1798 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2/KurrentDB.Api.V2.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e55910c5c0a9d33f22adda45df377e686c17790713d7b9e1a2255d8ee73bd15a"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.Api.V2 (Production): 1 .cs files, 71 LoC (55 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Api.V2/KurrentDB.Plugins.Api.V2.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fdbc3e5ff15ab588c079dbeae7affd0d0791d964940b6ce67cd8016beeb872d"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Testing (Production): 23 .cs files, 2797 LoC (2005 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing/KurrentDB.Testing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9569d59b386dac8bdeb33f60c1f20c712055ba9be9fd7e52bbf4f2734b404e03"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Testing.ClusterVNodeApp (Production): 13 .cs files, 939 LoC (654 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Testing.ClusterVNodeApp/KurrentDB.Testing.ClusterVNodeApp.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"22c65ceea88f6034410959224b650e66fccd6ebb38af763e0d4ac9d4e1d259c9"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Api.V2.Tests (Test): 39 .cs files, 5310 LoC (4084 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Api.V2.Tests/KurrentDB.Api.V2.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"72feb8ad5c65b71fbed47ccfbb4c7285b591d092dad307e1e1e8e2aa3075f006"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SecondaryIndexing (Production): 69 .cs files, 6077 LoC (4429 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing/KurrentDB.SecondaryIndexing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c48ac109fcdc9be7186f80888350e20d41d657430ca8f6f329727f972429ab2"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SecondaryIndexing.LoadTesting (Production): 18 .cs files, 629 LoC (447 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing.LoadTesting/KurrentDB.SecondaryIndexing.LoadTesting.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e438cac884f6bc19c55bc831cf9ebe8c3352f8752b731f9a2fcf818a0ecd10dc"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Logging (Production): 9 .cs files, 542 LoC (401 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Logging/KurrentDB.Logging.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"985d45aac3be77caa4e9485ca17a5937dca78d1948309854e328b0821afdab35"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.DuckDB (Production): 2 .cs files, 43 LoC (27 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.DuckDB/KurrentDB.DuckDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e348a65a1d46f9108a5386636531751b6f86bd355bbafa3d81b16c2c8cc7d4d"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.SecondaryIndexing.Tests (Test): 24 .cs files, 2216 LoC (1680 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.SecondaryIndexing.Tests/KurrentDB.SecondaryIndexing.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2e44989553ed2e976c320ce357730c5bdf880ab2b411b10375342c2d1154fd6"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core.Testing.XUnit (Test): 3 .cs files, 82 LoC (54 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing.XUnit/KurrentDB.Core.Testing.XUnit.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c35cca068bbd364bad49fc05e05e3399b9067c0fc1fe28a33b7a40218cbd3163"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core.Testing.NUnit (Test): 15 .cs files, 1686 LoC (1361 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing.NUnit/KurrentDB.Core.Testing.NUnit.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e90efd9be56b7376afdc1d37f86916a73c8bb0280460b938f88f324d32a3865a"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core.Testing (Production): 45 .cs files, 3069 LoC (2373 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.Testing/KurrentDB.Core.Testing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8457b38bfc3191a6f2f49b3c5b4558e7248193ea4c4e4c4e276a74e06708266"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Ammeter (Production): 5 .cs files, 308 LoC (234 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Ammeter/KurrentDB.Ammeter.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d83a092774c1ccfd604dedf6f72f9fd8e1f89bff336a4add922c67acaae7682e"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Core.TUnit.Tests (Test): 3 .cs files, 143 LoC (107 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core.TUnit.Tests/KurrentDB.Core.TUnit.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cd37ee8feb4a8ba60190954330e1c731f3b97e668ecf990e501413d6b8350fc"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.Shared (Production): 54 .cs files, 4597 LoC (3539 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared/KurrentDB.Projections.Shared.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"956639ff44bd3689450739d3fc70f0a1b6f02f88de6b66585c6605ac79fac9ec"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.Management (Production): 38 .cs files, 5798 LoC (4806 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management/KurrentDB.Projections.Management.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"02754215aab4c9af3366dbb2dabeedd3f1bdaa9429b843e3ae35381446f45900"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.JavaScript (Production): 4 .cs files, 1383 LoC (1169 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.JavaScript/KurrentDB.Projections.JavaScript.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"569f75028a56f86a178b50e0972faaf105c0fa145617f268cca6bddcf08dcd7e"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.V2 (Production): 13 .cs files, 1372 LoC (1011 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2/KurrentDB.Projections.V2.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"34b9017d72c6dbf7286e241c9b75bb70dc732824f147222c58ab4076bd2f39b6"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.V2.Tests (Test): 15 .cs files, 3835 LoC (2803 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V2.Tests/KurrentDB.Projections.V2.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"456d97f5c0645c0cdffa3d2037704b470e0ec146f8b763a4353aab24218dfa13"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.V1.XUnit.Tests (Test): 3 .cs files, 395 LoC (330 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.V1.XUnit.Tests/KurrentDB.Projections.V1.XUnit.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fc88c3b94b998e9e0396cd93fa4b50876d7c35ad48e185ef949ec30cb26cd20"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.Shared.Tests (Test): 3 .cs files, 381 LoC (309 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Shared.Tests/KurrentDB.Projections.Shared.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a96760f4987ebff58e2281ef39632e8d3717aac0e73b28e71a53f2b4904662c"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Projections.Management.Tests (Test): 167 .cs files, 15649 LoC (12930 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Projections.Management.Tests/KurrentDB.Projections.Management.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fb4e237370f43a27a6f17133d343865f1565373bc9d20deff6551959387f36e"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.Kontext (Production): 2 .cs files, 192 LoC (155 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Kontext/KurrentDB.Plugins.Kontext.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ad03eefef169186987ae9f37553329b01f5398fe6d445cffd885e2bed3241f2"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Plugins.Kontext.Tests (Test): 8 .cs files, 1384 LoC (1070 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Plugins.Kontext.Tests/KurrentDB.Plugins.Kontext.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef69d8085ba49ecb189a893426189cfa987148da62db7bc4b4e40d318d3d19f8"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Kontext (Production): 96 .cs files, 6996 LoC (5302 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext/KurrentDB.Kontext.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b328cc598fa1201f28b254f327400da594857c95ccfbe00a7524f657e104e90"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Kontext.Models (Production): 0 .cs files, 0 LoC (0 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Models/KurrentDB.Kontext.Models.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"19baf60548b872bb87ffae1d9a8165ad5fafd98b22c1cb4ea758b8efad7402d2"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Kontext.Tests (Test): 59 .cs files, 6012 LoC (4594 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Kontext.Tests/KurrentDB.Kontext.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0059abb1db1f52c627e46efdf6ed79d132b8453035538a4f6e0ca3935952ad0d"}},{"ruleId":"D18","level":"note","message":{"text":"KurrentDB.Scripting (Production): 3 .cs files, 157 LoC (110 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Scripting/KurrentDB.Scripting.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b48d078d43d8f0b5f000df66b45d49393edc42bed356864a748abf8ba4e4bed6"}},{"ruleId":"D23","level":"note","message":{"text":"Bounded contexts not declared: large codebase (82,743 production LoC) with no declared bounded contexts \u2014 cross-boundary type coupling is unassessed Declare architecture.contexts (\u22652) in config to assess cross-boundary type coupling."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1c7e276c9c682731f01819ed5378b90ca320cde1b583c90920172911598362b3"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Core: 0 LoC, 954 public types across 93 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5e6da59fa5692b073a8be47c10b68307f259d047cf48e0115e4d3933a3ea357e"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Projections.V1: 10677 LoC, 110 public types across 19 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2f0d4d728f8822f08ee50b9af177252dd104abfa3eb5ace9349f3a81cd0cbff"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Connectors: 4788 LoC, 125 public types across 26 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4be7f9c89eaed76e51a5c5a4011df223ca1258c783c3fa56b8da0655e298b417"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Core.Tests: 0 LoC, 1124 public types across 118 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ce8e72887b8d34e84ad3dc5ed67f09e69e89912b53094faf964cf70b3c71ffbe"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Core.XUnit.Tests: 0 LoC, 181 public types across 41 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7820819bdb5b26f64bcc2583ee0a4769b6ffbd916b8d19480f1bcdff79395f6b"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Projections.Management.Tests: 0 LoC, 212 public types across 45 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bda6e35bcf671f7d845e7aa3d24c542eb654d81537b8ff0b22dd3b6423d9a2f2"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Projections.V1.Tests: 0 LoC, 284 public types across 39 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1f557d0d601f88b8e9950698653c1358b1b5ece0f6147113dda1a1c4c11dcf9a"}},{"ruleId":"D26","level":"note","message":{"text":"Large project: KurrentDB.Kontext: 5802 LoC, 133 public types across 15 namespaces \u2014 review for cohesion."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"556ed9f7db3b5942fb51a60e838dc4b94f6108ba49e49abdafdc148e549ca56b"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: generic-api-key: matched rule \u0027generic-api-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventStore.Core/Certificates/CertificateUtils.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d84d8e2db2a55f63cd1073149e8f20daedd944ca9274ef4db3e56d1399390b6"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: generic-api-key: matched rule \u0027generic-api-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/KurrentDB.Core/Certificates/CertificateUtils.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"588a003631bcd7d071143e79ec0d023c633fea040050d9d70463b9d7b8421dd1"}},{"ruleId":"D28","level":"note","message":{"text":"Rotate the exposed credentials \u2014 git history can\u0027t be un-committed: Some of these secrets are in git HISTORY: deleting the file does not remove them (the commit persists on every clone, fork and backup). The remediation is to ROTATE each historically-exposed credential and treat it as compromised \u2014 not to delete the file. Rewriting history is disruptive and unreliable across existing forks. (Working-tree-only secrets \u2014 no commit \u2014 can instead be removed from the file and moved to a secret store.)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: SQLitePCLRaw.lib.e_sqlite3 2.1.11: SQLitePCLRaw.lib.e_sqlite3 2.1.11 (transitive) has a High advisory; affects 54 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d246d75b65523bf2d2a40511b99aa4a99c398d84dce0bc89395442294f995af5"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0029: \u0027apt-get\u0027 missing \u0027--no-install-recommends\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c9bd328f1425e4185802e2cb388fc5dec17b2da92bc5227fa43622d89e747d7"}},{"ruleId":"D32","level":"note","message":{"text":"Not applicable: No PII/GDPR-handling patterns detected (p/gdpr ruleset) \u2014 no data-compliance surface to assess."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"df51e593e9b0b9805626d04fe36a3d12c504b5d7d5da30dc59b5b0f134b5753b"}},{"ruleId":"D34","level":"note","message":{"text":"early-stage repository \u2014 too little history to judge knowledge freshness: early-stage repository \u2014 too little history to judge knowledge freshness (0 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"58b42e8ad1f5e125e8a2d365554e56d01e64a556b28e0c9985ff169722b7c54a"}},{"ruleId":"D36","level":"note","message":{"text":"No build provenance: No SLSA provenance generation or build attestation found in CI (e.g. slsa-github-generator, actions/attest-build-provenance)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"No artifact signing: No artifact signing found in CI (e.g. cosign / sigstore / gitsign)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0e17f71490e4d120a48b2b2881ab866c93b272bef2febb673a3e8e42b2c288ab"}},{"ruleId":"D36","level":"note","message":{"text":"No SBOM: No SBOM generation or committed SBOM found (e.g. syft / anchore/sbom-action / *.spdx.json / *.cdx.json)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}},{"ruleId":"D36","level":"warning","message":{"text":"Unpinned build actions: CI references GitHub Actions by a floating ref (@main / @tag) rather than a pinned commit SHA, weakening build integrity."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90f83b4fa27db32740afe9540c905f3c0499caed87f61049a8a903ecc95b41c3"}},{"ruleId":"D39","level":"note","message":{"text":"IL metrics not applicable: The target did not build, so no IL was available to measure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"685c0368c09e83fe3d335173fb3bfd5261410d1339341639371b77f3cb1f9c42"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1357","name":"Reliance on Insufficiently Trustworthy Component"},{"id":"CWE-1395","name":"Dependency on Vulnerable Third-Party Component"},{"id":"CWE-798","name":"Use of Hard-coded Credentials"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}