{"$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":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D24","name":"Comment Value","shortDescription":{"text":"Comment Value"},"helpUri":"https://codehealth.canine.dev/dimensions/D24"},{"id":"D25","name":"ADR Conformance","shortDescription":{"text":"ADR Conformance"},"helpUri":"https://codehealth.canine.dev/dimensions/D25"},{"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":"ConcurrentPartitionedProcessor.WaitForNextAction (cyclomatic 18): ConcurrentPartitionedProcessor.WaitForNextAction has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/ConcurrentPartitionedProcessor.cs"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"e66da994a55a2c08231461e4fb6996e2819044ef71ef27824c0212dd1e667df4"}},{"ruleId":"D1","level":"warning","message":{"text":"exports (cyclomatic 18): exports has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":".vscode/resolveProject.js"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"68c6801c5f690452ae9a81540dbbcb9cbc1113de3bd91708a2ef7c60009cf64d"}},{"ruleId":"D2","level":"warning","message":{"text":"ReverseCallDispatcher.HandleClientMessages (cognitive 31): ReverseCallDispatcher.HandleClientMessages has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/ReverseCallDispatcher.cs"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd3e6f919ab10f8faeb00fa6d1ab8b4a8694e1cdb5c200944c6900e450464899"}},{"ruleId":"D2","level":"warning","message":{"text":"AbstractScopedStreamProcessor.BeginProcessing (cognitive 29): AbstractScopedStreamProcessor.BeginProcessing has cognitive complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/Streams/AbstractScopedStreamProcessor.cs"},"region":{"startLine":321}}}],"partialFingerprints":{"codehealthFindingId/v1":"b23c58847b75500dd4bd954f55853cbc24c99bf0492e1c3fb7942a6a2e414776"}},{"ruleId":"D2","level":"warning","message":{"text":"V6EventSourceMigrator.ConvertUuidFieldsToStringAsync (cognitive 25): V6EventSourceMigrator.ConvertUuidFieldsToStringAsync has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.MongoDB/Migrations/V6EventSourceMigrator.cs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd57091576b4144bb5efcf77b63e9deff1ff0a66500607ac55ccfa345b22a4c5"}},{"ruleId":"D2","level":"warning","message":{"text":"exports (cognitive 24): exports has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":".vscode/resolveProject.js"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f546066c7b4f1c8b933c1a2392eaf77abd36c8603d775e540b1a26e93ab25df"}},{"ruleId":"D2","level":"warning","message":{"text":"FailingPartitions.ProcessPartition (cognitive 21): FailingPartitions.ProcessPartition has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/Streams/Partitioned/FailingPartitions.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"21197f14641e656fad108b28de088c4ab3a029a83460d57dc0ca472a0b82db5c"}},{"ruleId":"D2","level":"warning","message":{"text":"DolittleConfiguration.RemoveEmptyChildren (cognitive 19): DolittleConfiguration.RemoveEmptyChildren has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration.Management/DolittleConfiguration.cs"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e1032fc1ba3a2a504fbeba41b2b0fb0812b3cb94f3de48387f46bbdd33104e5"}},{"ruleId":"D2","level":"warning","message":{"text":"ConcurrentPartitionedProcessor.WaitForNextAction (cognitive 18): ConcurrentPartitionedProcessor.WaitForNextAction has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/ConcurrentPartitionedProcessor.cs"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c7432b219f9fdf3f65bdbee618a75b72f7b9c3a7e3bab4858a206c07bfece2a"}},{"ruleId":"D2","level":"warning","message":{"text":"ConfigurationParser.WriteSectionToStream (cognitive 17): ConfigurationParser.WriteSectionToStream has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration/Parsing/ConfigurationParser.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"641df3ae16a472f1f1147d4c7bca7f4cf600f0514a0bbeb4220c82027b7f718f"}},{"ruleId":"D2","level":"warning","message":{"text":"CallbackScheduler.CallbackLoop (cognitive 16): CallbackScheduler.CallbackLoop has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Callbacks/CallbackScheduler.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d97457993a2a6fd63b435fadcc2b1338fd57956a3bee36312d07bff5993d35e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): Source/Events/Processing/EventHandlers/Actors/ConcurrentPartitionedProcessor.cs:387-400 | Source/Events/Processing/EventHandlers/Actors/PartitionedProcessor.cs:223-238"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/ConcurrentPartitionedProcessor.cs"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"49541d5e3997472dd0d9504f1f2c729f1e42b41fcdb9772f1eb4ea0498f6752c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): Source/Events/Store/Actors/StreamProcessorStateManager.cs:269-284 | Source/Events/Store/Actors/StreamSubscriptionStateManager.cs:229-244"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Store/Actors/StreamProcessorStateManager.cs"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e1756ab8581a43c54062fe1be157bdfb3e1a369a965ed2691952b8fe5eaddef"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Source/CLI/Runtime/Aggregates/ManagementClient.cs:120-128 | Source/Events/Store/CommittedAggregateEventsExtensions.cs:46-54"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/CLI/Runtime/Aggregates/ManagementClient.cs"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"8be4269621689ceaa215dafc3a2faff45f63e1ed98a3ad16002c9d556c6d417e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Source/Events/Processing/Filters/EventHorizon/PublicFilterProcessor.cs:76-83 | Source/Events/Processing/Filters/Partitioned/FilterProcessor.cs:70-76"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/Filters/EventHorizon/PublicFilterProcessor.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c139e1b71d492e0d595d12d749064a15c788136252a75ea7ac383e04b501270"}},{"ruleId":"D5","level":"warning","message":{"text":"Unstable project Shared: Shared has instability 0.82 with 6 dependents."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"97704bbd8ceac92cdfca410d80f86dfd6c685a1ffaf02953e947a67c47fbff56"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: MongoDB: MongoDB: 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":"79f049da073620f9977c90bca7f8a2e5117f211ba0353d3b4784a0d00df519f3"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Artifacts: Artifacts: abstractness 0.00, instability 0.04, distance 0.96 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5985d06b308f13edebcc85d3642df26f508ef5491179cb653fa56842116d1e67"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Domain: Domain: abstractness 0.06, instability 0.03, distance 0.91 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"706800fd37c7da4c1814bf4eaa84705d3da40e9ff88d663eede6e55d04fe8709"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Diagnostics: Diagnostics: abstractness 0.00, instability 0.14, distance 0.86 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5ca2aa3724f25d7277f15854dc22202b3a09519465ac488a986373f537535790"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Metrics: Metrics: abstractness 0.00, instability 0.21, distance 0.79 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a203b2153e380a5bdab435d4faf2bd7b3006b4bb9479f42ce7eff824d4b779f2"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Protobuf: Protobuf: abstractness 0.00, instability 0.21, distance 0.79 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9ba738cd96d55238e77043db8c12737b15dcb96c5dcd0a200465fbc99d439644"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: DependencyInversion: DependencyInversion: abstractness 0.16, instability 0.06, distance 0.77 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"13bc4fb90dec67cfa1f71891d771eb686a07979da0db42176bd73923d6315008"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Rudimentary: Rudimentary: abstractness 0.24, instability 0.00, distance 0.76 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e33ff2f7544ac222a05838f4a8c5b129249e7a346cdad19664b25ddbacfc9eb6"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Configuration: Configuration: abstractness 0.15, instability 0.10, distance 0.75 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0fbc455cbe8a7fd2c79977a32b6e7ff3847b4aabced14ee1e99e5ad50710d2e9"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Hosting: Hosting: abstractness 0.13, instability 0.14, distance 0.73 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c40eb28cee0b16e16baed042b4b6442df9bc2abd9b786edd41619ed2516e3b34"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 19): MetricsCollector\u0027s methods form 19 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":"Source/Services.Clients/MetricsCollector.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"862a0d6ad33374ee2324bff6a0b2b76cfbdc9340972f58769172d93268e8a662"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EventHandlersProtocol (LCOM4 13): EventHandlersProtocol\u0027s methods form 13 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":"Source/Events/Processing/EventHandlers/EventHandlersProtocol.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1bb486f0d1ef78dcd4412447daeece824f516a3aae1c3111ecdc1e08769c696"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EventsFromEventHorizonFetcher (LCOM4 12): EventsFromEventHorizonFetcher\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":"Source/EventHorizon/Consumer/Processing/EventsFromEventHorizonFetcher.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"43ab19991bcddd632b9b484f8922aef5e0e841c50a8b3499afaaa211fca809af"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 12): MetricsCollector\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":"Source/Services/ReverseCalls/MetricsCollector.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa79a1ca1a546f7924656cffdd08a324b85df9311e2bd518a32e1ca44473d519"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 10): MetricsCollector\u0027s methods form 10 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":"Source/Events/Store/Actors/MetricsCollector.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1f6c7c81a025c97fe5f8fcbab94a6b5666bb8275b09dd36b15fd5df7007abee"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 9): MetricsCollector\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":"Source/EventHorizon/Consumer/Connections/MetricsCollector.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"658884267c7d958e8f734f28a64e795179388fd2a494352e660b95f8be24137f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 8): MetricsCollector\u0027s methods form 8 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":"Source/EventHorizon/Consumer/MetricsCollector.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"07c9460e25d763f2094de3c085b9bd23ae2dafd678dfaac87eaaeeeed575f9c4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 8): MetricsCollector\u0027s methods form 8 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":"Source/Services/Callbacks/MetricsCollector.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"85b14a9a8520d852d66763e1d7ef9b07af93e1b129197e70d2b7f193710519a3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ScopedHostBuilder (LCOM4 6): ScopedHostBuilder\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":"Source/Hosting/Scopes/ScopedHostBuilder.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"5de171ebcc6eab5c9d8bb58b2cdc2f6998f7bd7b05793cc658867c1bbe747d47"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 5): MetricsCollector\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":"Source/EventHorizon/Consumer/Processing/MetricsCollector.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"845c245d61c665f58572f54b2c382e27b6fbf6beb3e3f1f881dc1027dab98e00"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ActorEventHandler (LCOM4 5): ActorEventHandler\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":"Source/Events/Processing/EventHandlers/Actors/ActorEventHandler.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"7898daf7a1053eddf300cad0ec1410072cd58cfa205f30dd22fd2b7e66b87be5"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EventStore (LCOM4 5): EventStore\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":"Source/Events/Store/Actors/EventStore.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"98524f14237b9eee9000856c2d1c3cfa4745af49738e19aa987087c9f4edb606"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetricsCollector (LCOM4 4): MetricsCollector\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":"Source/EventHorizon/Producer/MetricsCollector.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd66159386b4f8dc81dfbc24d2911380f82620f92349e7bda3f87c8cd5d7ba56"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: StreamProcessorStateRepository (LCOM4 4): StreamProcessorStateRepository\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":"Source/Events.Store.MongoDB/Processing/Streams/StreamProcessorStateRepository.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"15fccf6756fb9eebdfb41077e55a52077f0a9d76a9bec1b70fdf83faf0389fe2"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EventsToStreamsWriter (LCOM4 4): EventsToStreamsWriter\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":"Source/Events.Store.MongoDB/Streams/EventsToStreamsWriter.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c24c3ef19ee12a43fc2d45b260352a5c8ab287fdbc079b56e79fd7abfa16e5b"}},{"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 \u2014 broken report: The coverage report is internally inconsistent or empty/placeholder (e.g. near-zero line coverage alongside positive branch coverage), so line coverage was not really measured \u2014 it is EXCLUDED from the score rather than counted as a near-zero defect. Re-run with a working collector, or commit the Cobertura/OpenCover/lcov report your CI produces."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"40fe5ace231d0d3ec059edeee721c9d091f2fdb734cf7732c69b40b7f56ff8bf"}},{"ruleId":"D9","level":"note","message":{"text":"Unit tests: 107 unit test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3067d72f6515925eded797ae6deb86f74d157d3bd0b8e2d3a80edaa12ea95d24"}},{"ruleId":"D9","level":"note","message":{"text":"Integration tests: 9 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":"Mock framework: Moq: Shared references Moq."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"73fecfed0c3032ded0d3446adbea832a077888cea2ae1e5f94659577d9c5590f"}},{"ruleId":"D11","level":"note","message":{"text":"Tier not included (time budget): other: not included \u2014 too large to re-run within its budget"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"331d78c9ee7bdc1278abb0cfbbeb379cb9b3a6cf93a04d53b4200e0ae34b69bb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Autofac: Autofac 8.1.1 \u2192 9.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"af5215a586067145906c3e90549de9f6bb399e9a286a9e51b965a09aab3865a5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Autofac.Extensions.DependencyInjection: Autofac.Extensions.DependencyInjection 10.0.0 \u2192 11.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c6a9905a241052e1825244dfe499e3f6a76fe5da1d016cbc91e3f8c07d307e97"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Hosting.Abstractions: Microsoft.Extensions.Hosting.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"efd6572e7f9750683e8ff20906e2a67a1e1910413ebf9e3427e1d76a0ec0341f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging.Abstractions: Microsoft.Extensions.Logging.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5d1d778014b65cbfa7ca8eb15a6eacf49d85cea868e48c56a7866e7acc38b158"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Options: Microsoft.Extensions.Options 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"80b9702b33115215eabf734cd110814044279b68407ce24689cca2a234479bbd"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver: MongoDB.Driver 2.30.0 \u2192 3.9.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"20e9df274bfa57689803cf29e356ebfddeee233171bd4b208ba6e02bd520fe19"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver.Core.Extensions.DiagnosticSources: MongoDB.Driver.Core.Extensions.DiagnosticSources 1.5.0 \u2192 3.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f49ed2ee581def9d1805a2099ff536e61b55cc23af5ee941c0de2afd8c61347e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.31.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.31.1 \u2192 3.35.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fc644852b87a0c814496411232060f0c812d49fec7fa62c63e0d21e4bab32e0f"}},{"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: Microsoft.Extensions.Hosting: Microsoft.Extensions.Hosting 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7ab1a2a10fddec7f47b45ca7f28a911f7193ca526c2234e8b064a9a442c35fac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging.Console: Microsoft.Extensions.Logging.Console 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ead408b08f6535bc98becf3e3b1271c42b2c55f835b470c7c4ea23dd2139152f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Actor: Proto.Actor 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"69af6f539b664cc98b7d138afb97d241570866db7e32df40815166e1d621673d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Cluster: Proto.Cluster 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"64422077caa309827cce6b2024e43a637e86b9b8fd4b7232a40f9e903cf79262"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Cluster.CodeGen: Proto.Cluster.CodeGen 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bbc66ed082646e9879ddbde239c31da06d5e91765aff640aa9ede2d4ac912636"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Remote: Proto.Remote 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"559bbd3f74b11460bc6758bb482049485156ab282800dc6af67aa02ca88f8a60"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Swashbuckle.AspNetCore: Swashbuckle.AspNetCore 7.3.1 \u2192 10.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7072588f3b2ee7033c63d6a991ecaec0341a91e5761c9129d0e837df018c7856"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.31.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: Google.Protobuf: Google.Protobuf 3.31.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.HealthChecks: Grpc.AspNetCore.HealthChecks 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e5be81a7a355cc71e4775596e7700d2c4a534d686d5038dd4c6f558cfdb9757"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Grpc.AspNetCore.Server.Reflection: Grpc.AspNetCore.Server.Reflection 2.71.0 \u2192 2.80.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c6f46f9e8dede76d864cbb85e62ccc8a1001a1b012c5833ebdbfc1cd72769a65"}},{"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: Microsoft.Extensions.Hosting: Microsoft.Extensions.Hosting 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7ab1a2a10fddec7f47b45ca7f28a911f7193ca526c2234e8b064a9a442c35fac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Actor: Proto.Actor 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"69af6f539b664cc98b7d138afb97d241570866db7e32df40815166e1d621673d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: ConsoleTables: ConsoleTables 2.6.2 \u2192 2.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b962002c9172442c8837e1acd6d049cd6e5d657b99c41599eca3aec0a4dc8b45"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: McMaster.Extensions.CommandLineUtils: McMaster.Extensions.CommandLineUtils 4.1.1 \u2192 5.1.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b151bd2d3abe6a198b798f6078e2a0d8ba2660fc90031e7bea21e5a75ae868e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.DependencyInjection: Microsoft.Extensions.DependencyInjection 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ef055357f0d3faf9f0ba06a196104811089401bd5b0d3e787f800b06c65ae3e4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.FileProviders.Abstractions: Microsoft.Extensions.FileProviders.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6c8346da5d65852f4688cd5139b7b88ddb5c554b82871ddee7f0ed7bd84be913"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.FileProviders.Physical: Microsoft.Extensions.FileProviders.Physical 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5bd7be5f2a07c982cb775491dcf0dbba2783aef8f5f1f81f4c3453f843f591ea"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging.Console: Microsoft.Extensions.Logging.Console 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ead408b08f6535bc98becf3e3b1271c42b2c55f835b470c7c4ea23dd2139152f"}},{"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: Microsoft.Extensions.Hosting: Microsoft.Extensions.Hosting 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7ab1a2a10fddec7f47b45ca7f28a911f7193ca526c2234e8b064a9a442c35fac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Api: OpenTelemetry.Api 1.12.0 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6def26aaf5164023a555755344f48a09b128953a3a47a5d82486a66e7bdb6e45"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Polly: Polly 8.6.2 \u2192 8.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d8e52652bf969ee5b0c88fa2f9936ec03434008405c42e83b1ba8fd6eaec5292"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Cluster.CodeGen: Proto.Cluster.CodeGen 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bbc66ed082646e9879ddbde239c31da06d5e91765aff640aa9ede2d4ac912636"}},{"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: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver: MongoDB.Driver 2.30.0 \u2192 3.9.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"20e9df274bfa57689803cf29e356ebfddeee233171bd4b208ba6e02bd520fe19"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver: MongoDB.Driver 2.30.0 \u2192 3.9.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"20e9df274bfa57689803cf29e356ebfddeee233171bd4b208ba6e02bd520fe19"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver.Core.Extensions.DiagnosticSources: MongoDB.Driver.Core.Extensions.DiagnosticSources 1.5.0 \u2192 3.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f49ed2ee581def9d1805a2099ff536e61b55cc23af5ee941c0de2afd8c61347e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"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: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Autofac: Autofac 8.1.1 \u2192 9.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"af5215a586067145906c3e90549de9f6bb399e9a286a9e51b965a09aab3865a5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration: Microsoft.Extensions.Configuration 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfed1a37193e5ac5f3e8801aaabf2ac7777d85c43d5c1d77559be94c1b696e23"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.Json: Microsoft.Extensions.Configuration.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4230d05b7c7d3db0149424a3a7d927feeab5aa787aafff4f3cc6bedc2f96b8ef"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.DependencyInjection.Abstractions: Microsoft.Extensions.DependencyInjection.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"975f7090c672cd42740e422628e485e691d2c29a30f7397b39d26918aeb57e4a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.FileProviders.Abstractions: Microsoft.Extensions.FileProviders.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6c8346da5d65852f4688cd5139b7b88ddb5c554b82871ddee7f0ed7bd84be913"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.FileProviders.Physical: Microsoft.Extensions.FileProviders.Physical 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5bd7be5f2a07c982cb775491dcf0dbba2783aef8f5f1f81f4c3453f843f591ea"}},{"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: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Hosting.Abstractions: Microsoft.Extensions.Hosting.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"efd6572e7f9750683e8ff20906e2a67a1e1910413ebf9e3427e1d76a0ec0341f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"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: Proto.Actor: Proto.Actor 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"69af6f539b664cc98b7d138afb97d241570866db7e32df40815166e1d621673d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Cluster: Proto.Cluster 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"64422077caa309827cce6b2024e43a637e86b9b8fd4b7232a40f9e903cf79262"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Cluster.CodeGen: Proto.Cluster.CodeGen 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bbc66ed082646e9879ddbde239c31da06d5e91765aff640aa9ede2d4ac912636"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.OpenTelemetry: Proto.OpenTelemetry 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"630a1d7984c7e1008b9007da15854fb471bae3a5a18d7e09ac432070b5f0004c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.Remote: Proto.Remote 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"559bbd3f74b11460bc6758bb482049485156ab282800dc6af67aa02ca88f8a60"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver: MongoDB.Driver 2.30.0 \u2192 3.9.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"20e9df274bfa57689803cf29e356ebfddeee233171bd4b208ba6e02bd520fe19"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Moq: Moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"42946f5ed16f6a0c4101b8b1c1ed79fe3ab39ea782fa2d0bf1e00c260f2aed36"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: BenchmarkDotNet: BenchmarkDotNet 0.14.0 \u2192 0.15.8 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b533f74e585b27f6190e5a78c6a71e91925e7c42d1f8bf7f99698b4b7ae2a04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging.Configuration: Microsoft.Extensions.Logging.Configuration 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"030ed32a75a5a1eb277acefde567d369cc8eb448b3089dcd417035cdcce0094e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver: MongoDB.Driver 2.30.0 \u2192 3.9.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"20e9df274bfa57689803cf29e356ebfddeee233171bd4b208ba6e02bd520fe19"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MongoDB.Driver.Core.Extensions.DiagnosticSources: MongoDB.Driver.Core.Extensions.DiagnosticSources 1.5.0 \u2192 3.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f49ed2ee581def9d1805a2099ff536e61b55cc23af5ee941c0de2afd8c61347e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.12.0 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.12.0 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.12.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.GrpcNetClient: OpenTelemetry.Instrumentation.GrpcNetClient 1.10.0-beta.1 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"51e65dea21136da25bb62e3cbe22a59dbef64465ed4d01b4858d3dd19bf3ba97"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.12.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Proto.OpenTelemetry: Proto.OpenTelemetry 1.7.1-alpha.0.1 \u2192 1.8.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"630a1d7984c7e1008b9007da15854fb471bae3a5a18d7e09ac432070b5f0004c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration: Microsoft.Extensions.Configuration 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfed1a37193e5ac5f3e8801aaabf2ac7777d85c43d5c1d77559be94c1b696e23"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.Json: Microsoft.Extensions.Configuration.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4230d05b7c7d3db0149424a3a7d927feeab5aa787aafff4f3cc6bedc2f96b8ef"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.DependencyInjection.Abstractions: Microsoft.Extensions.DependencyInjection.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"975f7090c672cd42740e422628e485e691d2c29a30f7397b39d26918aeb57e4a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.FileProviders.Abstractions: Microsoft.Extensions.FileProviders.Abstractions 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6c8346da5d65852f4688cd5139b7b88ddb5c554b82871ddee7f0ed7bd84be913"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.FileProviders.Physical: Microsoft.Extensions.FileProviders.Physical 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5bd7be5f2a07c982cb775491dcf0dbba2783aef8f5f1f81f4c3453f843f591ea"}},{"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: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Google.Protobuf: Google.Protobuf 3.31.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: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Machine.Specifications: Machine.Specifications 1.1.2 \u2192 1.1.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adecbc48c368c8a70607ede696e987574dcd5ee42d2725c3c84c66d5b808eb7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: moq: moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1a458d626fd98ebcb62d71418aede78265c04e1a3a7c9c1f4ff94fad8407590c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Moq: Moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"42946f5ed16f6a0c4101b8b1c1ed79fe3ab39ea782fa2d0bf1e00c260f2aed36"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 3.0.2 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.4 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: FluentAssertions: FluentAssertions 7.2.0 \u2192 8.10.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0085902f0e492e23c9753c9fc12aacb765aea06e92e21b8cad4f199a4e5c43ce"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 17.14.0 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Moq: Moq 4.18.4 \u2192 4.20.72 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"42946f5ed16f6a0c4101b8b1c1ed79fe3ab39ea782fa2d0bf1e00c260f2aed36"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: System.Text.Json: System.Text.Json 9.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"712b2f3d47dacebb2a42cdadf29d20dd8e156ac0ce4d0714c0a5112d864640e8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Testcontainers.MongoDb: Testcontainers.MongoDb 4.6.0 \u2192 4.12.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e20ea6a7940451989366b873c69107c9538cc2c1ead5d66a9a3df8764a771f2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 3.0.2 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: OpenTelemetry.Api: OpenTelemetry.Api 1.12.0 \u2014 Moderate severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"957e7394425c022fd913b071ba582e11b6cf3730adf2b692a39ff89ffff37caf"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.12.0 \u2014 Moderate severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b2ae471f3f46f8e0ebd7a2b459bd973c6817dbb6b5f84135c5c19d9a005499a4"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.9.3 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.9.3 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D14","level":"note","message":{"text":"Licenses scanned: 53 packages scanned; 3 distinct SPDX licenses."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1d29d66daec20840f6831f63c1b66b87c40390635ef3e9f728002964c77e88d4"}},{"ruleId":"D15","level":"note","message":{"text":"single-commit history \u2014 no usable git history window to measure hotspots: single-commit history \u2014 no usable git history window to measure hotspots: a single-commit clone exposes no history window, so the churn \u00D7 complexity hotspot signal is unavailable \u2014 not scored for this run."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7885f114964cb985dc7986790601330f82f10211c3d1d967cac8000ee75e3b52"}},{"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: Null 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":"Source/DependencyInversion/Tenancy/GeneratedTenantFactoryRegistrationSource.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"a667021ec9ef0d813518f5eed0652861b0aded549b065637054deca29aad9e94"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This should work, but I\u0027m not 100% sure \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":"Source/DependencyInversion/Tenancy/GeneratedTenantFactoryRegistrationSource.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"a667021ec9ef0d813518f5eed0652861b0aded549b065637054deca29aad9e94"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This can be improved by taking as many as possible instead of just the first \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":"Source/EventHorizon/Consumer/Processing/EventsFromEventHorizonFetcher.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b5744f9c6add3a2d4f9cbce46281b4a58e9a2a6e7cba417e66fbdbfea724a92"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This gets resolved for private filters 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":"Source/Events.Store.MongoDB/EventHorizon/EventsToPublicStreamsWriter.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"edcf6b4ac0b6a3eb6cc27b4478a7fed04dc7963f37a279a2d9547bc4bf406543"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: Notifying for events should be a concern handled by actors \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":"Source/Events.Store.MongoDB/Persistence/CommitWriter.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5819206372c1633a0aeeb33929fc7db3c5cdd85cabfdfed4867e68b920a81d9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Is bindings maybe a better word for these things? \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":"Source/Events.Store.MongoDB/Services.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"30e511832da8337d364f0165925c200af303a4aa8d97863db55a96962df225b4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: It would be cool if this made it so that the scoped server host didn\u0027t start \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":"Source/Metrics/Configuration/MetricsServerConfiguration.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"98d711417f94f832164c2ac6d205e9599bc8e116a7fa389cb5f3c0b7c4f5ee05"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: It would be nice if we could automatically force these interfaces to also to be singletons? \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":"Source/Metrics/DependencyInversion/Services.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"506bf16ceccebf95c6eae363b372c614775ba5b14ada791689f43170114ec57c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This attribute could have an argument to set prefixes for all metrics, so we can shorten some of the code in the other places in the runtime \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":"Source/Metrics/MetricsAttribute.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"c32931d4befc8b44e9b3b902f6cd120021441604161ee453474ca7a7f33eb148"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Rudimentary/TaskGroup.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bb8e4696eced155a37412e94271316f08b41ce1e1ec2f0e64a4c6b326bb8b26"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Fix JSON serializer so that Web APIs don\u0027t need copies of types \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":"Source/Server/Web/HostBuilderExtensions.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"a965f2909d9e334c9856f75b201c2ca629aab8a82966d3ad5942de1be6509dbf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: It would be cool if this made it so that the scoped server host didn\u0027t start \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":"Source/Server/Web/WebServerConfiguration.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"df381663153cfd1aeefb5a8bb85f0a855ba20881cc3fd6fe84fc65200aa3b482"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: This should create one channel per address and keep it alive. \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":"Source/Services.Clients/Channels.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"a26bd3b76bcedcda827759656c06b1c1525918bf127d56fd67611b2dda7c1e69"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services.Clients/ReverseCallClient.cs"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"82e6709ebb2b4c24311c480735afeb5b88038991df9d7cd8b1c0a88a7ae8ecff"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Actors/ReverseCallDispatcherActor.cs"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"104a27a43590f0f1ddd83c8fb3cf92766db191729149742c75f5210f347385e3"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Actors/ReverseCallDispatcherActor.cs"},"region":{"startLine":547}}}],"partialFingerprints":{"codehealthFindingId/v1":"104a27a43590f0f1ddd83c8fb3cf92766db191729149742c75f5210f347385e3"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Actors/ReverseCallDispatcherActor.cs"},"region":{"startLine":559}}}],"partialFingerprints":{"codehealthFindingId/v1":"104a27a43590f0f1ddd83c8fb3cf92766db191729149742c75f5210f347385e3"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Actors/ReverseCallDispatcherActor.cs"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"104a27a43590f0f1ddd83c8fb3cf92766db191729149742c75f5210f347385e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Perhaps we need to do something clever 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":"Source/Services/HealthChecks/HealthService.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"0123d54919c6eb7fe22662239d3ea7df5a5554f4b5742c0d566227a77c4aaa8d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: I don\u0027t think we care - but there is also a Watch that we can implement \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":"Source/Services/HealthChecks/HealthService.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"0123d54919c6eb7fe22662239d3ea7df5a5554f4b5742c0d566227a77c4aaa8d"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/ReverseCallDispatcher.cs"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"3851e95bd79e73cf5e799f8156cfd5d1c815adfa498c347feeff60a83b5de4be"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/ReverseCallDispatcher.cs"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"3851e95bd79e73cf5e799f8156cfd5d1c815adfa498c347feeff60a83b5de4be"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/ReverseCallDispatcher.cs"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"3851e95bd79e73cf5e799f8156cfd5d1c815adfa498c347feeff60a83b5de4be"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/ReverseCallDispatcher.cs"},"region":{"startLine":353}}}],"partialFingerprints":{"codehealthFindingId/v1":"3851e95bd79e73cf5e799f8156cfd5d1c815adfa498c347feeff60a83b5de4be"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/ReverseCalls/ReverseCallStreamWriter.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fc85c63579b7e8c70b5346446ef155f3e92b0b24cc72eb805b872a1073c5bfe"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/EventHorizon/Consumer/for_Subscription/given/all_dependencies.cs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4c149f96be15e89408bb417dd2197478c4a040300e5060e1dbcb47a9672d10e"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 9 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Processing/EventHandlers/for_EventHandler/when_disposing/and_it_fails_registering_filter_processor.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"806253477cd08b6e84a2c3a7e55a6f667ffec4b96559c87460e294c7d5c807d5"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 10 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Processing/EventHandlers/for_EventHandler/when_disposing/and_it_is_given_a_non_writeable_stream.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"baf0b4822c8aac025734f3588976668f557b29b098478276729843524fd5a59a"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 7 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Processing/Filters/for_FilterValidators/when_validating/and_definition_has_changed_but_filter_has_not_processed_any_events.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"19acd1aa0a5d464c4b3d312e1094c698b8f75ada54b01d6e0637556433e5ab03"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Services.Clients/for_ReverseCallClient/when_handling/and_connection_is_established/and_we_get_2_pings_and_a_request.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"7798f616f82fdd93b7f2e8545900f56a12ff0bf6185a1dd2476ecdd2d1702a49"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Services.Clients/for_ReverseCallClient/when_handling/and_connection_is_established/and_we_get_a_request.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"110abdfdb8ad294409488b7271ce403df91360dcb392e9334380994b3d384fe5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Services/ReverseCalls/for_PingedConnection/given/Scenario.cs"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c5b84bd29ba15256bb80564419f1b09fe638893e9f95fd1d18484391b3e375a"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/ActorPropsAdder.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3d014f006bfbed30e4ac00946f0a94df25cd30cfe8568a51c5c4f723cc54322"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Instead of this \u0022perform for all tenants\u0022 \u002B \u0022func\u003CTenantId, something\u003E\u0022 pattern, we should really make a thing to to this with types \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":"Source/Events/Aggregates/Management/GetTenantScopedAggregateRoot.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"b94c9b718c7315b0c20f2e772937951f9995c3c54eac5f2d40a6d49ab90ab2a8"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 9 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/EventHandlerClient.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd5cd09a582293a39bd13d2ebc12c517cb501bce6d15d539bfd53aebc170b58"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/EventHandlerClient.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd5cd09a582293a39bd13d2ebc12c517cb501bce6d15d539bfd53aebc170b58"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/EventHandlerClient.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd5cd09a582293a39bd13d2ebc12c517cb501bce6d15d539bfd53aebc170b58"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/EventHandlerClient.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd5cd09a582293a39bd13d2ebc12c517cb501bce6d15d539bfd53aebc170b58"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/Actors/EventHandlerClient.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd5cd09a582293a39bd13d2ebc12c517cb501bce6d15d539bfd53aebc170b58"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 17 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 14 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":292}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b31f4824a89c4219fce4195fdc16b8d8bb0b46d6a6a825d9dde3704a4c0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // // TODO: Is bindings maybe a better word for these things? \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":"Source/Events/Processing/EventHandlers/Services.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6fff918471138bda839a429b8d1338f49a838a0251e00843613cc961b0b0160"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //         // TODO: Maybe we want to make an interface for these? \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":"Source/Events/Processing/EventHandlers/Services.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6fff918471138bda839a429b8d1338f49a838a0251e00843613cc961b0b0160"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Is bindings maybe a better word for these things? \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":"Source/Events/Processing/Filters/Services.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5d42d6515ea94ad8bae1f41eaf2f2c4db1db912e715283866a4a646d5bebc9a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Just regular logger? Probably some factories we can get rid of 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":"Source/Events/Processing/Filters/TypeFilterWithEventSourcePartition.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f8e029038714922dcd3b489fc394140dcc6d2b3168e464a68d0aaa523f18963"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Shouldn\u0027t this policy rather be used in the actual fetcher? \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":"Source/Events/Processing/Streams/AbstractScopedStreamProcessor.cs"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"595982ec30bebbd894097892692f90e0e074ca90a5194fa7e388690d1780e216"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Does this make sense? Do we want more, or less? \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":"Source/Events/Processing/Streams/AbstractScopedStreamProcessor.cs"},"region":{"startLine":318}}}],"partialFingerprints":{"codehealthFindingId/v1":"595982ec30bebbd894097892692f90e0e074ca90a5194fa7e388690d1780e216"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Now we might be able to check for failures on try 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":"Source/Events/Processing/Streams/EventFetcherPolicies.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ca8e7796d3b712f07fd1971585870fee209d8de252d33450922af506f016332"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] .ctor"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/Streams/Partitioned/FailingPartitionState.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"82ac78601e82e4e94ba75362125c48b908e3b3988bf1d6cec99160d84a3baee0"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] .ctor"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Processing/Streams/Partitioned/StreamProcessorState.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"01505e29aa076fba37243e0aa68de59008f501b3300c6518a7db0d22ef13bf73"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Is bindings maybe a better word for these things? \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":"Source/Events/Processing/Streams/Services.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa561dc031644b9a489b0278d4292998a4d39f57373ea8c96e036b8299dedff2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Maybe we want to make an interface for these? \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":"Source/Events/Processing/Streams/Services.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa561dc031644b9a489b0278d4292998a4d39f57373ea8c96e036b8299dedff2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Logging \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":"Source/Events/Processing/Streams/StreamProcessors.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"a97b648a5b15d7c1801b16e15ea8f5e4f13a92d7a83580b3e53fa1d437eb6194"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Consider redaction via external 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":"Source/Events/Store/Actors/EventStore.cs"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"de661e2b7ae8ee32754ddf01f4b9cf6791a45be322f8c2b05eb3e17f2e8726dd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: Make more sophisticated logic for determining whether a commit for the same aggregate can be added to the 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":"Source/Events/Store/Persistence/CommitBuilder.cs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d06635f15adee12f80c698952c2f7daccc267362dc77ed07ede01cdc409f536"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // //TODO: Update the aggregate root version range \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":"Source/Events/Store/Persistence/CommitBuilder.cs"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d06635f15adee12f80c698952c2f7daccc267362dc77ed07ede01cdc409f536"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Store/Streams/Legacy/Extensions.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"69734a6be6620baed73a41265b35cb2aab255f9912bab841d636d28fb2d7e8a3"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable SA1122 // To allow replacing pre release with \u0022\u0022 instead of string.Empty"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Platform/VersionInfo.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"f37e910867ba08dbaf6dc6724c2003619ca01cc012665d6cc35510d7aa6e823b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: All these dynamics and crazy reflection should be made simpler whenever we merge the projects. \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":"Source/Configuration/AllConfigurations.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7f5128f65e96b82a81cc78ad9e5221704ec92fc6c3e152ff85ccac88a91b45c"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CS8618"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration/AllConfigurations.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab37e4074c35ad714ea822ab7cb02da1c641c61b4c09d09c8e10668d80724b18"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Can we do this in a nicer way? This code forces our IOptionsFactory into the host builder \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":"Source/Hosting/Scopes/ScopedHostBuilder.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e764a5f19c07b4a529742e4b31b2f50b41b4bb13d1934cb60a2d881da076704"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Actors/Hosting/ApplicationLifecycleHooks.cs"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"059d055bcece3ae0f7b06a83af1b78ceaa4cb72eba949d2baed67075b4e4083a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0612 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Shared/EventStoreExtensions.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd567a75687acdbf95e29d8cfdebdc86d34e05bf69f411565b5fc842c6a99888"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Adding 10 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"d364e3a914ce2039e82f5a396710bcb1ca1008c38a259771227f6317a7e0be1a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Adding 10 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"d364e3a914ce2039e82f5a396710bcb1ca1008c38a259771227f6317a7e0be1a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // [Params(false, true)] TODO: We can maybe enable this in the future, but as of now it seems that the performance is 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":"Integration/Benchmarks/Events.Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"d364e3a914ce2039e82f5a396710bcb1ca1008c38a259771227f6317a7e0be1a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // [Params(1, 10)] TODO: We can maybe enable this in the future, but as of now it seems that the performance depends on the amount of events 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":"Integration/Benchmarks/Events.Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"d364e3a914ce2039e82f5a396710bcb1ca1008c38a259771227f6317a7e0be1a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Adding 100 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"d364e3a914ce2039e82f5a396710bcb1ca1008c38a259771227f6317a7e0be1a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     [Params(1, 2)] // TODO: Adding 10 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandler.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"526bae0f7d1e87f977c6a5a05e8959d41216455b2d4936791a3c4eee6d08006b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     [Params(1, 2, 5)] // TODO: Adding 10 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandler.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"526bae0f7d1e87f977c6a5a05e8959d41216455b2d4936791a3c4eee6d08006b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     // [Params(false, true)] TODO: We can maybe enable this in the future, but as of now it seems that the performance is 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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandler.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"526bae0f7d1e87f977c6a5a05e8959d41216455b2d4936791a3c4eee6d08006b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     // [Params(1, 10)] TODO: We can maybe enable this in the future, but as of now it seems that the performance depends on the amount of events 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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandler.cs"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"526bae0f7d1e87f977c6a5a05e8959d41216455b2d4936791a3c4eee6d08006b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     [Params(1, 10, 100)] // TODO: Adding 100 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandler.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"526bae0f7d1e87f977c6a5a05e8959d41216455b2d4936791a3c4eee6d08006b"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 7 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandler.cs"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4e3e89464d65af005a09cd2ba5a995526311fa6ec4a082991678a2f5f8b6ce9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     [Params(1, 2)] // TODO: Adding 10 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e0da42045360064c6559be34f61bd246486e8a2a73f6cb1600cf4a2ceaf06"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     [Params(1, 2, 5)] // TODO: Adding 10 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e0da42045360064c6559be34f61bd246486e8a2a73f6cb1600cf4a2ceaf06"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     // [Params(false, true)] TODO: We can maybe enable this in the future, but as of now it seems that the performance is 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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e0da42045360064c6559be34f61bd246486e8a2a73f6cb1600cf4a2ceaf06"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     // [Params(1, 10)] TODO: We can maybe enable this in the future, but as of now it seems that the performance depends on the amount of events 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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e0da42045360064c6559be34f61bd246486e8a2a73f6cb1600cf4a2ceaf06"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     [Params(1, 10, 100)] // TODO: Adding 100 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e0da42045360064c6559be34f61bd246486e8a2a73f6cb1600cf4a2ceaf06"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //     // [Benchmark] TODO: Implicit filters does not work yet \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":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e0da42045360064c6559be34f61bd246486e8a2a73f6cb1600cf4a2ceaf06"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 7 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Benchmarks/Events.Processing/EventHandlers/FastEventHandlerWithImplicitFilter.cs"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"465f9832ecceabe04a41a217caf83c948efbf4732215bd39c005db931984b671"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // [Params(false, true)] TODO: We can maybe enable this in the future, but as of now it seems that the performance is 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":"Integration/Benchmarks/Events.Processing/EventHandlers/Filter.cs"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"a116c0e3ee6d8aa26bc5db576a28cdc77505b381be519d27a5eabd01a78c84db"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // [Params(1, 10)] TODO: We can maybe enable this in the future, but as of now it seems that the performance depends on the amount of events 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":"Integration/Benchmarks/Events.Processing/EventHandlers/Filter.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"a116c0e3ee6d8aa26bc5db576a28cdc77505b381be519d27a5eabd01a78c84db"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Adding 100 here results in really slow benchmarks. Let\u0027s adding 100 when we\u0027ve made this blazingly fast :) \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":"Integration/Benchmarks/Events.Processing/EventHandlers/Filter.cs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"a116c0e3ee6d8aa26bc5db576a28cdc77505b381be519d27a5eabd01a78c84db"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CA1001 // Types that own disposable fields should be disposable. IterationCleanup fixes it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Benchmarks/Events.Processing/EventHandlers/Filter.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"184ec53f85930c3105f246b276799e0374c6360bb5f0acacc645a953e388c7be"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 11 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/EventHandlers/given/single_tenant_and_event_handlers.cs"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a8daf70c02272d327c3fafd5a4745798d4f27390fa3a0de8b06b8aa724bc876"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/EventHandlers/given/single_tenant_and_event_handlers.cs"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a8daf70c02272d327c3fafd5a4745798d4f27390fa3a0de8b06b8aa724bc876"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Exception) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/EventHandlers/given/single_tenant_and_event_handlers.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"397dc7d10c6581e2bc94862eab33ca87f0c9de6846b728fe962c149d5babf212"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/EventHandlers/with_a_single/scoped/not_partitioned/event_handler/without_implicit_filter/that_handles_no_event_types.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9beb8834414730d1bbcba816f259b4763067d20b962661b514b115d5d3db398"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/EventHandlers/with_a_single/scoped/not_partitioned/event_handler/without_implicit_filter/that_handles_no_event_types.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9beb8834414730d1bbcba816f259b4763067d20b962661b514b115d5d3db398"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/EventHandlers/with_a_single/scoped/not_partitioned/event_handler/without_implicit_filter/that_handles_no_event_types.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9beb8834414730d1bbcba816f259b4763067d20b962661b514b115d5d3db398"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CA1848"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Diagnostics/OpenTelemetry/OpenTelemetryConfigurationExtensions.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac82bf36b86ad616a695777260bc140042791dfcb1df6d2a223bf8f263a0cc4a"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 7 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Processing.Tests/PartitionedProcessorTests.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9c514afad2b9850c03b049fa8dbcf802320533212d4ee4f1f61cfc327aa8310"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: DependencyInversion: \u0060DependencyInversion\u0060 contributes only 3 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":"Specifications/DependencyInversion/DependencyInversion.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a72005d63a517721ea0681e1ae4d60435a3682d57fe05d8acfee79336de837b6"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: Metrics: \u0060Metrics\u0060 contributes only 3 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":"Specifications/Metrics/Metrics.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a89d2d9b67e82f51af9efbbe92310f13df8c908353a3be69e8644de730fc54ed"}},{"ruleId":"D18","level":"note","message":{"text":"Shell project: Events: \u0060Events\u0060 contributes only 3 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":"Specifications/Events/Events.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d25ba491899144ca25b8a57e84d629c654a5aca14cde258e486f903b2c2326b3"}},{"ruleId":"D18","level":"note","message":{"text":"Artifacts (Production): 4 .cs files, 92 LoC (28 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Artifacts/Artifacts.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2638eec557606a71bef6af756c2548e7697913ba9d83942b25807d3b38f37a39"}},{"ruleId":"D18","level":"note","message":{"text":"DependencyInversion (Production): 43 .cs files, 1620 LoC (894 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/DependencyInversion/DependencyInversion.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"130d0e00da005f8afee54771216f3b8e10ba7cd50a0f76b994347239fc5eb244"}},{"ruleId":"D18","level":"note","message":{"text":"EventHorizon (Production): 62 .cs files, 3932 LoC (2518 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/EventHorizon/EventHorizon.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6ce6248da219e8e5a560291bb5a89985d6b0a8986d850448147f0c555e8cf92"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.MongoDB (Production): 103 .cs files, 6218 LoC (3830 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.MongoDB/Events.Store.MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e5a05b1b330673f386c4ef5629076c8f5eb0e70a8da65a3bd9109295f974553"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.Services.Grpc (Production): 1 .cs files, 76 LoC (51 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.Services.Grpc/Events.Store.Services.Grpc.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"072f38e3c88a5c1150850ef2e97b4f9bfefef68a78a4965cc3e98ea989e2f12f"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.Services.WebAPI (Production): 17 .cs files, 643 LoC (338 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.Services.WebAPI/Events.Store.Services.WebAPI.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f7d3c73040026e2db9d979be2be05cf3a9201f6bd66ee22a7c32ca8f7d91cde"}},{"ruleId":"D18","level":"note","message":{"text":"Execution (Production): 6 .cs files, 238 LoC (100 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Execution/Execution.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"50f4c4fe3fd2f47583246a2ec94ac8c0605c6aa106bf9203e0e4c4c62b39f231"}},{"ruleId":"D18","level":"note","message":{"text":"Metrics (Production): 10 .cs files, 305 LoC (176 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Metrics/Metrics.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4f58de3b8e0c41cb85bf7cbf89efa41a3b878057aff05f6972f50625840a5ab"}},{"ruleId":"D18","level":"note","message":{"text":"Microservices (Production): 5 .cs files, 74 LoC (26 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Microservices/Microservices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"13ddda91aa6d4a00a0456cd7c114396ccd5d52e6d0dfd0f5b7b7bb30221c0d77"}},{"ruleId":"D18","level":"note","message":{"text":"Protobuf (Production): 12 .cs files, 405 LoC (171 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Protobuf/Protobuf.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc049a4f9aa6efe0f07237c5d76c7ad8afa9190e343aba250dcb81f5641afb75"}},{"ruleId":"D18","level":"note","message":{"text":"Rudimentary (Production): 19 .cs files, 1781 LoC (936 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Rudimentary/Rudimentary.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f188f5825bd1b652a202e6d86f2c3260504441a16f901f55cc38e72ca998bd1c"}},{"ruleId":"D18","level":"note","message":{"text":"Server (Production): 12 .cs files, 501 LoC (326 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Server/Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b767e925c5d0735519867adba4ec93ca847630c6fbb10ec0eee87048b50d9e2"}},{"ruleId":"D18","level":"note","message":{"text":"Services.Clients (Production): 22 .cs files, 1765 LoC (1094 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services.Clients/Services.Clients.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1581d13df52159210b7928dc1c09f1af5805465a8f2b905d96550d8e23b483c"}},{"ruleId":"D18","level":"note","message":{"text":"Services (Production): 81 .cs files, 5256 LoC (3407 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Services.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6862022849ac5ec5e9d91b68d647a9cc4b35d463e0df1b910ef081159d544c2c"}},{"ruleId":"D18","level":"note","message":{"text":"Tenancy (Production): 10 .cs files, 388 LoC (187 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Tenancy/Tenancy.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b3e6f591e9b37f3d57b49cba89d62c6e229a60cc8b5f7a9459a4b3e1e7b975b"}},{"ruleId":"D18","level":"note","message":{"text":"DependencyInversion (Production): 1 .cs files, 4 LoC (3 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/DependencyInversion/DependencyInversion.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"63e446b187496b0192c5d468ff87f5619ac9a64a43ff577471c05b917a7cab14"}},{"ruleId":"D18","level":"note","message":{"text":"EventHorizon (Production): 45 .cs files, 1765 LoC (1406 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/EventHorizon/EventHorizon.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c05be0f9bd340debe8ff0616ba983404b052e1ae4d78473d9e3763270cdbe00"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Processing (Production): 113 .cs files, 4837 LoC (3755 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Processing/Events.Processing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce69ee24d722a05a0439976cbd218251771d05b28312cdba7f21a93282a9016e"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.MongoDB (Production): 57 .cs files, 2134 LoC (1635 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Store.MongoDB/Events.Store.MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e58c39d289f24d97a82daf424aadfb90459e281cea64d76e149ac0c3b6422a36"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store (Production): 78 .cs files, 2409 LoC (1810 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Store/Events.Store.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa37aa7a8eba66efd9f345dabeb025299c3d18a3e3bfdc721fdb498e8c9c1bad"}},{"ruleId":"D18","level":"note","message":{"text":"Execution (Production): 5 .cs files, 189 LoC (152 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Execution/Execution.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfdc20767f1b038a7f5e63a1e9c6c7d0670a53229abc4470d39fd100f8bedd34"}},{"ruleId":"D18","level":"note","message":{"text":"Metrics (Production): 1 .cs files, 4 LoC (3 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Metrics/Metrics.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c10aae7d628e44240efe74fbea6803df3b8ab49155fe2f1daed5729c8bcd382"}},{"ruleId":"D18","level":"note","message":{"text":"Protobuf (Production): 6 .cs files, 222 LoC (169 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Protobuf/Protobuf.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfcf5d577c359578b280cfba7887f684e3049bb80e841a07043e901ee8833ec8"}},{"ruleId":"D18","level":"note","message":{"text":"Rudimentary (Production): 20 .cs files, 446 LoC (324 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Rudimentary/Rudimentary.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"10a3658688f6ac12c941c1cdfa461b8c0059a7b8e44a425833608bf8d60a8b81"}},{"ruleId":"D18","level":"note","message":{"text":"Services.Clients (Production): 23 .cs files, 926 LoC (718 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Services.Clients/Services.Clients.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc49e8eba058523811418d665be2ba7b067fcce96a03dd687ebdaed61be9f921"}},{"ruleId":"D18","level":"note","message":{"text":"Services (Production): 120 .cs files, 4543 LoC (3442 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Services/Services.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a8849e798e95222db0975baceac64db2d9e197e18ad340d6415bd1f02e655d3"}},{"ruleId":"D18","level":"note","message":{"text":"CLI (Production): 104 .cs files, 3840 LoC (2076 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/CLI/CLI.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"091450291ef44b4a9dab36e2a7bd4f85b547a5b3d5bd8052506c6245ca21df09"}},{"ruleId":"D18","level":"note","message":{"text":"Events (Production): 289 .cs files, 18321 LoC (11031 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Events.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3f40c815e773e046f2cbfa9e1d1d7fda5ffb96bc08d2b651183126479e50f3d"}},{"ruleId":"D18","level":"note","message":{"text":"Events (Production): 1 .cs files, 4 LoC (3 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events/Events.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c1348f4eaf92a91396943256bf84eb24c0342792698dc6210879a23463eeea4"}},{"ruleId":"D18","level":"note","message":{"text":"Aggregates (Production): 14 .cs files, 334 LoC (229 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Aggregates/Aggregates.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa5023f27e475566accb760ce0eea2a60d930c3bd7046fda0432390756dbc0cf"}},{"ruleId":"D18","level":"note","message":{"text":"Resources (Production): 7 .cs files, 242 LoC (127 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Resources/Resources.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f4902a87b0794cb5be15309dc3052536c1ed41ae81944753b8be6b5cfba55a"}},{"ruleId":"D18","level":"note","message":{"text":"Platform (Production): 21 .cs files, 703 LoC (386 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Platform/Platform.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"718e863da75daa14a5cc4d5a00d21ed288c5f3ef19e4991ecf8880e57ecf7b17"}},{"ruleId":"D18","level":"note","message":{"text":"MongoDB (Production): 3 .cs files, 107 LoC (72 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/MongoDB/MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d2ca9b4389ee0d5f256890d59a718b41b8acfd251bbdc2cb55539fbc5efc242"}},{"ruleId":"D18","level":"note","message":{"text":"MongoDB (Production): 4 .cs files, 112 LoC (84 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/MongoDB/MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f52ec69e85988635b4b165e31087a4049640ad9b1deeb28dd1efaf87d65310f3"}},{"ruleId":"D18","level":"note","message":{"text":"Platform (Production): 9 .cs files, 178 LoC (114 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Platform/Platform.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbef3ddeea7ff38cedda6403601ff10be956d9fed41ccbb38d27bd746ce2aa98"}},{"ruleId":"D18","level":"note","message":{"text":"Configuration (Production): 20 .cs files, 878 LoC (540 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration/Configuration.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c5821ab29634494f361fd84c7f7c259b3de5ce4b7d2fc9c08c691e63cd1314d"}},{"ruleId":"D18","level":"note","message":{"text":"Hosting (Production): 8 .cs files, 366 LoC (208 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Hosting/Hosting.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"12038c9557c5e1d17930f833aadd929954cc01cf9ceb707d98728518933cd701"}},{"ruleId":"D18","level":"note","message":{"text":"Domain (Production): 12 .cs files, 364 LoC (127 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Domain/Domain.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b62e92442e91f978f99b017e7ca77ee61f79a17855e245de46ef543ca53e294"}},{"ruleId":"D18","level":"note","message":{"text":"Domain (Production): 8 .cs files, 118 LoC (74 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Domain/Domain.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"05c98724a2b70ecb9490d2821c60bc50c33060afcb7990739295ad269dd1e925"}},{"ruleId":"D18","level":"note","message":{"text":"Actors (Production): 16 .cs files, 838 LoC (509 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Actors/Actors.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1edbf1cb74f61e7a7d3fb66f6022bd9ea3077e75425373224eed44fa9623d423"}},{"ruleId":"D18","level":"note","message":{"text":"Shared (Production): 7 .cs files, 403 LoC (317 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Shared/Shared.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1af156296819c79397f5c7dd8789e209dc83ea1e59e14d710f4041197d63b068"}},{"ruleId":"D18","level":"note","message":{"text":"Benchmarks (Production): 11 .cs files, 1356 LoC (763 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Benchmarks/Benchmarks.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e1583aab00003f901834ab8841836d15cd7d996294d86ec55dbacdc4d7609a2"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store (Production): 16 .cs files, 1764 LoC (1446 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Store/Events.Store.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbd7c4ad7a32c94eadfd294af78fc2ae2ba57c6b8421e3d749331ca6d0bf3592"}},{"ruleId":"D18","level":"note","message":{"text":"Bootstrap (Production): 5 .cs files, 145 LoC (69 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Bootstrap/Bootstrap.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7c1e61799e1c5f9fc56a016041665e6fac6f616f7b9b302e8e62320abb89e02"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Processing (Production): 96 .cs files, 3848 LoC (2794 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Processing/Events.Processing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"918579a47f82f363b59f55550a9d7fd7ffa425daac912db5f8f5e0dd066bf0b1"}},{"ruleId":"D18","level":"note","message":{"text":"Diagnostics (Production): 5 .cs files, 172 LoC (127 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Diagnostics/Diagnostics.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a298ac72c901d0024632ee4355932f38746019aad3482306c347456e405607da"}},{"ruleId":"D18","level":"note","message":{"text":"Client (Production): 10 .cs files, 395 LoC (238 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Client/Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1548331cee1fc1f60adce9cc0f8fb93461e6ed3c9da00f807ef78f0367cb74f4"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.Services.Grpc (Production): 4 .cs files, 290 LoC (231 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Store.Services.Grpc/Events.Store.Services.Grpc.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a5cce00967c0365c3154cde058138f5e8d9b550498ce7b83a549d8dff1f54d9"}},{"ruleId":"D18","level":"note","message":{"text":"Configuration.Management (Production): 4 .cs files, 235 LoC (176 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration.Management/Configuration.Management.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a5152316b4d6c9f76cd0cfc36bd9919d0499625fe5c3d2591a706991b47ddae"}},{"ruleId":"D18","level":"note","message":{"text":"Services (Production): 10 .cs files, 371 LoC (282 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Services/Services.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"219bdaf807e11b5ebdf390a84049ebd3f02bee482e5f86916e526bf7974ce049"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.MongoDB (Production): 15 .cs files, 478 LoC (351 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Tests/Events.Store.MongoDB/Events.Store.MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"da714b8b01e5c5fe25bc22e7117c6e2cf986cd6acabbb3b0d6037ed5c4edd11f"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Processing.Tests (Test): 34 .cs files, 1615 LoC (1156 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Processing.Tests/Events.Processing.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad728cbf8e459eee8975cfa4f8099380846eaa90147854cfd22a4a8e25edc55b"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Store.MongoDB.Tests (Test): 4 .cs files, 179 LoC (140 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Specifications/Events.Store.MongoDB.Tests/Events.Store.MongoDB.Tests.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b358208ce34a1089b69d050e0d9f621c34c7fae4e9c462e3235a962416633292"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Artifacts: Artifacts: 100 % XML-doc coverage (11/11)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Artifacts/Artifacts.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0785f86c1edae2210d0bcf3c3fa2376332a3dec4835a4c8c5146305442e4b7ef"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: DependencyInversion: DependencyInversion: 96 % XML-doc coverage (85/89)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/DependencyInversion/DependencyInversion.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a0b8edb322b9dcfaf83ac09b38aee0a6084a5b0f8c4fef29a5effbcca664b0b"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: EventHorizon: EventHorizon: 95 % XML-doc coverage (194/205)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/EventHorizon/EventHorizon.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1a65f9105dcc8f8407a45e00962035504316c2f9d7b64363679a71a2429a559"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Events.Store.MongoDB: Events.Store.MongoDB: 79 % XML-doc coverage (314/397)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.MongoDB/Events.Store.MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"12890c475c308e07dd0ec2a8e3476a9b5842c124caf735a05a8a762d0b57ce57"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Events.Store.Services.Grpc: Events.Store.Services.Grpc: 100 % XML-doc coverage (6/6)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.Services.Grpc/Events.Store.Services.Grpc.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3318f027416be10fb4b3afde094bb204183f69c010bf7a8bfa132118a2f1a21"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Events.Store.Services.WebAPI: Events.Store.Services.WebAPI: 92 % XML-doc coverage (36/39)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.Services.WebAPI/Events.Store.Services.WebAPI.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e9e856af3b67b44053e879dbe4eccaa16a7ffe832cd0e7f80f3c7f1487e3c06"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Execution: Execution: 100 % XML-doc coverage (20/20)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Execution/Execution.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"74b65d0e48fa483eeaddcc0ee6b6a5acfb0e1426601a19166762b8ab9f704bc4"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Metrics: Metrics: 60 % XML-doc coverage (15/25)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Metrics/Metrics.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"823e436161fe61122ffc30c8b4687f71df8cb01d3fa01f76a85a0babfe1ecfc3"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Microservices: Microservices: 71 % XML-doc coverage (5/7)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Microservices/Microservices.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09d5a7921df9ea2df6498d489f1a34ae57eb367604246633a392b759a6f5f428"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Protobuf: Protobuf: 100 % XML-doc coverage (38/38)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Protobuf/Protobuf.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"789167219c04288792fb6ad7fd793c01fe7e98584c94eadb81b81dfc15c4cc4d"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Rudimentary: Rudimentary: 97 % XML-doc coverage (114/118)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Rudimentary/Rudimentary.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d5251631023795b0c8499d44c2720d7720fee940ddc3076cfcc6a01e3cdc34c"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Server: Server: 77 % XML-doc coverage (17/22)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Server/Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe1f7ec8eaeaf235ea12e7b94f8d8a70ab64a764fa3f30c71cd167f2673e11ed"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Services.Clients: Services.Clients: 98 % XML-doc coverage (59/60)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services.Clients/Services.Clients.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"214d58307ee7f5184de0ae6bbc8cc666a1283e7800747ef247995cf64cf73a3c"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Services: Services: 76 % XML-doc coverage (187/245)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Services/Services.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c9a784a27a8e306a8c6a132b32e54f1a339badccc4a08c7566e465ecca197a"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Tenancy: Tenancy: 92 % XML-doc coverage (24/26)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Tenancy/Tenancy.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"af5020804756d3fcc4763a38a740e1a2c55a8bb49550b1f96c4ed17e8acc36e1"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: CLI: CLI: 92 % XML-doc coverage (206/224)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/CLI/CLI.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"132818517f6ef5d5cc3044ef1279a2efdadac0af106d030f656bc45f880dc878"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Events: Events: 75 % XML-doc coverage (683/914)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events/Events.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"24f4997a4bd7915c87cca0ad502217fe33ccf50cf87f8c341ae40b6c28495e4b"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Resources: Resources: 100 % XML-doc coverage (17/17)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Resources/Resources.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a855d37302161daef21397a8a59648cf6058ae7a8129f9209e196a231cececa"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Platform: Platform: 95 % XML-doc coverage (41/43)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Platform/Platform.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8004761e511caadfc3650150b8581f3db444fa7d680690b3b0f2e29ce4cca358"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: MongoDB: MongoDB: 50 % XML-doc coverage (3/6)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/MongoDB/MongoDB.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c63a6232fa81575e07019f9969c82c30a5e569d76f74ca3460ec29cb67f81367"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Configuration: Configuration: 92 % XML-doc coverage (46/50)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration/Configuration.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"254d3787735f34d2a8bf573209e6cf3912b44e14ca0f702e570eb1900c020f43"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Hosting: Hosting: 96 % XML-doc coverage (26/27)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Hosting/Hosting.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b45537da5900d090ff8af3ea82ff20af0859bc20245dea4e9e38b8d169ecfc4"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Domain: Domain: 100 % XML-doc coverage (42/42)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Domain/Domain.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"362676f2c41d82bd480dbe98ece345cb06e22847371336f7bae4a3654506e1a7"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Actors: Actors: 64 % XML-doc coverage (42/66)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Actors/Actors.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbd315331cbde9b903821fe282e13cd5b5584e884342f68f55c4923aec31f31f"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Shared: Shared: 18 % XML-doc coverage (4/22)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Shared/Shared.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac1c89e12d258d7d71f86c37fb33ae057aba547a73288552e02ec4e376119621"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Benchmarks: Benchmarks: 64 % XML-doc coverage (39/61)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Benchmarks/Benchmarks.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fef3da8e86ab5533eb64bb08ad0c995685a6a861bc1724ee42176a90b9267e7"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Bootstrap: Bootstrap: 89 % XML-doc coverage (8/9)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Bootstrap/Bootstrap.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"db9334b50003951fff6e3bb7a1ce68bdaa75a16d9c4db56cc2af561d1209dd2d"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Diagnostics: Diagnostics: 6 % XML-doc coverage (1/16)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Diagnostics/Diagnostics.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a8f95fdc3893a61bb0b96c41a90fbe5ae93f2dcf8ac7e3f5318721a1316179d"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Client: Client: 59 % XML-doc coverage (20/34)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Client/Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bbf45cffc9650a04d6e545625567ba33426fcf38bc4627d1b49473351c5d6f9"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Configuration.Management: Configuration.Management: 67 % XML-doc coverage (6/9)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Configuration.Management/Configuration.Management.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"562e83e6967e7668f75334261167efb04f446b877a39b847139bc9c9293f0f08"}},{"ruleId":"D20","level":"note","message":{"text":"No ADRs found: No ADRs found at common paths; consider documenting architectural decisions in Docs/ADL/ or similar."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2bea044ff79d7d275f5a91a6e2f548586178eaf480274c33960ad020c854631"}},{"ruleId":"D22","level":"note","message":{"text":"No exposed public API: No intentionally-exposed types (IsPackable or .Contracts) to evaluate."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2712d35e1d1ba8e91a90125d29842b77d4ca65e0eeaa52476c739f7165820a6f"}},{"ruleId":"D23","level":"note","message":{"text":"Bounded contexts not declared: The codebase is large (44k\u002B LoC, 53 projects), indicating a complex, multi-module system where implicit boundaries should be explicitly defined to manage coupling. Declare architecture.contexts (\u22652) in config to assess cross-boundary type coupling."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1c7e276c9c682731f01819ed5378b90ca320cde1b583c90920172911598362b3"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Copyright (c) Dolittle. All rights reserved.\u0022 \u2014 Remove this comment. It is a legal header, not a code comment explaining logic. It should be in a separate header file or build configuration, not inline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Integration/Benchmarks/Events.Processing/EventHandlers/EventHandler.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bfe8483596a4af4af2ddd2eea07f14b4466479c30f16e88cefdf5d1b86ee435"}},{"ruleId":"D25","level":"note","message":{"text":"no ADRs to check: No ADRs found, so conformance can\u0027t be assessed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5f96235c58be08aaae505ba823e9095f206fbc6a447f646e346ee9bd81a5f481"}},{"ruleId":"D26","level":"note","message":{"text":"Split Events: The project is large and spans 26 namespaces, indicating a lack of cohesion and multiple distinct responsibilities. Suggested: by namespace groups: e.g., Core, Handlers, Models, Utilities"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f213ae4929bdff403012f7e8b831a747efb02d6154ab44c3045662d64cc1a318"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: Snappier 1.0.0: Snappier 1.0.0 (transitive) has a High advisory; affects 39 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"535c841a79fa99ee910e3d9375e11ec02a2f8b10cd3cb316706fed34aaa88a27"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: OpenTelemetry.Api 1.12.0: OpenTelemetry.Api 1.12.0 (transitive) has a Medium advisory; affects 37 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a67a83124219a1c145252e1ff193ec8ac5e1a45f53ff323b977281a255a9a060"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.12.0: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.12.0 (transitive) has a Medium advisory; affects 37 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e6a3f72dd33383c28989b73ce6727b8a925c6ca46ed7f08c231953c32ebef383"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: SharpCompress 0.30.1: SharpCompress 0.30.1 (transitive) has a Medium advisory; affects 39 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"00cb4b303392f15d10a6e6cba03898c053b2eca5b8ace5790990d10c0d0ab63f"}},{"ruleId":"D30","level":"warning","message":{"text":"Medium CVE: OpenTelemetry.Api 1.9.0: OpenTelemetry.Api 1.9.0 (transitive) has a Medium advisory. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1f603a8ebd694e4aeb9c309fc8133e250204b578e77f235b9a88211fb438737f"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Docker/Development/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"22dc4563e82ba00b1412d6af2ae03400a4c2b6a00de6ac79793d066b8ae63872"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Docker/Production/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"065c7ce6d98dfc0560d7679c688b81c37252d83af73f76d2225898d32a3f06eb"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.MongoDB/Development/MongoDB/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b97892741a62f57838108e54793c94830520a6f9d5654503437975428cfb1e30"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Docker/Development/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aee3ed74ba242626fc19a4f557aa4840a7e8b03a1340d0b51f1eab66f8d84db5"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Docker/Production/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"977be31d5ba891d32af2b9535e662af75a10e739a1f9a2fcd5b21dba987c7400"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Source/Events.Store.MongoDB/Development/MongoDB/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ee7c55660ab8d9ac85657d7861d9d31917907bd4aaa0a6de039fd08bbfdf47f"}},{"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":"D37","level":"note","message":{"text":"Not applicable: No vulnerability-disclosure policy file found (SECURITY.md, .github/SECURITY.md, docs/SECURITY.md, .well-known/security.txt). A coordinated-disclosure policy may live off-repo, so this is not evidenced rather than failed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e748a9b8b3d154964dfb621b8675d34a302dda266d0196c5d83eb8ba4071d61c"}},{"ruleId":"D39","level":"note","message":{"text":"IL measured: 204 methods; 0 oversized (\u003E 250 IL); 0 boxing ops."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"91bfe72f02efc06e7b9c436bf6f2d658795fe00de6ed3c451679414c4368f3e3"}}],"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}}}]}