diff --git a/.slopwatch/baseline.json b/.slopwatch/baseline.json index 913c18b..48d573d 100644 --- a/.slopwatch/baseline.json +++ b/.slopwatch/baseline.json @@ -1,7 +1,6362 @@ { "version": 1, "createdAt": "2026-02-23T02:13:34.57845+00:00", - "updatedAt": "2026-02-23T02:13:34.57845+00:00", + "updatedAt": "2026-02-25T04:56:17.033296+00:00", "description": "Initial baseline created by 'slopwatch init' on 2026-02-23 02:13:34 UTC", - "entries": [] + "entries": [ + { + "hash": "be810a4b680fddaa", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/RaftTransportPersistenceTests.cs", + "lineNumber": 83, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.67288+00:00" + }, + { + "hash": "849746cca5ff6f16", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.672923+00:00" + }, + { + "hash": "e34163fa3f345c6e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.672927+00:00" + }, + { + "hash": "09622487dc1f8ae4", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 43, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.672929+00:00" + }, + { + "hash": "875d245dc1722eab", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 44, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.672931+00:00" + }, + { + "hash": "dfe6503417fa2646", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 70, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.672932+00:00" + }, + { + "hash": "64caf2b0cda7cc88", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 93, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.672936+00:00" + }, + { + "hash": "f8aa72f23f8b1bcb", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ResponseTrackerTests.cs", + "lineNumber": 37, + "codeSnippet": "Thread.Sleep(50)", + "message": "Test uses Thread.Sleep(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.672938+00:00" + }, + { + "hash": "38a724e7fbf7d37e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafProtocolTests.cs", + "lineNumber": 75, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.682725+00:00" + }, + { + "hash": "9e7b843ed2057eaf", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafProtocolTests.cs", + "lineNumber": 75, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.682732+00:00" + }, + { + "hash": "5a6c8e92a1f210ff", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 292, + "codeSnippet": "catch (OperationCanceledException)\n {\n // OK -- may have already been consumed\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.689356+00:00" + }, + { + "hash": "3f9f4566f04286d7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 166, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.689361+00:00" + }, + { + "hash": "9e290b71de8ed71f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.689366+00:00" + }, + { + "hash": "3ba329f168a5eb49", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 252, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.689368+00:00" + }, + { + "hash": "807fa95f122a617a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/TlsRateLimiterTests.cs", + "lineNumber": 43, + "codeSnippet": "Task.Delay(1200)", + "message": "Test uses Task.Delay(1200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.689386+00:00" + }, + { + "hash": "6f0385dc915263b2", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/LoggingTests.cs", + "lineNumber": 17, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.694446+00:00" + }, + { + "hash": "ffbe19297844cd53", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/SystemRequestReplyTests.cs", + "lineNumber": 147, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.696581+00:00" + }, + { + "hash": "4dffa4348bc9fa24", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/SystemEventsTests.cs", + "lineNumber": 67, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.701212+00:00" + }, + { + "hash": "e87d0d974d6d64d0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.716906+00:00" + }, + { + "hash": "bc37080376354c8c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.71693+00:00" + }, + { + "hash": "1a70d5ae20d78e2d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 332, + "codeSnippet": "Task.Delay(delayMs)", + "message": "Test uses Task.Delay(delayMs) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.730328+00:00" + }, + { + "hash": "69c7fbea94909edc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 352, + "codeSnippet": "Task.Delay(25, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.730335+00:00" + }, + { + "hash": "ae22c295ff7d75f0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 352, + "codeSnippet": "Task.Delay(25, timeout.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.730337+00:00" + }, + { + "hash": "4c328e0ed8668492", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.733327+00:00" + }, + { + "hash": "24ff5100ef9669b3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.733332+00:00" + }, + { + "hash": "676f3541163c84a7", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/ClientUnsubTests.cs", + "lineNumber": 135, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — timeout means no more messages\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.733434+00:00" + }, + { + "hash": "14867158b4cb97fd", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/ClientUnsubTests.cs", + "lineNumber": 177, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.733438+00:00" + }, + { + "hash": "03e715188f29e990", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientUnsubTests.cs", + "lineNumber": 207, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.733439+00:00" + }, + { + "hash": "c5a71499d9c78cf7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStreamStreamPolicyParityTests.cs", + "lineNumber": 33, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.747351+00:00" + }, + { + "hash": "87955627c0ffdc5f", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/AccountIsolationTests.cs", + "lineNumber": 101, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — no message received (timeout)\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.754983+00:00" + }, + { + "hash": "f2394b0fcb14329c", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 95, + "codeSnippet": "catch (HttpRequestException)\n {\n // server not ready\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.757454+00:00" + }, + { + "hash": "cba42e23b5c1fb54", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.757459+00:00" + }, + { + "hash": "27965ad6154c4bf3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MsgTraceGoParityTests.cs", + "lineNumber": 506, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.763527+00:00" + }, + { + "hash": "d4273cfc23f7e3b9", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MsgTraceGoParityTests.cs", + "lineNumber": 539, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.763533+00:00" + }, + { + "hash": "ee05cfb5566ced0a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MsgTraceGoParityTests.cs", + "lineNumber": 543, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.763535+00:00" + }, + { + "hash": "6bb812c39f16cabe", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStreamConsumerBackoffParityTests.cs", + "lineNumber": 36, + "codeSnippet": "Task.Delay(2)", + "message": "Test uses Task.Delay(2) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.771209+00:00" + }, + { + "hash": "db2913f1b1db540a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientSlowConsumerTests.cs", + "lineNumber": 107, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.772694+00:00" + }, + { + "hash": "bd44d577ae84a1ab", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientSlowConsumerTests.cs", + "lineNumber": 142, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.772697+00:00" + }, + { + "hash": "7b799d1e8518aa05", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 37, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.775584+00:00" + }, + { + "hash": "b7e719daeed960af", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 38, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.775587+00:00" + }, + { + "hash": "b85c0454020ca4a6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 69, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.775588+00:00" + }, + { + "hash": "dda703ab6a8a61f3", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 40, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.776358+00:00" + }, + { + "hash": "721a8a9e6e513db6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 41, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.776388+00:00" + }, + { + "hash": "ad9b109b83727753", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 91, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.77639+00:00" + }, + { + "hash": "12b497475fb78036", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 195, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.776399+00:00" + }, + { + "hash": "d0b4c2ebf329b008", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/GatewayProtocolTests.cs", + "lineNumber": 77, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.790012+00:00" + }, + { + "hash": "eaabec835a92a4d7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/GatewayProtocolTests.cs", + "lineNumber": 77, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.790015+00:00" + }, + { + "hash": "1e784509e4625f80", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.790245+00:00" + }, + { + "hash": "87d734e46221e249", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.790248+00:00" + }, + { + "hash": "73976f095745f0a3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStreamStoreExpiryParityTests.cs", + "lineNumber": 18, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.794943+00:00" + }, + { + "hash": "2e77d185aa54c9f7", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/MonitorClusterEndpointTests.cs", + "lineNumber": 76, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.80351+00:00" + }, + { + "hash": "3f433735d100aa83", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/MonitorClusterEndpointTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.803514+00:00" + }, + { + "hash": "305fe524d2dafcd4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Configuration/AuthReloadTests.cs", + "lineNumber": 353, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.831242+00:00" + }, + { + "hash": "84c78f104afe15b9", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Configuration/ConfigReloadParityTests.cs", + "lineNumber": 284, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.840977+00:00" + }, + { + "hash": "177b02a2bc144f77", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/WebSocket/WsIntegrationTests.cs", + "lineNumber": 71, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.849458+00:00" + }, + { + "hash": "abf4b3d73b3906de", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 448, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Timeout is acceptable — check what we got\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:14.883548+00:00" + }, + { + "hash": "693a93b642f0f630", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 522, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.883556+00:00" + }, + { + "hash": "ef6d9ece2d730f8d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 606, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.883559+00:00" + }, + { + "hash": "d4eb9cc5280bed3b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 683, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.883564+00:00" + }, + { + "hash": "72409a4dd345deb2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 725, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(10))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(10)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.883566+00:00" + }, + { + "hash": "49c5e6d93d5801b4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 772, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.883569+00:00" + }, + { + "hash": "babaf994a94ffaa0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 786, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(15))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(15)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.883572+00:00" + }, + { + "hash": "061258b37ce1dd20", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamConsumerRuntimeParityTests.cs", + "lineNumber": 12, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.916182+00:00" + }, + { + "hash": "5e52981d563ddc2f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/PublishAckParityTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(60)", + "message": "Test uses Task.Delay(60) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:14.924647+00:00" + }, + { + "hash": "17356f42946a5955", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ConcurrencyStressTests.cs", + "lineNumber": 494, + "codeSnippet": "Thread.Sleep(1)", + "message": "Test uses Thread.Sleep(1) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.03885+00:00" + }, + { + "hash": "ab6bac8a1b9f907b", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Configuration/ReloadGoParityTests.cs", + "lineNumber": 806, + "codeSnippet": "catch\n {\n // Ignored: reload may race with shutdown.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.038856+00:00" + }, + { + "hash": "5b63116c9dbceb59", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Configuration/ReloadGoParityTests.cs", + "lineNumber": 812, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038858+00:00" + }, + { + "hash": "db228d66ebd9d771", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamConsumerStateMachineStrictParityTests.cs", + "lineNumber": 36, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038859+00:00" + }, + { + "hash": "013d06b200fcd1f8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/ConsumerDeliveryParityTests.cs", + "lineNumber": 168, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038861+00:00" + }, + { + "hash": "fee19473664d688e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamPublishPreconditionTests.cs", + "lineNumber": 130, + "codeSnippet": "Task.Delay(60)", + "message": "Test uses Task.Delay(60) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038862+00:00" + }, + { + "hash": "45e670d09ebb659d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamPublishPreconditionTests.cs", + "lineNumber": 334, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038863+00:00" + }, + { + "hash": "7993b68d6810b481", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamGoParityTests.cs", + "lineNumber": 49, + "codeSnippet": "Fact(Skip = \"DiscardPolicy.New enforcement for MaxMsgs not yet implemented in .NET server — only MaxBytes is checked\")", + "message": "Test method 'AddStream_discard_new_rejects_when_full' is disabled: DiscardPolicy.New enforcement for MaxMsgs not yet implemented in .NET server — only MaxBytes is checked", + "baselinedAt": "2026-02-25T04:56:15.038865+00:00" + }, + { + "hash": "405f55eb1912249d", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamGoParityTests.cs", + "lineNumber": 677, + "codeSnippet": "Fact(Skip = \"DeliverPolicy.New initial sequence resolved lazily at fetch time, not at consumer creation — sees post-fetch state\")", + "message": "Test method 'Consumer_deliver_new_only_gets_new_messages' is disabled: DeliverPolicy.New initial sequence resolved lazily at fetch time, not at consumer creation — sees post-fetch state", + "baselinedAt": "2026-02-25T04:56:15.038867+00:00" + }, + { + "hash": "6d0f9a7a25fd1f75", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamGoParityTests.cs", + "lineNumber": 725, + "codeSnippet": "Fact(Skip = \"Overlapping subject validation across streams not yet implemented in .NET server\")", + "message": "Test method 'Stream_overlapping_subjects_rejected' is disabled: Overlapping subject validation across streams not yet implemented in .NET server", + "baselinedAt": "2026-02-25T04:56:15.038868+00:00" + }, + { + "hash": "235fa2b0b7ba6719", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamGoParityTests.cs", + "lineNumber": 760, + "codeSnippet": "Fact(Skip = \"Sealed stream publish rejection not yet implemented in .NET server Capture path\")", + "message": "Test method 'Stream_sealed_prevents_publishing' is disabled: Sealed stream publish rejection not yet implemented in .NET server Capture path", + "baselinedAt": "2026-02-25T04:56:15.038869+00:00" + }, + { + "hash": "6dcfce5d85c42bab", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/ClientServerGoParityTests.cs", + "lineNumber": 1502, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.038871+00:00" + }, + { + "hash": "9d07359ed0ac62d0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientServerGoParityTests.cs", + "lineNumber": 411, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038872+00:00" + }, + { + "hash": "fd79fee533ff621e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientServerGoParityTests.cs", + "lineNumber": 545, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038873+00:00" + }, + { + "hash": "ed89d91e41cb8fda", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientServerGoParityTests.cs", + "lineNumber": 827, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038875+00:00" + }, + { + "hash": "62b72d1506edec03", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientServerGoParityTests.cs", + "lineNumber": 1182, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(15))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(15)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038878+00:00" + }, + { + "hash": "07f85da172c59094", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientServerGoParityTests.cs", + "lineNumber": 1233, + "codeSnippet": "Task.Delay(600)", + "message": "Test uses Task.Delay(600) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038879+00:00" + }, + { + "hash": "eca5f2fa329f862c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamDedupeWindowParityTests.cs", + "lineNumber": 25, + "codeSnippet": "Task.Delay(40)", + "message": "Test uses Task.Delay(40) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038881+00:00" + }, + { + "hash": "3f9e38534bfc9c3b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(50, timeout.Token)\n .ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038882+00:00" + }, + { + "hash": "e204f326465e1d7b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038883+00:00" + }, + { + "hash": "b6550aaabadb5b65", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 674, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038887+00:00" + }, + { + "hash": "f88f477a6284e1bc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 704, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038888+00:00" + }, + { + "hash": "e0b7172045136fc6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 767, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038889+00:00" + }, + { + "hash": "6588345df335053b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 829, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.03889+00:00" + }, + { + "hash": "4e1336c8dac89ff7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 918, + "codeSnippet": "Task.Delay(100, timeout.Token)\n .ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038892+00:00" + }, + { + "hash": "0c479a1bb7f33378", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Route/RouteGoParityTests.cs", + "lineNumber": 918, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038901+00:00" + }, + { + "hash": "fde6626aa2ec4dcc", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/ClientProtocolParityTests.cs", + "lineNumber": 63, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.038906+00:00" + }, + { + "hash": "70b8988befdb669d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientProtocolParityTests.cs", + "lineNumber": 1295, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038907+00:00" + }, + { + "hash": "fc48949b8c4989d6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientProtocolParityTests.cs", + "lineNumber": 1372, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.03891+00:00" + }, + { + "hash": "b2fe2524c7cec090", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/ClientProtocolParityTests.cs", + "lineNumber": 1963, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.038912+00:00" + }, + { + "hash": "07efa674219f744e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JetStreamConsumerDeliveryEdgeTests.cs", + "lineNumber": 256, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.065756+00:00" + }, + { + "hash": "a9232c8a74ce5c6d", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 789, + "codeSnippet": "Fact(Skip = \"Requires real server restart to test consumer failover — TestJetStreamMirroredConsumerFailAfterRestart:10835\")", + "message": "Test method 'Mirror_consumer_fails_after_restart_and_recovers' is disabled: Requires real server restart to test consumer failover — TestJetStreamMirroredConsumerFailAfterRestart:10835", + "baselinedAt": "2026-02-25T04:56:15.125878+00:00" + }, + { + "hash": "303b3d7f09be7c32", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 792, + "codeSnippet": "Fact(Skip = \"Requires real external source/leaf node — TestJetStreamRemoveExternalSource:12150\")", + "message": "Test method 'Remove_external_source_stops_forwarding' is disabled: Requires real external source/leaf node — TestJetStreamRemoveExternalSource:12150", + "baselinedAt": "2026-02-25T04:56:15.125883+00:00" + }, + { + "hash": "907c0de4cef7ba5e", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 795, + "codeSnippet": "Fact(Skip = \"Requires real server restart — TestJetStreamWorkQueueSourceRestart:13010\")", + "message": "Test method 'Work_queue_source_recovers_after_restart' is disabled: Requires real server restart — TestJetStreamWorkQueueSourceRestart:13010", + "baselinedAt": "2026-02-25T04:56:15.125884+00:00" + }, + { + "hash": "8048ee22ec97f473", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 798, + "codeSnippet": "Fact(Skip = \"Requires real server restart — TestJetStreamWorkQueueSourceNamingRestart:13111\")", + "message": "Test method 'Work_queue_source_naming_recovers_after_restart' is disabled: Requires real server restart — TestJetStreamWorkQueueSourceNamingRestart:13111", + "baselinedAt": "2026-02-25T04:56:15.125885+00:00" + }, + { + "hash": "18e795cf83bdfa7b", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 801, + "codeSnippet": "Fact(Skip = \"Requires real external source stream — TestJetStreamStreamUpdateWithExternalSource:15607\")", + "message": "Test method 'Stream_update_with_external_source_works' is disabled: Requires real external source stream — TestJetStreamStreamUpdateWithExternalSource:15607", + "baselinedAt": "2026-02-25T04:56:15.125886+00:00" + }, + { + "hash": "0ae3bf0957d06404", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 804, + "codeSnippet": "Fact(Skip = \"AllowMsgCounter requires real server infrastructure — TestJetStreamAllowMsgCounterSourceAggregates:20759\")", + "message": "Test method 'Allow_msg_counter_source_aggregates' is disabled: AllowMsgCounter requires real server infrastructure — TestJetStreamAllowMsgCounterSourceAggregates:20759", + "baselinedAt": "2026-02-25T04:56:15.125888+00:00" + }, + { + "hash": "9e1f135933984356", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 807, + "codeSnippet": "Fact(Skip = \"AllowMsgCounter requires real server infrastructure — TestJetStreamAllowMsgCounterSourceVerbatim:20844\")", + "message": "Test method 'Allow_msg_counter_source_verbatim' is disabled: AllowMsgCounter requires real server infrastructure — TestJetStreamAllowMsgCounterSourceVerbatim:20844", + "baselinedAt": "2026-02-25T04:56:15.125889+00:00" + }, + { + "hash": "ff94bae663fb88e4", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 810, + "codeSnippet": "Fact(Skip = \"AllowMsgCounter requires real server infrastructure — TestJetStreamAllowMsgCounterSourceStartingAboveZero:20944\")", + "message": "Test method 'Allow_msg_counter_source_starting_above_zero' is disabled: AllowMsgCounter requires real server infrastructure — TestJetStreamAllowMsgCounterSourceStartingAboveZero:20944", + "baselinedAt": "2026-02-25T04:56:15.12589+00:00" + }, + { + "hash": "1572233dd18df313", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSourceGoParityTests.cs", + "lineNumber": 822, + "codeSnippet": "Task.Delay(25, cts.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.125891+00:00" + }, + { + "hash": "bcf4f920fd10b638", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/JsStorageRecoveryTests.cs", + "lineNumber": 32, + "codeSnippet": "catch { /* best-effort */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.14286+00:00" + }, + { + "hash": "d031a2d0198c208c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JsStorageRecoveryTests.cs", + "lineNumber": 443, + "codeSnippet": "Task.Delay(150)", + "message": "Test uses Task.Delay(150) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.142866+00:00" + }, + { + "hash": "c191e2f76dc30549", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JsStorageRecoveryTests.cs", + "lineNumber": 686, + "codeSnippet": "Task.Delay(600)", + "message": "Test uses Task.Delay(600) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.142868+00:00" + }, + { + "hash": "ad58816cbe259ca8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JsStorageRecoveryTests.cs", + "lineNumber": 755, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.142871+00:00" + }, + { + "hash": "7cc8d20709e63e6e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JsDeliveryAckTests.cs", + "lineNumber": 30, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.163849+00:00" + }, + { + "hash": "43c6abf483e8eb83", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Configuration/ConfigReloadExtendedParityTests.cs", + "lineNumber": 1253, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.174188+00:00" + }, + { + "hash": "053b57bb9b3cf554", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/JetStreamClusterFixture.cs", + "lineNumber": 337, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.196247+00:00" + }, + { + "hash": "780404bdcf30bd30", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/JsBatchingTests.cs", + "lineNumber": 925, + "codeSnippet": "Thread.Sleep(10)", + "message": "Test uses Thread.Sleep(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.199864+00:00" + }, + { + "hash": "d551090812f1b05c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/JetStreamClusterConsumerTests.cs", + "lineNumber": 65, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.222827+00:00" + }, + { + "hash": "5b3b29e544a06af4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/ConsumerReplicaGroupTests.cs", + "lineNumber": 120, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.278183+00:00" + }, + { + "hash": "322ed761c151daec", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreEncryptionTests.cs", + "lineNumber": 229, + "codeSnippet": "Fact(Skip = \"Compact not yet implemented in .NET FileStore\")", + "message": "Test method 'Encrypted_double_compact_with_write_in_between' is disabled: Compact not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.32146+00:00" + }, + { + "hash": "396a37653a52f7f0", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreEncryptionTests.cs", + "lineNumber": 236, + "codeSnippet": "Fact(Skip = \"Block encryption key reset not yet implemented in .NET FileStore\")", + "message": "Test method 'Encrypted_keep_index_bek_reset' is disabled: Block encryption key reset not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.321475+00:00" + }, + { + "hash": "1aa5cef52f54d539", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/StorageRetentionTests.cs", + "lineNumber": 119, + "codeSnippet": "Task.Delay(maxAgeMs + 50)", + "message": "Test uses Task.Delay(maxAgeMs + 50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.33297+00:00" + }, + { + "hash": "59a178eaea97e4d7", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStorePurgeTests.cs", + "lineNumber": 100, + "codeSnippet": "Fact(Skip = \"Compact not yet implemented in .NET FileStore\")", + "message": "Test method 'Compact_removes_messages_below_sequence' is disabled: Compact not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.38477+00:00" + }, + { + "hash": "ce4368f8045a7cca", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStorePurgeTests.cs", + "lineNumber": 135, + "codeSnippet": "Fact(Skip = \"Truncate not yet implemented in .NET FileStore\")", + "message": "Test method 'Truncate_removes_messages_after_sequence' is disabled: Truncate not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.384786+00:00" + }, + { + "hash": "4d0b8be17c698180", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStorePurgeTests.cs", + "lineNumber": 149, + "codeSnippet": "Fact(Skip = \"PurgeEx not yet implemented in .NET FileStore\")", + "message": "Test method 'PurgeEx_with_subject_removes_matching' is disabled: PurgeEx not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.384791+00:00" + }, + { + "hash": "ad3b7690874ce257", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreLimitsTests.cs", + "lineNumber": 264, + "codeSnippet": "Fact(Skip = \"DiscardNew policy not yet implemented in .NET FileStore\")", + "message": "Test method 'Bytes_limit_with_discard_new_rejects_over_limit' is disabled: DiscardNew policy not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.438075+00:00" + }, + { + "hash": "f9dfc55eacd46243", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreLimitsTests.cs", + "lineNumber": 271, + "codeSnippet": "Fact(Skip = \"MaxMsgsPerSubject not yet implemented in .NET FileStore\")", + "message": "Test method 'MaxMsgsPerSubject_enforces_per_subject_limit' is disabled: MaxMsgsPerSubject not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.438079+00:00" + }, + { + "hash": "9fe31da0db63a6cd", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreLimitsTests.cs", + "lineNumber": 285, + "codeSnippet": "Fact(Skip = \"UpdateConfig not yet implemented in .NET FileStore\")", + "message": "Test method 'UpdateConfig_changes_MaxMsgsPerSubject' is disabled: UpdateConfig not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.438082+00:00" + }, + { + "hash": "ab9d0398f161da58", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreLimitsTests.cs", + "lineNumber": 160, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438083+00:00" + }, + { + "hash": "49b2277e4056eaa6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreLimitsTests.cs", + "lineNumber": 204, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438086+00:00" + }, + { + "hash": "fc67694af4e96fbe", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecoveryTests.cs", + "lineNumber": 130, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438088+00:00" + }, + { + "hash": "33a358f52ed3a62d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecoveryTests.cs", + "lineNumber": 266, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.43809+00:00" + }, + { + "hash": "e6ccb1ba09d1db2b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTtlTests.cs", + "lineNumber": 127, + "codeSnippet": "Task.Delay(150)", + "message": "Test uses Task.Delay(150) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438091+00:00" + }, + { + "hash": "00fb3ef57bc7e782", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTtlTests.cs", + "lineNumber": 219, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438092+00:00" + }, + { + "hash": "4f44687dbbfc73ac", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStorePurgeBlockTests.cs", + "lineNumber": 372, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438095+00:00" + }, + { + "hash": "b141bf7fff314e3b", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/MsgBlockTests.cs", + "lineNumber": 27, + "codeSnippet": "catch { /* best effort cleanup */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.438096+00:00" + }, + { + "hash": "b2d7005be6072776", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStorePermutationTests.cs", + "lineNumber": 580, + "codeSnippet": "Task.Delay(350)", + "message": "Test uses Task.Delay(350) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.438097+00:00" + }, + { + "hash": "79004e83a00b13f3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/StoreInterfaceTests.cs", + "lineNumber": 303, + "codeSnippet": "Thread.Sleep(2_000)", + "message": "Test uses Thread.Sleep(2_000) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468259+00:00" + }, + { + "hash": "b90befb13003a560", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/StoreInterfaceTests.cs", + "lineNumber": 314, + "codeSnippet": "Thread.Sleep(2_500)", + "message": "Test uses Thread.Sleep(2_500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468262+00:00" + }, + { + "hash": "9abbc918c1eb0a74", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreSubjectTests.cs", + "lineNumber": 117, + "codeSnippet": "Fact(Skip = \"SubjectsState not yet implemented in .NET FileStore\")", + "message": "Test method 'Subject_state_cache_expiration' is disabled: SubjectsState not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.468264+00:00" + }, + { + "hash": "137bc2696840f810", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreSubjectTests.cs", + "lineNumber": 124, + "codeSnippet": "Fact(Skip = \"SubjectsTotals not yet implemented in .NET FileStore\")", + "message": "Test method 'Subjects_totals_with_wildcards' is disabled: SubjectsTotals not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.468265+00:00" + }, + { + "hash": "dd4a4e18f22f3fa0", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreSubjectTests.cs", + "lineNumber": 131, + "codeSnippet": "Fact(Skip = \"SubjectForSeq not yet implemented in .NET FileStore\")", + "message": "Test method 'Subject_corruption_detection' is disabled: SubjectForSeq not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.468267+00:00" + }, + { + "hash": "7f93e16830c7a538", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreSubjectTests.cs", + "lineNumber": 138, + "codeSnippet": "Fact(Skip = \"FilteredState not yet implemented in .NET FileStore\")", + "message": "Test method 'Filtered_pending_no_match_returns_zero' is disabled: FilteredState not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.468268+00:00" + }, + { + "hash": "20891d51cb0997bd", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreSubjectTests.cs", + "lineNumber": 145, + "codeSnippet": "Fact(Skip = \"LoadNextMsg not yet implemented in .NET FileStore\")", + "message": "Test method 'Filtered_first_matching_finds_correct_sequence' is disabled: LoadNextMsg not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.468269+00:00" + }, + { + "hash": "9368f30479cfe236", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreSubjectTests.cs", + "lineNumber": 280, + "codeSnippet": "Fact(Skip = \"NumPending not yet implemented in .NET FileStore\")", + "message": "Test method 'NumPending_last_per_subject' is disabled: NumPending not yet implemented in .NET FileStore", + "baselinedAt": "2026-02-25T04:56:15.468272+00:00" + }, + { + "hash": "8c7665f6376b12af", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/MemStoreGoParityTests.cs", + "lineNumber": 335, + "codeSnippet": "catch (KeyNotFoundException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.468273+00:00" + }, + { + "hash": "c07f7a94371522e2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/MemStoreGoParityTests.cs", + "lineNumber": 494, + "codeSnippet": "Thread.Sleep(100)", + "message": "Test uses Thread.Sleep(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468276+00:00" + }, + { + "hash": "43fb6800c4e14d14", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/MemStoreGoParityTests.cs", + "lineNumber": 620, + "codeSnippet": "Thread.Sleep(2_500)", + "message": "Test uses Thread.Sleep(2_500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468277+00:00" + }, + { + "hash": "f18c7f7c6fc21c23", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTombstoneTests.cs", + "lineNumber": 50, + "codeSnippet": "catch { /* best-effort cleanup */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.468278+00:00" + }, + { + "hash": "1472043792e10e12", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTombstoneTests.cs", + "lineNumber": 362, + "codeSnippet": "Thread.Sleep(2000)", + "message": "Test uses Thread.Sleep(2000) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468279+00:00" + }, + { + "hash": "558cd1b06bb628d3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTombstoneTests.cs", + "lineNumber": 392, + "codeSnippet": "Thread.Sleep(1500)", + "message": "Test uses Thread.Sleep(1500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.46828+00:00" + }, + { + "hash": "d45ef0f684f567c3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTombstoneTests.cs", + "lineNumber": 632, + "codeSnippet": "Thread.Sleep(20)", + "message": "Test uses Thread.Sleep(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468281+00:00" + }, + { + "hash": "7b577714d10523b3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTombstoneTests.cs", + "lineNumber": 685, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468283+00:00" + }, + { + "hash": "22eed61d5f7d8ec0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreTombstoneTests.cs", + "lineNumber": 815, + "codeSnippet": "Thread.Sleep(50)", + "message": "Test uses Thread.Sleep(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468285+00:00" + }, + { + "hash": "40edf21b042c7e55", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreCompressionTests.cs", + "lineNumber": 149, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468287+00:00" + }, + { + "hash": "0a10c38046d61273", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/RedeliveryTrackerTests.cs", + "lineNumber": 23, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468288+00:00" + }, + { + "hash": "161a8cbe6886ac20", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/RedeliveryTrackerTests.cs", + "lineNumber": 52, + "codeSnippet": "Task.Delay(15)", + "message": "Test uses Task.Delay(15) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468289+00:00" + }, + { + "hash": "a696e247a9e5403f", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1146, + "codeSnippet": "Fact(Skip = \"Skipped in Go upstream: positional write caches no longer applicable (filestore_test.go:1708)\")", + "message": "Test method 'PartialIndexes_StoreAndLoadAfterCacheExpiry' is disabled: Skipped in Go upstream: positional write caches no longer applicable (filestore_test.go:1708)", + "baselinedAt": "2026-02-25T04:56:15.468292+00:00" + }, + { + "hash": "31a1d53e065bcdc8", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1157, + "codeSnippet": "Fact(Skip = \"Skipped in Go upstream: performance-only test (filestore_test.go:6843)\")", + "message": "Test method 'WriteFullState_HighSubjectCardinality' is disabled: Skipped in Go upstream: performance-only test (filestore_test.go:6843)", + "baselinedAt": "2026-02-25T04:56:15.468294+00:00" + }, + { + "hash": "bc4b8a336e553443", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1292, + "codeSnippet": "Fact(Skip = \"Requires Docker tmpfs environment with limited disk (filestore_test.go:2173-2178)\")", + "message": "Test method 'WriteFailures_FullDisk_SkipEnvironmentSpecific' is disabled: Requires Docker tmpfs environment with limited disk (filestore_test.go:2173-2178)", + "baselinedAt": "2026-02-25T04:56:15.468295+00:00" + }, + { + "hash": "51ddd0dca720099d", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1306, + "codeSnippet": "Fact(Skip = \"Deep internal Go wire format test (hbit/cbit/slotInfo/fetchMsg) without .NET equivalent (filestore_test.go:13255)\")", + "message": "Test method 'Corruption_HbitSanityCheck' is disabled: Deep internal Go wire format test (hbit/cbit/slotInfo/fetchMsg) without .NET equivalent (filestore_test.go:13255)", + "baselinedAt": "2026-02-25T04:56:15.468296+00:00" + }, + { + "hash": "e7095724b65dcd5a", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 63, + "codeSnippet": "catch { /* best-effort cleanup */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.468297+00:00" + }, + { + "hash": "b3fd92753df57352", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 447, + "codeSnippet": "catch (KeyNotFoundException) { /* ok: sequence may be out of range */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.468298+00:00" + }, + { + "hash": "9ac4cf99978d2ea4", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1227, + "codeSnippet": "catch { /* best-effort */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.468299+00:00" + }, + { + "hash": "bb2290d7dbb2873a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 515, + "codeSnippet": "Task.Delay(maxAgeMs * 2)", + "message": "Test uses Task.Delay(maxAgeMs * 2) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468301+00:00" + }, + { + "hash": "d3c2a97355a7fe98", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 548, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468302+00:00" + }, + { + "hash": "e2bc6dba5089d801", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 987, + "codeSnippet": "Task.Delay(ttlMs * 2 + 50)", + "message": "Test uses Task.Delay(ttlMs * 2 + 50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468303+00:00" + }, + { + "hash": "f3707ce055624b5a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1021, + "codeSnippet": "Task.Delay(ttlMs / 2)", + "message": "Test uses Task.Delay(ttlMs / 2) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468304+00:00" + }, + { + "hash": "5f101c0ea99b48e4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreRecovery2Tests.cs", + "lineNumber": 1028, + "codeSnippet": "Task.Delay(ttlMs / 2 + 50)", + "message": "Test uses Task.Delay(ttlMs / 2 + 50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468305+00:00" + }, + { + "hash": "482a37cd8526a29f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/AckProcessorNakTests.cs", + "lineNumber": 55, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468307+00:00" + }, + { + "hash": "df4ce5275a228afe", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/AckProcessorNakTests.cs", + "lineNumber": 83, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468308+00:00" + }, + { + "hash": "bfd63c24322c67dc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSource/MirrorSyncTests.cs", + "lineNumber": 286, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468311+00:00" + }, + { + "hash": "536967d266bdc4b6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSource/MirrorSyncTests.cs", + "lineNumber": 338, + "codeSnippet": "Task.Delay(25, cts.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468313+00:00" + }, + { + "hash": "407587b5c9aabb48", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/PriorityGroupTests.cs", + "lineNumber": 159, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468314+00:00" + }, + { + "hash": "d35359eabf107684", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/PriorityGroupTests.cs", + "lineNumber": 219, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468315+00:00" + }, + { + "hash": "fbbb7e7fbb793123", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/PriorityGroupTests.cs", + "lineNumber": 223, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.468316+00:00" + }, + { + "hash": "d74745278e854aa8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/PushConsumerDeliveryTests.cs", + "lineNumber": 62, + "codeSnippet": "Task.Delay(5, cts.Token)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.493822+00:00" + }, + { + "hash": "9f9ea744f259825e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/PushConsumerDeliveryTests.cs", + "lineNumber": 246, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.493828+00:00" + }, + { + "hash": "6dd97a2a515320da", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Auth/ExternalAuthCalloutTests.cs", + "lineNumber": 54, + "codeSnippet": "Task.Delay(delay, ct)", + "message": "Test uses Task.Delay(delay) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.509512+00:00" + }, + { + "hash": "b44e7646b6eb7d96", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/JetStreamClusterGoParityTests.cs", + "lineNumber": 535, + "codeSnippet": "Fact(Skip = \"Stream delete API handler does not yet call ProposeDeleteStreamAsync on meta group\")", + "message": "Test method 'Meta_state_does_not_track_deleted_streams' is disabled: Stream delete API handler does not yet call ProposeDeleteStreamAsync on meta group", + "baselinedAt": "2026-02-25T04:56:15.509686+00:00" + }, + { + "hash": "34bc1aa8b392ff41", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/MirrorSource/SourceFilterTests.cs", + "lineNumber": 566, + "codeSnippet": "Task.Delay(25, cts.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.52075+00:00" + }, + { + "hash": "a333502bcd3182cd", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/JsCluster1GoParityTests.cs", + "lineNumber": 400, + "codeSnippet": "Fact(Skip = \"StreamManager.Delete does not yet call ProposeDeleteStreamAsync on meta group\")", + "message": "Test method 'Deleted_streams_not_in_meta_state' is disabled: StreamManager.Delete does not yet call ProposeDeleteStreamAsync on meta group", + "baselinedAt": "2026-02-25T04:56:15.548913+00:00" + }, + { + "hash": "b5e83a6efd3c7a91", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/JsCluster1GoParityTests.cs", + "lineNumber": 469, + "codeSnippet": "Fact(Skip = \"Subject overlap validation not yet enforced by .NET StreamManager.CreateOrUpdate\")", + "message": "Test method 'Creating_stream_with_overlapping_subjects_returns_error' is disabled: Subject overlap validation not yet enforced by .NET StreamManager.CreateOrUpdate", + "baselinedAt": "2026-02-25T04:56:15.548918+00:00" + }, + { + "hash": "2bfaa91df7d5b657", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/JetStream/Cluster/JsCluster1GoParityTests.cs", + "lineNumber": 608, + "codeSnippet": "Fact(Skip = \"StreamManager.CreateOrUpdate upserts rather than rejecting unknown stream names\")", + "message": "Test method 'Stream_update_with_mismatched_name_returns_error' is disabled: StreamManager.CreateOrUpdate upserts rather than rejecting unknown stream names", + "baselinedAt": "2026-02-25T04:56:15.548921+00:00" + }, + { + "hash": "27a9cb18d6578655", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/ConsumerLifecycleTests.cs", + "lineNumber": 582, + "codeSnippet": "Task.Delay(-1, cts.Token)", + "message": "Test uses Task.Delay(-1) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.641679+00:00" + }, + { + "hash": "827fa6015f7a2ece", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/ConsumerLifecycleTests.cs", + "lineNumber": 1097, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.641684+00:00" + }, + { + "hash": "ec8bb17970701ad1", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/ConsumerLifecycleTests.cs", + "lineNumber": 1201, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.641685+00:00" + }, + { + "hash": "d9a0ab93d2657bcc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafAccountScopedDeliveryTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.655347+00:00" + }, + { + "hash": "f9675a2963a773a8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafAccountScopedDeliveryTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.655353+00:00" + }, + { + "hash": "4e6f6c1ab8f5a0a4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSolicitedConnectionTests.cs", + "lineNumber": 60, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.655363+00:00" + }, + { + "hash": "4fd7e5ef06db8bb3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSolicitedConnectionTests.cs", + "lineNumber": 60, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.655365+00:00" + }, + { + "hash": "ad942318b44a1233", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSolicitedConnectionTests.cs", + "lineNumber": 96, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.655368+00:00" + }, + { + "hash": "c962f9c62c07ee09", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSolicitedConnectionTests.cs", + "lineNumber": 188, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.65537+00:00" + }, + { + "hash": "a096663f5af0070b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafInterestIdempotencyTests.cs", + "lineNumber": 48, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.670593+00:00" + }, + { + "hash": "3adcf317e50aff86", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafInterestIdempotencyTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.670598+00:00" + }, + { + "hash": "f9523b0d8bbdeb65", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafBasicTests.cs", + "lineNumber": 138, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.687546+00:00" + }, + { + "hash": "be9525db3c2a3f51", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafBasicTests.cs", + "lineNumber": 138, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.687549+00:00" + }, + { + "hash": "8b118edb05ac2d6d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Auth/AuthCalloutGoParityTests.cs", + "lineNumber": 1402, + "codeSnippet": "Task.Delay(_delay, ct)", + "message": "Test uses Task.Delay(_delay) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.692516+00:00" + }, + { + "hash": "375330e5db014fdd", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/Protocol/ClientProtocolGoParityTests.cs", + "lineNumber": 109, + "codeSnippet": "Fact(Skip = \"Header stripping for non-header-aware subscribers not yet implemented in .NET server\")", + "message": "Test method 'Header_stripped_for_non_header_subscriber' is disabled: Header stripping for non-header-aware subscribers not yet implemented in .NET server", + "baselinedAt": "2026-02-25T04:56:15.697068+00:00" + }, + { + "hash": "9bd1127cb6a56992", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/Protocol/ClientProtocolGoParityTests.cs", + "lineNumber": 761, + "codeSnippet": "Fact(Skip = \"$NRG subject rejection for non-system clients not yet implemented in .NET server\")", + "message": "Test method 'Client_rejects_NRG_subjects_for_non_system_users' is disabled: $NRG subject rejection for non-system clients not yet implemented in .NET server", + "baselinedAt": "2026-02-25T04:56:15.697072+00:00" + }, + { + "hash": "b395438c9f23ba1e", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Protocol/ClientProtocolGoParityTests.cs", + "lineNumber": 65, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.697075+00:00" + }, + { + "hash": "643681c96bc81d40", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeForwardingTests.cs", + "lineNumber": 160, + "codeSnippet": "Task.Delay(50, waitCts.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.710516+00:00" + }, + { + "hash": "b37c09c741369689", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeForwardingTests.cs", + "lineNumber": 160, + "codeSnippet": "Task.Delay(50, waitCts.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.710523+00:00" + }, + { + "hash": "22144c4536a2ae25", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeForwardingTests.cs", + "lineNumber": 282, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.71053+00:00" + }, + { + "hash": "2c5c555021592494", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeForwardingTests.cs", + "lineNumber": 371, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.710532+00:00" + }, + { + "hash": "c1d35e0f89a14aaf", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeForwardingTests.cs", + "lineNumber": 371, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.710534+00:00" + }, + { + "hash": "5ed7ae4a0dbdd23a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafFixture.cs", + "lineNumber": 63, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.715397+00:00" + }, + { + "hash": "d499c8e6dfc85534", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafFixture.cs", + "lineNumber": 63, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.7154+00:00" + }, + { + "hash": "43990b51115d1b78", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeSubjectFilterTests.cs", + "lineNumber": 109, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.726883+00:00" + }, + { + "hash": "347b7511bd74e9da", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeSubjectFilterTests.cs", + "lineNumber": 109, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.726887+00:00" + }, + { + "hash": "9aa2e8b75aa51ac1", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeJetStreamTests.cs", + "lineNumber": 49, + "codeSnippet": "Task.Delay(50, waitTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.736974+00:00" + }, + { + "hash": "a02242fb06c338fc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeJetStreamTests.cs", + "lineNumber": 49, + "codeSnippet": "Task.Delay(50, waitTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.736982+00:00" + }, + { + "hash": "5bacd99b07d49d41", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeJetStreamTests.cs", + "lineNumber": 120, + "codeSnippet": "Task.Delay(50, interestTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.736991+00:00" + }, + { + "hash": "c3ce8d796c6d569e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeJetStreamTests.cs", + "lineNumber": 120, + "codeSnippet": "Task.Delay(50, interestTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.736994+00:00" + }, + { + "hash": "b24bd7a0fe2ee436", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeConnectionTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737015+00:00" + }, + { + "hash": "3edd76e6709573ea", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeConnectionTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737018+00:00" + }, + { + "hash": "56cb6268963a6c82", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeConnectionTests.cs", + "lineNumber": 532, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737024+00:00" + }, + { + "hash": "380ceea1611963eb", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 73, + "codeSnippet": "Task.Delay(50, waitTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737027+00:00" + }, + { + "hash": "eb4b75f955c41d62", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 73, + "codeSnippet": "Task.Delay(50, waitTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737029+00:00" + }, + { + "hash": "1b4055857c3a7739", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 199, + "codeSnippet": "Task.Delay(50, interestTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737036+00:00" + }, + { + "hash": "b6e97d8652528625", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 199, + "codeSnippet": "Task.Delay(50, interestTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737038+00:00" + }, + { + "hash": "76dcb7cf6b96869f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 247, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.73704+00:00" + }, + { + "hash": "af057000e5842398", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 256, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737042+00:00" + }, + { + "hash": "2b13f18f6f18865a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 397, + "codeSnippet": "Task.Delay(50, disconnTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737049+00:00" + }, + { + "hash": "1dfa5f67f9106bea", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafNodeAdvancedTests.cs", + "lineNumber": 397, + "codeSnippet": "Task.Delay(50, disconnTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737051+00:00" + }, + { + "hash": "96350055c25c4197", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSubjectFilterTests.cs", + "lineNumber": 201, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737065+00:00" + }, + { + "hash": "1f6d8d392d67366b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSubjectFilterTests.cs", + "lineNumber": 201, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737067+00:00" + }, + { + "hash": "b2a65425b5d467f7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSubjectFilterTests.cs", + "lineNumber": 214, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737069+00:00" + }, + { + "hash": "d5535c0722b93676", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSubjectFilterTests.cs", + "lineNumber": 454, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737083+00:00" + }, + { + "hash": "eb87b11182cfe48e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNodes/LeafSubjectFilterTests.cs", + "lineNumber": 458, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.737085+00:00" + }, + { + "hash": "d90727fc98e3621d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayBasicTests.cs", + "lineNumber": 89, + "codeSnippet": "Task.Delay(TimeSpan.FromMilliseconds(200))", + "message": "Test uses Task.Delay(TimeSpan.FromMilliseconds(200)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.755153+00:00" + }, + { + "hash": "1087a6a1be45b19d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayBasicTests.cs", + "lineNumber": 157, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.755157+00:00" + }, + { + "hash": "f02816319eca3a83", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayBasicTests.cs", + "lineNumber": 157, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.755158+00:00" + }, + { + "hash": "fa1b94eef9f6c6d3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/ConsumerPullQueueTests.cs", + "lineNumber": 504, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.764031+00:00" + }, + { + "hash": "bbdb82e50b8d60e4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/ConsumerPullQueueTests.cs", + "lineNumber": 995, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.764038+00:00" + }, + { + "hash": "c2e9a451ee36fb32", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Consumers/ConsumerPullQueueTests.cs", + "lineNumber": 1616, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.764041+00:00" + }, + { + "hash": "aa61aa626ebb23ba", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs", + "lineNumber": 48, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773366+00:00" + }, + { + "hash": "c0013ee4b74e4cda", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.77337+00:00" + }, + { + "hash": "496248f43c541457", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773371+00:00" + }, + { + "hash": "aff902f289056ff8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773373+00:00" + }, + { + "hash": "f1d393425dae1cff", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreGoParityTests.cs", + "lineNumber": 51, + "codeSnippet": "catch { /* best-effort cleanup */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.773377+00:00" + }, + { + "hash": "1c6759c9f0b92b26", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreGoParityTests.cs", + "lineNumber": 198, + "codeSnippet": "catch (KeyNotFoundException)\n {\n // Subject may not have been written to with random selection — skip.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.773379+00:00" + }, + { + "hash": "c4597979a8b56291", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreGoParityTests.cs", + "lineNumber": 2054, + "codeSnippet": "catch (KeyNotFoundException)\n {\n // Subject might not have been stored.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.773381+00:00" + }, + { + "hash": "964fbdec4aa76f51", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreGoParityTests.cs", + "lineNumber": 629, + "codeSnippet": "Task.Delay(TimeSpan.FromMilliseconds(800))", + "message": "Test uses Task.Delay(TimeSpan.FromMilliseconds(800)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773382+00:00" + }, + { + "hash": "5fd034f91dce9064", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreGoParityTests.cs", + "lineNumber": 666, + "codeSnippet": "Task.Delay(TimeSpan.FromMilliseconds(600))", + "message": "Test uses Task.Delay(TimeSpan.FromMilliseconds(600)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773383+00:00" + }, + { + "hash": "48e0568e60388766", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/JetStream/Storage/FileStoreGoParityTests.cs", + "lineNumber": 1163, + "codeSnippet": "System.Threading.Thread.Sleep(10)", + "message": "Test uses Thread.Sleep(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773384+00:00" + }, + { + "hash": "4d496f9fcd6d39b0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 182, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773386+00:00" + }, + { + "hash": "42b17c039a047a1e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 182, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.773387+00:00" + }, + { + "hash": "a9f2e082c53c138e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 243, + "codeSnippet": "Task.Delay(50, unsTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.777197+00:00" + }, + { + "hash": "b0900e744d72d616", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 243, + "codeSnippet": "Task.Delay(50, unsTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.777199+00:00" + }, + { + "hash": "739e3bb85377cb50", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 506, + "codeSnippet": "Task.Delay(50, interest.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.777206+00:00" + }, + { + "hash": "654f4afc2f4fda13", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 506, + "codeSnippet": "Task.Delay(50, interest.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.777207+00:00" + }, + { + "hash": "b315f4f14a9d9af6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Networking/NetworkingGoParityTests.cs", + "lineNumber": 855, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.777211+00:00" + }, + { + "hash": "a3625564b1c78345", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Accounts/AccountIsolationTests.cs", + "lineNumber": 209, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.777221+00:00" + }, + { + "hash": "5df1e503e146ead0", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Accounts/AccountIsolationTests.cs", + "lineNumber": 435, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — accounts are isolated\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.777224+00:00" + }, + { + "hash": "89e76127b3f34672", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Accounts/PermissionTests.cs", + "lineNumber": 357, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — message was blocked by permissions\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.780526+00:00" + }, + { + "hash": "7a0e04fb81e4d162", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Raft/RaftElectionTimerTests.cs", + "lineNumber": 50, + "codeSnippet": "Thread.Sleep(30)", + "message": "Test uses Thread.Sleep(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852475+00:00" + }, + { + "hash": "acd13eba2cfeb32c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Raft/RaftElectionTimerTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.85248+00:00" + }, + { + "hash": "2c57d001bb83e25b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Raft/RaftElectionTimerTests.cs", + "lineNumber": 235, + "codeSnippet": "Thread.Sleep(20)", + "message": "Test uses Thread.Sleep(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852486+00:00" + }, + { + "hash": "02299401356716b5", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs", + "lineNumber": 218, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.85249+00:00" + }, + { + "hash": "9ed72a2593a6a8fc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs", + "lineNumber": 218, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852492+00:00" + }, + { + "hash": "99f97414b6698d3c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs", + "lineNumber": 251, + "codeSnippet": "Task.Delay(50, unsubTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852498+00:00" + }, + { + "hash": "dbf83c18164ec5f2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs", + "lineNumber": 251, + "codeSnippet": "Task.Delay(50, unsubTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852501+00:00" + }, + { + "hash": "3cffe32c223ce7ec", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs", + "lineNumber": 419, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852511+00:00" + }, + { + "hash": "6cb785938f0713ba", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs", + "lineNumber": 425, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852513+00:00" + }, + { + "hash": "a5bec257b5587bb6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConfigTests.cs", + "lineNumber": 468, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852521+00:00" + }, + { + "hash": "5eaf08c39f55f24b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConfigTests.cs", + "lineNumber": 468, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852523+00:00" + }, + { + "hash": "abaa4afbc6aec8c8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Accounts/AuthCalloutTests.cs", + "lineNumber": 775, + "codeSnippet": "Task.Delay(delay, ct)", + "message": "Test uses Task.Delay(delay) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.852538+00:00" + }, + { + "hash": "178db0cfc8b5d76c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayForwardingTests.cs", + "lineNumber": 110, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976669+00:00" + }, + { + "hash": "dc678f8477811a85", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayForwardingTests.cs", + "lineNumber": 722, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976682+00:00" + }, + { + "hash": "15d32904309c24c1", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayForwardingTests.cs", + "lineNumber": 722, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976685+00:00" + }, + { + "hash": "f5c01d390e899915", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 160, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976703+00:00" + }, + { + "hash": "6ee347ae84e68111", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 188, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976706+00:00" + }, + { + "hash": "6cbe407fef47c647", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976709+00:00" + }, + { + "hash": "2e50c9b5425c324f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976712+00:00" + }, + { + "hash": "fe5f1b3999e60f30", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 245, + "codeSnippet": "Task.Delay(50, dropTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976714+00:00" + }, + { + "hash": "c880ad1f90ecde9e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 245, + "codeSnippet": "Task.Delay(50, dropTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976717+00:00" + }, + { + "hash": "79c4ae99544b9fd3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 268, + "codeSnippet": "Task.Delay(50, reconTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.97672+00:00" + }, + { + "hash": "c926d81196330234", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs", + "lineNumber": 268, + "codeSnippet": "Task.Delay(50, reconTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976722+00:00" + }, + { + "hash": "d41924dc5bac95f9", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Mqtt/MqttKeepAliveTests.cs", + "lineNumber": 23, + "codeSnippet": "Task.Delay(2000)", + "message": "Test uses Task.Delay(2000) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.976737+00:00" + }, + { + "hash": "502d880bb72f85f4", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzParityTests.cs", + "lineNumber": 41, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:15.998816+00:00" + }, + { + "hash": "e987c47cfcd4ce40", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzParityTests.cs", + "lineNumber": 42, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.99882+00:00" + }, + { + "hash": "d5a9de3f299593cb", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzParityTests.cs", + "lineNumber": 78, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.998821+00:00" + }, + { + "hash": "011b0b224a7e2724", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzParityTests.cs", + "lineNumber": 152, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:15.998823+00:00" + }, + { + "hash": "95ff38fab344a5d4", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorRoutezTests.cs", + "lineNumber": 232, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.006964+00:00" + }, + { + "hash": "b9415f9e48f9c37a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorRoutezTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.006976+00:00" + }, + { + "hash": "478cb61865961a44", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/VarzParityTests.cs", + "lineNumber": 40, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.006982+00:00" + }, + { + "hash": "6e2ed82c2a989571", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/VarzParityTests.cs", + "lineNumber": 41, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.006987+00:00" + }, + { + "hash": "c9b4e193b550e477", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/VarzParityTests.cs", + "lineNumber": 110, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.00699+00:00" + }, + { + "hash": "2a220748adedabb2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Mqtt/MqttAuthParityTests.cs", + "lineNumber": 205, + "codeSnippet": "Task.Delay(2500)", + "message": "Test uses Task.Delay(2500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.011511+00:00" + }, + { + "hash": "f91ff7c3aeca524f", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/HealthzParityTests.cs", + "lineNumber": 36, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.011515+00:00" + }, + { + "hash": "39d604073ef37aa2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/HealthzParityTests.cs", + "lineNumber": 37, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.011516+00:00" + }, + { + "hash": "c252243b5da88c97", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/PprofEndpointTests.cs", + "lineNumber": 58, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.020809+00:00" + }, + { + "hash": "7976330c81d1cd43", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/PprofEndpointTests.cs", + "lineNumber": 62, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.020817+00:00" + }, + { + "hash": "c9aaf30266eb88b6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzParityFilterTests.cs", + "lineNumber": 73, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.028161+00:00" + }, + { + "hash": "e572c4a9b05a28a7", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzFilterTests.cs", + "lineNumber": 50, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.037126+00:00" + }, + { + "hash": "83677642f8119325", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzFilterTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.037136+00:00" + }, + { + "hash": "edb78af80795956e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzFilterTests.cs", + "lineNumber": 120, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.037145+00:00" + }, + { + "hash": "ddf22a3b4ad2ec7e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzFilterTests.cs", + "lineNumber": 172, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.037156+00:00" + }, + { + "hash": "2ef308dc312ea285", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzFilterTests.cs", + "lineNumber": 288, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.0372+00:00" + }, + { + "hash": "55ea8718d32918fb", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/ConnzFilterTests.cs", + "lineNumber": 414, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.037227+00:00" + }, + { + "hash": "9266b10284936c31", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorSubszTests.cs", + "lineNumber": 49, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.040162+00:00" + }, + { + "hash": "496b468d3ccfe8a5", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorSubszTests.cs", + "lineNumber": 50, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.040168+00:00" + }, + { + "hash": "49c6d5fad4ad97d6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorSubszTests.cs", + "lineNumber": 84, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.040173+00:00" + }, + { + "hash": "96f1ad1cb34c65c6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorSubszTests.cs", + "lineNumber": 143, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.04018+00:00" + }, + { + "hash": "fad1ad8732478b31", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.0602+00:00" + }, + { + "hash": "e91195ea5478731b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.060208+00:00" + }, + { + "hash": "116b6fa88e209ff0", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorStackszTests.cs", + "lineNumber": 50, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.066247+00:00" + }, + { + "hash": "e7ad00844b11bc60", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorStackszTests.cs", + "lineNumber": 51, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.066256+00:00" + }, + { + "hash": "3c0482d38d421e32", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorStackszTests.cs", + "lineNumber": 283, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.066261+00:00" + }, + { + "hash": "2c78f157d9b692b1", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Mqtt/MqttAdvancedParityTests.cs", + "lineNumber": 767, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.067649+00:00" + }, + { + "hash": "c60940e87ca6f002", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 338, + "codeSnippet": "Task.Delay(50, waitTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077706+00:00" + }, + { + "hash": "49162782061d686a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 338, + "codeSnippet": "Task.Delay(50, waitTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077711+00:00" + }, + { + "hash": "5c3f6c096fd7b027", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 536, + "codeSnippet": "Enumerable.Range(0, 8).Select(i => Task.Run(async () =>\n {\n await using var conn = new NatsConnection(new NatsOpts\n {\n Url = $\"nats://127.0.0.1:{fx.Spoke.Port}\",\n });\n await conn.ConnectAsync();\n var sub = await conn.SubscribeCoreAsync($\"concurrent.leaf.{i}\");\n await conn.PingAsync();\n await Task.Delay(30);\n await sub.DisposeAsync();\n await conn.PingAsync();\n })).ToList()", + "message": "Test uses Task.Delay(?) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077737+00:00" + }, + { + "hash": "805b7859619840dc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 545, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077739+00:00" + }, + { + "hash": "060ca7e776b0aa8b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 551, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077741+00:00" + }, + { + "hash": "4e9aff162ca2ca5d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 834, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077742+00:00" + }, + { + "hash": "8f5e9e1150039c15", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 860, + "codeSnippet": "Task.Delay(150)", + "message": "Test uses Task.Delay(150) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077743+00:00" + }, + { + "hash": "f2676e117dfc3b06", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 1685, + "codeSnippet": "Task.Delay(20, cts.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077745+00:00" + }, + { + "hash": "6f19a6d62b9b85da", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 1685, + "codeSnippet": "Task.Delay(20, cts.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077746+00:00" + }, + { + "hash": "84a89a499a177c2a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 1745, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077748+00:00" + }, + { + "hash": "a71cfeb401ef0797", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/LeafNode/LeafNodeGoParityTests.cs", + "lineNumber": 1745, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.07775+00:00" + }, + { + "hash": "eae29fc2415c706e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteInterestIdempotencyTests.cs", + "lineNumber": 48, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077758+00:00" + }, + { + "hash": "1c9b26a277cdaa71", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteInterestIdempotencyTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.077759+00:00" + }, + { + "hash": "66928e72f92d3f5f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Events/ServerEventTests.cs", + "lineNumber": 125, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.080107+00:00" + }, + { + "hash": "0925e0f6f8c4ce55", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RoutePoolAccountTests.cs", + "lineNumber": 128, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106547+00:00" + }, + { + "hash": "158664104c2610fc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 63, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106553+00:00" + }, + { + "hash": "5289c44fdbbcced9", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 63, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106554+00:00" + }, + { + "hash": "4aa52d12b9ee1953", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 130, + "codeSnippet": "Task.Delay(50, routeTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106556+00:00" + }, + { + "hash": "2e67aafd409d1d81", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 130, + "codeSnippet": "Task.Delay(50, routeTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106559+00:00" + }, + { + "hash": "972c08923564ea82", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 148, + "codeSnippet": "Task.Delay(50, interestTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106561+00:00" + }, + { + "hash": "d1d1626e4b3f03f0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 148, + "codeSnippet": "Task.Delay(50, interestTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106563+00:00" + }, + { + "hash": "b3ea3c12ecdc5e26", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 227, + "codeSnippet": "Task.Delay(50, timeout1.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106565+00:00" + }, + { + "hash": "d6be0cce990ed18c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 227, + "codeSnippet": "Task.Delay(50, timeout1.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106566+00:00" + }, + { + "hash": "3f3cce6b1e57285c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 242, + "codeSnippet": "Task.Delay(50, dropTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106567+00:00" + }, + { + "hash": "7aca01bef923191a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 242, + "codeSnippet": "Task.Delay(50, dropTimeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106568+00:00" + }, + { + "hash": "9ad4c0e0aa8f6b03", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 270, + "codeSnippet": "Task.Delay(50, timeout2.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106569+00:00" + }, + { + "hash": "a662823ea670d669", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigTests.cs", + "lineNumber": 270, + "codeSnippet": "Task.Delay(50, timeout2.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.10657+00:00" + }, + { + "hash": "f621a7ae30b9cf57", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorVarzTests.cs", + "lineNumber": 51, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.106575+00:00" + }, + { + "hash": "5924889fa4e4da92", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorVarzTests.cs", + "lineNumber": 52, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106576+00:00" + }, + { + "hash": "90b32645de79256d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorVarzTests.cs", + "lineNumber": 99, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106577+00:00" + }, + { + "hash": "8e62385345f31489", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorVarzTests.cs", + "lineNumber": 441, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106581+00:00" + }, + { + "hash": "fd5ed1aecf41f381", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorVarzTests.cs", + "lineNumber": 444, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106582+00:00" + }, + { + "hash": "1841e75059c08874", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 384, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.106761+00:00" + }, + { + "hash": "3c68bc7311048eb5", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(30, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106766+00:00" + }, + { + "hash": "dbbc52437cb784fe", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(30, timeout.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106768+00:00" + }, + { + "hash": "d34640de81301a5a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 62, + "codeSnippet": "Task.Delay(30, dropTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106769+00:00" + }, + { + "hash": "014b96b4ec014252", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 62, + "codeSnippet": "Task.Delay(30, dropTimeout.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.10677+00:00" + }, + { + "hash": "cc14cf6a67f9213c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 84, + "codeSnippet": "Task.Delay(30, reconTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106771+00:00" + }, + { + "hash": "f8b24c6c9904030e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 84, + "codeSnippet": "Task.Delay(30, reconTimeout.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106772+00:00" + }, + { + "hash": "582e88eaf8dc617f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 112, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106774+00:00" + }, + { + "hash": "4da1321af774dbb6", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 189, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106776+00:00" + }, + { + "hash": "c4df411c8d3ccfc2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 289, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.10678+00:00" + }, + { + "hash": "c34e2a83f5f67282", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 611, + "codeSnippet": "Task.Delay(30, waitInitial.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106783+00:00" + }, + { + "hash": "5846e196e2a4bc6f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 611, + "codeSnippet": "Task.Delay(30, waitInitial.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106784+00:00" + }, + { + "hash": "b731b0a7fd982a4a", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 621, + "codeSnippet": "Task.Delay(30, waitDrop.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106786+00:00" + }, + { + "hash": "8e527eff8c307de7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 621, + "codeSnippet": "Task.Delay(30, waitDrop.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106787+00:00" + }, + { + "hash": "b995534400b2e646", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 643, + "codeSnippet": "Task.Delay(30, waitRecon.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106788+00:00" + }, + { + "hash": "89f642a4f8e0c7aa", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 643, + "codeSnippet": "Task.Delay(30, waitRecon.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.10679+00:00" + }, + { + "hash": "8348a5a48c466b4f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 765, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(3))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(3)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106793+00:00" + }, + { + "hash": "3928152d8910ee83", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 867, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106796+00:00" + }, + { + "hash": "d3da8355e7f2a972", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 989, + "codeSnippet": "Task.Delay(30, intTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106797+00:00" + }, + { + "hash": "768d7e582f7753df", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 989, + "codeSnippet": "Task.Delay(30, intTimeout.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106798+00:00" + }, + { + "hash": "dd912bada09f6a5d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 1051, + "codeSnippet": "Task.Delay(30, waitTimeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.106799+00:00" + }, + { + "hash": "954605b1553a58d0", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs", + "lineNumber": 1051, + "codeSnippet": "Task.Delay(30, waitTimeout.Token)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.1068+00:00" + }, + { + "hash": "d1afbd963e91e0c4", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RaftTransportPersistenceTests.cs", + "lineNumber": 83, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.113405+00:00" + }, + { + "hash": "40f5e8ebce5159da", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 43, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.125354+00:00" + }, + { + "hash": "a5fb226d38342b2e", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 44, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125357+00:00" + }, + { + "hash": "04db674a3d715897", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 70, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125358+00:00" + }, + { + "hash": "5f28fb84ad9c03ed", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 93, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125359+00:00" + }, + { + "hash": "1b2e12748bf3d6e1", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 63, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.125577+00:00" + }, + { + "hash": "8db50f3a15549d74", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125588+00:00" + }, + { + "hash": "16fbcbf09b3fe5a3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 97, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125592+00:00" + }, + { + "hash": "7505ddbce2be9b18", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 292, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125614+00:00" + }, + { + "hash": "42ba8e7d1ebdf691", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 332, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125621+00:00" + }, + { + "hash": "74e19751976dc858", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 479, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125641+00:00" + }, + { + "hash": "748fc2c9db46b347", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorConnzTests.cs", + "lineNumber": 537, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.125657+00:00" + }, + { + "hash": "a0c598efefdd1666", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.132425+00:00" + }, + { + "hash": "c0825820c235f8eb", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.132428+00:00" + }, + { + "hash": "c819cf7ce1ad7920", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigValidationTests.cs", + "lineNumber": 54, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.136952+00:00" + }, + { + "hash": "0709c31ebd836322", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigValidationTests.cs", + "lineNumber": 54, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.13696+00:00" + }, + { + "hash": "7784c53a20a6ee5e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigValidationTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(20, cts.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.136965+00:00" + }, + { + "hash": "d523a7ec2cba9b88", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConfigValidationTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(20, cts.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.136978+00:00" + }, + { + "hash": "b9fae687643fa59b", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ResponseTrackerTests.cs", + "lineNumber": 37, + "codeSnippet": "Thread.Sleep(50)", + "message": "Test uses Thread.Sleep(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.149848+00:00" + }, + { + "hash": "fbcfdd53549a40ce", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/LeafProtocolTests.cs", + "lineNumber": 75, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.157352+00:00" + }, + { + "hash": "daca0f863da2451a", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/LeafProtocolTests.cs", + "lineNumber": 75, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.157355+00:00" + }, + { + "hash": "2a37c740b8180ce7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteForwardingTests.cs", + "lineNumber": 55, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.157856+00:00" + }, + { + "hash": "ce24b34568da8b69", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteForwardingTests.cs", + "lineNumber": 55, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.157859+00:00" + }, + { + "hash": "d5e9e60251f31965", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteForwardingTests.cs", + "lineNumber": 65, + "codeSnippet": "Task.Delay(20, cts.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.157861+00:00" + }, + { + "hash": "1024aadb1be9db27", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteForwardingTests.cs", + "lineNumber": 65, + "codeSnippet": "Task.Delay(20, cts.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.157862+00:00" + }, + { + "hash": "5b7af991bcb03590", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 292, + "codeSnippet": "catch (OperationCanceledException)\n {\n // OK -- may have already been consumed\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.175235+00:00" + }, + { + "hash": "9b028c756b5d7c62", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 166, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.175239+00:00" + }, + { + "hash": "fe17dca37dca1b3d", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.175242+00:00" + }, + { + "hash": "b88175f2265d96b4", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 252, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.175244+00:00" + }, + { + "hash": "6e3499c5812c1db5", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/ClusterStressTests.cs", + "lineNumber": 298, + "codeSnippet": "Thread.Sleep(2)", + "message": "Test uses Thread.Sleep(2) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.176004+00:00" + }, + { + "hash": "ecb8bdbc6875d89e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConnectionTests.cs", + "lineNumber": 53, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.179347+00:00" + }, + { + "hash": "de212712a12a6f38", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConnectionTests.cs", + "lineNumber": 53, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.179349+00:00" + }, + { + "hash": "589385ee6eadb7e8", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConnectionTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(20, cts.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.179351+00:00" + }, + { + "hash": "04b0b88c1859d11e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConnectionTests.cs", + "lineNumber": 64, + "codeSnippet": "Task.Delay(20, cts.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.179353+00:00" + }, + { + "hash": "524d552aa38826f3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteConnectionTests.cs", + "lineNumber": 708, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.179354+00:00" + }, + { + "hash": "e45de290d64c0323", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/LoggingTests.cs", + "lineNumber": 17, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.183286+00:00" + }, + { + "hash": "79de6938decec364", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/TlsRateLimiterTests.cs", + "lineNumber": 43, + "codeSnippet": "Task.Delay(1200)", + "message": "Test uses Task.Delay(1200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.184722+00:00" + }, + { + "hash": "7ed46551d23470c6", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 592, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.190939+00:00" + }, + { + "hash": "932c7a911ed08d53", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 703, + "codeSnippet": "catch (SocketException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.190948+00:00" + }, + { + "hash": "b9a6b0f1463a5b8f", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 97, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.190956+00:00" + }, + { + "hash": "3a12c2388bd5c0c2", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 154, + "codeSnippet": "Task.Delay(600)", + "message": "Test uses Task.Delay(600) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.190961+00:00" + }, + { + "hash": "ddaa70392624330d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 201, + "codeSnippet": "Task.Delay(400)", + "message": "Test uses Task.Delay(400) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.190964+00:00" + }, + { + "hash": "801b3398d5d2a352", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 410, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.190967+00:00" + }, + { + "hash": "58b6fd35853463bf", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 456, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.190971+00:00" + }, + { + "hash": "51448e7b9694707b", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Stress/SlowConsumerStressTests.cs", + "lineNumber": 548, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.190979+00:00" + }, + { + "hash": "27ada89583478a7e", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/SystemRequestReplyTests.cs", + "lineNumber": 147, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.198727+00:00" + }, + { + "hash": "b1bb57ad77888bf3", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/SystemEventsTests.cs", + "lineNumber": 67, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.20036+00:00" + }, + { + "hash": "7c84346cb6af1e2a", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Routes/RouteSubscriptionTests.cs", + "lineNumber": 431, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.203485+00:00" + }, + { + "hash": "4b075ae968db9f7c", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteSubscriptionTests.cs", + "lineNumber": 55, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.203487+00:00" + }, + { + "hash": "18b3e344ab36ea18", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteSubscriptionTests.cs", + "lineNumber": 55, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.203489+00:00" + }, + { + "hash": "0e068f1ebcff20ca", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteSubscriptionTests.cs", + "lineNumber": 65, + "codeSnippet": "Task.Delay(20, cts.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.203491+00:00" + }, + { + "hash": "75f94bdd715832d4", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Routes/RouteSubscriptionTests.cs", + "lineNumber": 65, + "codeSnippet": "Task.Delay(20, cts.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.203493+00:00" + }, + { + "hash": "d1e3e43971012fa8", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/Internal/SubjectTree/SubjectTreeTests.cs", + "lineNumber": 1757, + "codeSnippet": "Fact(Skip = \"GSL (GenericSubjectList) not yet implemented\")", + "message": "Test method 'TestSubjectTreeGSLIntersection' is disabled: GSL (GenericSubjectList) not yet implemented", + "baselinedAt": "2026-02-25T04:56:16.209838+00:00" + }, + { + "hash": "d4d18fe6b6781e1c", + "ruleId": "SW001", + "filePath": "tests/NATS.Server.Tests/Internal/SubjectTree/SubjectTreeTests.cs", + "lineNumber": 1769, + "codeSnippet": "Fact(Skip = \"Performance test - enable with --results flag\")", + "message": "Test method 'TestSubjectTreeMatchAllPerf' is disabled: Performance test - enable with --results flag", + "baselinedAt": "2026-02-25T04:56:16.209841+00:00" + }, + { + "hash": "8d653da1df81402e", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 270, + "codeSnippet": "Task.Delay(delayMs)", + "message": "Test uses Task.Delay(delayMs) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.217748+00:00" + }, + { + "hash": "242f6f71035f827d", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 290, + "codeSnippet": "Task.Delay(25, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.217753+00:00" + }, + { + "hash": "0856814a355ecc03", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 290, + "codeSnippet": "Task.Delay(25, timeout.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.217755+00:00" + }, + { + "hash": "dfb6e091296a8d28", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.23138+00:00" + }, + { + "hash": "a70bafee9a34fafc", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.231383+00:00" + }, + { + "hash": "02fa6de050ddc191", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.231392+00:00" + }, + { + "hash": "bd00c8db06321dfa", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.231393+00:00" + }, + { + "hash": "028d659282905ff7", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStreamStreamPolicyParityTests.cs", + "lineNumber": 33, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.237497+00:00" + }, + { + "hash": "51834bcf6e4e2a3b", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/AccountIsolationTests.cs", + "lineNumber": 101, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — no message received (timeout)\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.244401+00:00" + }, + { + "hash": "ae65676382703947", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 95, + "codeSnippet": "catch (HttpRequestException)\n {\n // server not ready\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.248924+00:00" + }, + { + "hash": "e328f7c72ed73437", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.248928+00:00" + }, + { + "hash": "4dd5b546a2012256", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStreamConsumerBackoffParityTests.cs", + "lineNumber": 36, + "codeSnippet": "Task.Delay(2)", + "message": "Test uses Task.Delay(2) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.263891+00:00" + }, + { + "hash": "ad47a9b2d42a98c6", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 37, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.263896+00:00" + }, + { + "hash": "32118080d5833f6c", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 38, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.263898+00:00" + }, + { + "hash": "7494fcb2eff43be5", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 69, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.2639+00:00" + }, + { + "hash": "4237fdb7a0dedc05", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStreamStoreExpiryParityTests.cs", + "lineNumber": 18, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.263907+00:00" + }, + { + "hash": "3b8968e960588cec", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.263908+00:00" + }, + { + "hash": "8ed9f433f322f6a8", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.26391+00:00" + }, + { + "hash": "67167200fe365fee", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/GatewayProtocolTests.cs", + "lineNumber": 77, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.267532+00:00" + }, + { + "hash": "3a16eae3a546f549", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/GatewayProtocolTests.cs", + "lineNumber": 77, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.267538+00:00" + }, + { + "hash": "2fca9f991b7053f4", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/MonitorClusterEndpointTests.cs", + "lineNumber": 76, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.276393+00:00" + }, + { + "hash": "d406d9475b1f4921", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/MonitorClusterEndpointTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.276396+00:00" + }, + { + "hash": "face8c8cbcaf1324", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 40, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.285927+00:00" + }, + { + "hash": "e2376e7bed26ade1", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 41, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.285931+00:00" + }, + { + "hash": "30b87d065c68d3e1", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 91, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.285933+00:00" + }, + { + "hash": "4a0b0492d21ed857", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 195, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.28594+00:00" + }, + { + "hash": "6bf477f61f7e4537", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/WebSocket/WsIntegrationTests.cs", + "lineNumber": 71, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.285948+00:00" + }, + { + "hash": "5e26ef4d99e2f925", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/JetStream/JetStreamConsumerRuntimeParityTests.cs", + "lineNumber": 12, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.28595+00:00" + }, + { + "hash": "e0ccf418c01d9100", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/Auth/ExternalAuthCalloutTests.cs", + "lineNumber": 54, + "codeSnippet": "Task.Delay(delay, ct)", + "message": "Test uses Task.Delay(delay) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.294917+00:00" + }, + { + "hash": "54777c1cfcaa2c9d", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/Monitoring/PprofEndpointTests.cs", + "lineNumber": 58, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.314+00:00" + }, + { + "hash": "b6755d267d38d00a", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/Monitoring/PprofEndpointTests.cs", + "lineNumber": 62, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.314005+00:00" + }, + { + "hash": "8a871a9981485c8a", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/Monitoring/ConnzParityFilterTests.cs", + "lineNumber": 73, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.314006+00:00" + }, + { + "hash": "947a193b0ebb6ea8", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 205, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal -- client connected or was cancelled\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.35388+00:00" + }, + { + "hash": "293c173325d896da", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 246, + "codeSnippet": "catch (SocketException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.353884+00:00" + }, + { + "hash": "89176b69e0230f73", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 247, + "codeSnippet": "catch (ObjectDisposedException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.353886+00:00" + }, + { + "hash": "8223086d9289dee3", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 504, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.353887+00:00" + }, + { + "hash": "a450874a50aeb35c", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 774, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.35389+00:00" + }, + { + "hash": "bbc5dcbe8d726354", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 892, + "codeSnippet": "catch (Exception)\n {\n // Best effort flush — don't let it prevent close\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.353896+00:00" + }, + { + "hash": "420dc30091b0e36f", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 448, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Timeout is acceptable — check what we got\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.3539+00:00" + }, + { + "hash": "89ef26861cddbd51", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 522, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.353901+00:00" + }, + { + "hash": "cedb19e87ededd8b", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 606, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.353903+00:00" + }, + { + "hash": "36939c2b27366ed9", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 683, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.353905+00:00" + }, + { + "hash": "3e70cb525a967b3c", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 725, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(10))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(10)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.353907+00:00" + }, + { + "hash": "be3a0f4bb31a77ff", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 772, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.353908+00:00" + }, + { + "hash": "8854aa04099726d4", + "ruleId": "SW004", + "filePath": ".worktrees/full-repo-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 786, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(15))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(15)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.353909+00:00" + }, + { + "hash": "a52d185d054cb0a8", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/JetStream/Api/Handlers/DirectApiHandlers.cs", + "lineNumber": 55, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.361014+00:00" + }, + { + "hash": "4e5ae38911767777", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/JetStream/Api/Handlers/ConsumerApiHandlers.cs", + "lineNumber": 274, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.374866+00:00" + }, + { + "hash": "7a1092b1d1f3c617", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsServer.cs", + "lineNumber": 213, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.380643+00:00" + }, + { + "hash": "b2720a7e74988599", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/NatsServer.cs", + "lineNumber": 714, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.380647+00:00" + }, + { + "hash": "025c00a200d33963", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/JetStream/Api/Handlers/StreamApiHandlers.cs", + "lineNumber": 311, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.381084+00:00" + }, + { + "hash": "e8af9036acc1f207", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/JetStream/Api/Handlers/StreamApiHandlers.cs", + "lineNumber": 331, + "codeSnippet": "catch (FormatException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.381087+00:00" + }, + { + "hash": "fe79e633c0bacd23", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/Auth/Jwt/NatsJwt.cs", + "lineNumber": 176, + "codeSnippet": "catch (FormatException)\n {\n // Fall through to standard base64\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.384144+00:00" + }, + { + "hash": "2ec2871088f8a5c8", + "ruleId": "SW003", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 495, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.404578+00:00" + }, + { + "hash": "8e18ff87c35ae7a1", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 496, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404581+00:00" + }, + { + "hash": "58f2be0640fafa56", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 559, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404583+00:00" + }, + { + "hash": "945394b81f631ca3", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 601, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404584+00:00" + }, + { + "hash": "edb5f8f1ffe98511", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 668, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404587+00:00" + }, + { + "hash": "e732a63ce670c8a7", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 759, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.40459+00:00" + }, + { + "hash": "e241a8dcc3a9ea6d", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 794, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404592+00:00" + }, + { + "hash": "c080b9d5e08e56bc", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 879, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404597+00:00" + }, + { + "hash": "87dc12d3a5f1b3d9", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 1527, + "codeSnippet": "Task.Delay(10)", + "message": "Test uses Task.Delay(10) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404613+00:00" + }, + { + "hash": "ce073118b9a1cdec", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 1571, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404615+00:00" + }, + { + "hash": "dbb7f25f9592db3e", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 1575, + "codeSnippet": "Task.Delay(400)", + "message": "Test uses Task.Delay(400) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404617+00:00" + }, + { + "hash": "6a90b1c9309012cb", + "ruleId": "SW004", + "filePath": "tests/NATS.Server.Tests/Monitoring/MonitorGoParityTests.cs", + "lineNumber": 1787, + "codeSnippet": "Task.Delay(55)", + "message": "Test uses Task.Delay(55) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.404623+00:00" + }, + { + "hash": "561a233e8adb4d03", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/LeafNodes/LeafNodeManager.cs", + "lineNumber": 194, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.404626+00:00" + }, + { + "hash": "0b4e1673714e3505", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/Gateways/GatewayManager.cs", + "lineNumber": 206, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.405871+00:00" + }, + { + "hash": "346e90b4e051ef28", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/Monitoring/VarzHandler.cs", + "lineNumber": 61, + "codeSnippet": "catch\n {\n // cert load failure — leave field as default\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.416794+00:00" + }, + { + "hash": "2a7dac4ec48a2bc3", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/Events/InternalEventSystem.cs", + "lineNumber": 288, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.42608+00:00" + }, + { + "hash": "8c9b076d488d093e", + "ruleId": "SW003", + "filePath": ".worktrees/full-repo-remaining-parity/src/NATS.Server/Routes/RouteManager.cs", + "lineNumber": 236, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Shutdown path.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.427657+00:00" + }, + { + "hash": "b84f40a7d1114384", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ResponseTrackerTests.cs", + "lineNumber": 37, + "codeSnippet": "Thread.Sleep(50)", + "message": "Test uses Thread.Sleep(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.428063+00:00" + }, + { + "hash": "7f2b6e12ddd624c3", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.431341+00:00" + }, + { + "hash": "f8925557e1d7433a", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.431344+00:00" + }, + { + "hash": "153b974ecebd956e", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 43, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.435641+00:00" + }, + { + "hash": "06931220bf6b1a18", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 44, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.435643+00:00" + }, + { + "hash": "33faaddd6efd0262", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 70, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.435645+00:00" + }, + { + "hash": "3000fbba4f3ba6e6", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 93, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.435647+00:00" + }, + { + "hash": "b6dff414773d489d", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/LoggingTests.cs", + "lineNumber": 17, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.435649+00:00" + }, + { + "hash": "93dcdb785cf2c517", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/TlsRateLimiterTests.cs", + "lineNumber": 43, + "codeSnippet": "Task.Delay(1200)", + "message": "Test uses Task.Delay(1200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.445276+00:00" + }, + { + "hash": "bb8b4fd35e761171", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 78, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.453249+00:00" + }, + { + "hash": "7f868fcfa1747681", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 78, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.453252+00:00" + }, + { + "hash": "058e41550294c3b1", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/SystemEventsTests.cs", + "lineNumber": 67, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.453258+00:00" + }, + { + "hash": "f59c89740bb3be9b", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/SystemRequestReplyTests.cs", + "lineNumber": 147, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.45326+00:00" + }, + { + "hash": "d9e3615be261220f", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 292, + "codeSnippet": "catch (OperationCanceledException)\n {\n // OK -- may have already been consumed\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.453262+00:00" + }, + { + "hash": "48953f9fd0db1c23", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 166, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.453264+00:00" + }, + { + "hash": "8268ddba76055e64", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.453267+00:00" + }, + { + "hash": "5c3fd6fbb6f89276", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 252, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.453268+00:00" + }, + { + "hash": "16455458ff69c003", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 153, + "codeSnippet": "Task.Delay(delayMs)", + "message": "Test uses Task.Delay(delayMs) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.459264+00:00" + }, + { + "hash": "57f39217f9b4ab33", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 173, + "codeSnippet": "Task.Delay(25, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.459267+00:00" + }, + { + "hash": "d082d7518264ac71", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 173, + "codeSnippet": "Task.Delay(25, timeout.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.459269+00:00" + }, + { + "hash": "e6fa0079cd45ac2e", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.460819+00:00" + }, + { + "hash": "a017546fffb33645", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.460822+00:00" + }, + { + "hash": "036c4a462d140377", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/AccountIsolationTests.cs", + "lineNumber": 101, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — no message received (timeout)\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.471707+00:00" + }, + { + "hash": "0ca3dd356bf17b1d", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 95, + "codeSnippet": "catch (HttpRequestException)\n {\n // server not ready\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.489453+00:00" + }, + { + "hash": "63b92e63dbd508e9", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.489457+00:00" + }, + { + "hash": "6667d57287bbfa1d", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.489459+00:00" + }, + { + "hash": "0eaeab8fb6e1e5c6", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.48946+00:00" + }, + { + "hash": "37392dd7cdcaae34", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 37, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.489462+00:00" + }, + { + "hash": "e97a20280a1ecfc8", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 38, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.489464+00:00" + }, + { + "hash": "9b9aa192af4aeb51", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 69, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.489465+00:00" + }, + { + "hash": "8fe2a461c68bbf7c", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 40, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.506022+00:00" + }, + { + "hash": "62bb1752300f6fa1", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 41, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.506027+00:00" + }, + { + "hash": "f19b4c3c9972672b", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 91, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.506029+00:00" + }, + { + "hash": "ba7313829e6aadeb", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 195, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.506035+00:00" + }, + { + "hash": "c69cd5175cd93d58", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/WebSocket/WsIntegrationTests.cs", + "lineNumber": 71, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.507537+00:00" + }, + { + "hash": "2b1385f6c13540e2", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 193, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal -- client connected or was cancelled\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.538062+00:00" + }, + { + "hash": "d503f2e06e30960e", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 234, + "codeSnippet": "catch (SocketException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.538069+00:00" + }, + { + "hash": "9eebe3fe099e635c", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 235, + "codeSnippet": "catch (ObjectDisposedException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.538072+00:00" + }, + { + "hash": "c0dc0e2409011377", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 490, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.538075+00:00" + }, + { + "hash": "60a2bc5eb51b2705", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 758, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.538079+00:00" + }, + { + "hash": "0c074db7295a2e0e", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 876, + "codeSnippet": "catch (Exception)\n {\n // Best effort flush — don't let it prevent close\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.53809+00:00" + }, + { + "hash": "b5f5f3ebe7b3d5c6", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsServer.cs", + "lineNumber": 192, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.558903+00:00" + }, + { + "hash": "6f668e175a967827", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/NatsServer.cs", + "lineNumber": 676, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.558906+00:00" + }, + { + "hash": "3ea3e68f04fadc33", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/Auth/Jwt/NatsJwt.cs", + "lineNumber": 176, + "codeSnippet": "catch (FormatException)\n {\n // Fall through to standard base64\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.559663+00:00" + }, + { + "hash": "cd0c9f5b53434d27", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 448, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Timeout is acceptable — check what we got\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.585312+00:00" + }, + { + "hash": "cd2c83e463db1851", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 522, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.585316+00:00" + }, + { + "hash": "6850a23190516564", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 606, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.585318+00:00" + }, + { + "hash": "66bfe196f405d705", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 683, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.585321+00:00" + }, + { + "hash": "48fd0a72b6edfdaa", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 725, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(10))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(10)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.585322+00:00" + }, + { + "hash": "0b1fa06465122319", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 772, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.585324+00:00" + }, + { + "hash": "839ee61f44f38f7b", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-remaining-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 786, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(15))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(15)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.585325+00:00" + }, + { + "hash": "4b051db918bd16ec", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/Monitoring/VarzHandler.cs", + "lineNumber": 61, + "codeSnippet": "catch\n {\n // cert load failure — leave field as default\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.596263+00:00" + }, + { + "hash": "29e49e4cdb51be39", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/Routes/RouteManager.cs", + "lineNumber": 193, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Shutdown path.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.597448+00:00" + }, + { + "hash": "458fd6359c9de739", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-remaining-parity/src/NATS.Server/Events/InternalEventSystem.cs", + "lineNumber": 288, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.599457+00:00" + }, + { + "hash": "c8d62b4a29e218b8", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ResponseTrackerTests.cs", + "lineNumber": 37, + "codeSnippet": "Thread.Sleep(50)", + "message": "Test uses Thread.Sleep(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.601657+00:00" + }, + { + "hash": "16c0252d287f4a6c", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.602322+00:00" + }, + { + "hash": "102f7a2b57907194", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.602328+00:00" + }, + { + "hash": "f47d96937e5fb35e", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 43, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.602336+00:00" + }, + { + "hash": "30ceb544f6dc38b8", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 44, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.602339+00:00" + }, + { + "hash": "f9c782bdef7b8521", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 70, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.602342+00:00" + }, + { + "hash": "712b7b6795d6abbe", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 93, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.602345+00:00" + }, + { + "hash": "41801573b32b1abb", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/TlsRateLimiterTests.cs", + "lineNumber": 43, + "codeSnippet": "Task.Delay(1200)", + "message": "Test uses Task.Delay(1200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.608817+00:00" + }, + { + "hash": "1771ea3168839bbd", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/LoggingTests.cs", + "lineNumber": 17, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.609314+00:00" + }, + { + "hash": "3e637e37ce0d675c", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 78, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.614025+00:00" + }, + { + "hash": "7982a43758bfd582", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 78, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.614031+00:00" + }, + { + "hash": "47765304c0d6184e", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 292, + "codeSnippet": "catch (OperationCanceledException)\n {\n // OK -- may have already been consumed\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.614443+00:00" + }, + { + "hash": "6ab8cfa8c12d5ed4", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 166, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.614449+00:00" + }, + { + "hash": "c6e99a74b3e0bf21", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.614453+00:00" + }, + { + "hash": "9dd32167052ec731", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 252, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.614454+00:00" + }, + { + "hash": "137592722c756869", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 153, + "codeSnippet": "Task.Delay(delayMs)", + "message": "Test uses Task.Delay(delayMs) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.623985+00:00" + }, + { + "hash": "b1a1f48c507960af", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 173, + "codeSnippet": "Task.Delay(25, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.623989+00:00" + }, + { + "hash": "8163d6019594d15f", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 173, + "codeSnippet": "Task.Delay(25, timeout.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.623991+00:00" + }, + { + "hash": "f519e6986c89cd00", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.624942+00:00" + }, + { + "hash": "e0a616c165d2ae4a", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.624946+00:00" + }, + { + "hash": "8fbde4bacac42dcb", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/AccountIsolationTests.cs", + "lineNumber": 101, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — no message received (timeout)\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.636065+00:00" + }, + { + "hash": "72ca417453312607", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 95, + "codeSnippet": "catch (HttpRequestException)\n {\n // server not ready\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.640585+00:00" + }, + { + "hash": "c611ceab99cc0e75", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.640607+00:00" + }, + { + "hash": "b63b66cdc9ff8931", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.650875+00:00" + }, + { + "hash": "b9c30ed3a89d3904", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.650886+00:00" + }, + { + "hash": "a9ec602d1e12ab59", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 37, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.651772+00:00" + }, + { + "hash": "f9595c9fbae709c2", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 38, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.651776+00:00" + }, + { + "hash": "7a827f7a0ec356f5", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 69, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.651779+00:00" + }, + { + "hash": "4f6ba09bb4db716f", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 40, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.651864+00:00" + }, + { + "hash": "598e48581a021b28", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 41, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.651872+00:00" + }, + { + "hash": "07295704ff1b6d8a", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 91, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.651875+00:00" + }, + { + "hash": "13cd2d0a8acc28f3", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 195, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.651893+00:00" + }, + { + "hash": "332a07c400f73205", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/WebSocket/WsIntegrationTests.cs", + "lineNumber": 71, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.6586+00:00" + }, + { + "hash": "22e5ac6c383aa1b0", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsClient.cs", + "lineNumber": 190, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal -- client connected or was cancelled\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.675355+00:00" + }, + { + "hash": "b07c9de3819cdce3", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsClient.cs", + "lineNumber": 231, + "codeSnippet": "catch (SocketException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.675364+00:00" + }, + { + "hash": "86b0aaef99fb8faa", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsClient.cs", + "lineNumber": 232, + "codeSnippet": "catch (ObjectDisposedException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.67537+00:00" + }, + { + "hash": "affe6828059b8078", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsClient.cs", + "lineNumber": 483, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.675374+00:00" + }, + { + "hash": "df8d059c30e3f8e8", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsClient.cs", + "lineNumber": 751, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.67538+00:00" + }, + { + "hash": "0eb4a033f2188392", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsClient.cs", + "lineNumber": 869, + "codeSnippet": "catch (Exception)\n {\n // Best effort flush — don't let it prevent close\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.67539+00:00" + }, + { + "hash": "09f847a017ff13f5", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsServer.cs", + "lineNumber": 173, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.687271+00:00" + }, + { + "hash": "e5c2af8943d1d819", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/NatsServer.cs", + "lineNumber": 646, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.687276+00:00" + }, + { + "hash": "abec6d0ea5f43689", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 448, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Timeout is acceptable — check what we got\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.690433+00:00" + }, + { + "hash": "b7dff1159519237a", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 522, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.69044+00:00" + }, + { + "hash": "929e27f995a03cf0", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 606, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.690443+00:00" + }, + { + "hash": "98bfa78beeab9233", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 683, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.69045+00:00" + }, + { + "hash": "d223fda493a34fbe", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 725, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(10))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(10)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.690453+00:00" + }, + { + "hash": "830bcae7e8b94d6e", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 772, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.690456+00:00" + }, + { + "hash": "3cf9c68ad1d421ca", + "ruleId": "SW004", + "filePath": ".worktrees/jetstream-full-parity-executeplan/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 786, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(15))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(15)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.690458+00:00" + }, + { + "hash": "fa0255dad08def39", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/Auth/Jwt/NatsJwt.cs", + "lineNumber": 176, + "codeSnippet": "catch (FormatException)\n {\n // Fall through to standard base64\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.699993+00:00" + }, + { + "hash": "cb8999d196ee468b", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/Monitoring/VarzHandler.cs", + "lineNumber": 61, + "codeSnippet": "catch\n {\n // cert load failure — leave field as default\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.714415+00:00" + }, + { + "hash": "9b0158a573c94bed", + "ruleId": "SW003", + "filePath": ".worktrees/jetstream-full-parity-executeplan/src/NATS.Server/Routes/RouteManager.cs", + "lineNumber": 193, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Shutdown path.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.717185+00:00" + }, + { + "hash": "bd79b8dd94e5d13b", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RaftTransportPersistenceTests.cs", + "lineNumber": 83, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.720017+00:00" + }, + { + "hash": "1a3725ecf20daf4c", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 43, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.727582+00:00" + }, + { + "hash": "d644c14f6927d290", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 44, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.727586+00:00" + }, + { + "hash": "bb22cd01164602d2", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 70, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.727588+00:00" + }, + { + "hash": "711b71475fa862f8", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RttTests.cs", + "lineNumber": 93, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.727591+00:00" + }, + { + "hash": "59b3bd594e64a620", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 45, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.727598+00:00" + }, + { + "hash": "f7c20e12431390b7", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerStatsTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.727601+00:00" + }, + { + "hash": "b91c3c597dc85549", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ResponseTrackerTests.cs", + "lineNumber": 37, + "codeSnippet": "Thread.Sleep(50)", + "message": "Test uses Thread.Sleep(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.734093+00:00" + }, + { + "hash": "ec592a58866d7a43", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LeafProtocolTests.cs", + "lineNumber": 75, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.734101+00:00" + }, + { + "hash": "9371c78026709537", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LeafProtocolTests.cs", + "lineNumber": 75, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.734104+00:00" + }, + { + "hash": "5d90d5249cd63395", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 292, + "codeSnippet": "catch (OperationCanceledException)\n {\n // OK -- may have already been consumed\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.734211+00:00" + }, + { + "hash": "0259ebdad7397f0e", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 166, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.734214+00:00" + }, + { + "hash": "1d0e4ec1e121f03a", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 233, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.73422+00:00" + }, + { + "hash": "8532aa01d51f87ca", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/WriteLoopTests.cs", + "lineNumber": 252, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.734223+00:00" + }, + { + "hash": "cd0b2abfc8b9d716", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/SystemRequestReplyTests.cs", + "lineNumber": 147, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.740569+00:00" + }, + { + "hash": "052c29bcd24ab86c", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LoggingTests.cs", + "lineNumber": 17, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.740685+00:00" + }, + { + "hash": "d43ca763a566f159", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/TlsRateLimiterTests.cs", + "lineNumber": 43, + "codeSnippet": "Task.Delay(1200)", + "message": "Test uses Task.Delay(1200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.742312+00:00" + }, + { + "hash": "3323135d8140948b", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/SystemEventsTests.cs", + "lineNumber": 67, + "codeSnippet": "Task.Delay(100)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.742741+00:00" + }, + { + "hash": "e29812b81f11c6a7", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 270, + "codeSnippet": "Task.Delay(delayMs)", + "message": "Test uses Task.Delay(delayMs) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.754499+00:00" + }, + { + "hash": "bf660c4a860967f3", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 290, + "codeSnippet": "Task.Delay(25, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.754504+00:00" + }, + { + "hash": "983b84366475164f", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStreamApiFixture.cs", + "lineNumber": 290, + "codeSnippet": "Task.Delay(25, timeout.Token)", + "message": "Test uses Task.Delay(25) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.754508+00:00" + }, + { + "hash": "b65d5eb6ea0e6544", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.761357+00:00" + }, + { + "hash": "74b0bcc7eda872a4", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RouteSubscriptionPropagationTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.761366+00:00" + }, + { + "hash": "a5e213a3617f3b7e", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.76138+00:00" + }, + { + "hash": "a6f244e19fc65608", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RouteHandshakeTests.cs", + "lineNumber": 20, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.761383+00:00" + }, + { + "hash": "35fa0f5288e998d2", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/OperationalParityFixture.cs", + "lineNumber": 36, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.76185+00:00" + }, + { + "hash": "b992c281e42e2135", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStreamStreamPolicyParityTests.cs", + "lineNumber": 33, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.77175+00:00" + }, + { + "hash": "e2686e0fc45444fd", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/AccountIsolationTests.cs", + "lineNumber": 101, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Expected — no message received (timeout)\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.772338+00:00" + }, + { + "hash": "47362cd87cb930b6", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 95, + "codeSnippet": "catch (HttpRequestException)\n {\n // server not ready\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.776531+00:00" + }, + { + "hash": "8ce59efc85cda9ce", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JszMonitorTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.776535+00:00" + }, + { + "hash": "7c6853d9adaf7187", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStreamConsumerBackoffParityTests.cs", + "lineNumber": 36, + "codeSnippet": "Task.Delay(2)", + "message": "Test uses Task.Delay(2) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.781822+00:00" + }, + { + "hash": "f0679356963ec654", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 40, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.787602+00:00" + }, + { + "hash": "6168f1730967af37", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 41, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787609+00:00" + }, + { + "hash": "34e2e59d40a23c61", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 91, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787611+00:00" + }, + { + "hash": "67ce168f5f24e0b2", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/MonitorTests.cs", + "lineNumber": 195, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787625+00:00" + }, + { + "hash": "05bfaff59b831a48", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 37, + "codeSnippet": "catch (HttpRequestException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.787643+00:00" + }, + { + "hash": "347102385ad04197", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 38, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787645+00:00" + }, + { + "hash": "07856894e0903317", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/SubszTests.cs", + "lineNumber": 69, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787647+00:00" + }, + { + "hash": "da06d5ba57f14e18", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStreamStoreExpiryParityTests.cs", + "lineNumber": 18, + "codeSnippet": "Task.Delay(20)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787658+00:00" + }, + { + "hash": "43dbf613be00e0ec", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.78766+00:00" + }, + { + "hash": "4a06fb2ffa4b4729", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/RaftElectionTests.cs", + "lineNumber": 59, + "codeSnippet": "Task.Delay(20, timeout.Token)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787662+00:00" + }, + { + "hash": "95dbddd7c4bb4998", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/GatewayProtocolTests.cs", + "lineNumber": 77, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787664+00:00" + }, + { + "hash": "a9b1517c4e277d22", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/GatewayProtocolTests.cs", + "lineNumber": 77, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.787668+00:00" + }, + { + "hash": "ab815d772ad66dab", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/MonitorClusterEndpointTests.cs", + "lineNumber": 76, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.794653+00:00" + }, + { + "hash": "50cd94e8ea2793c2", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/MonitorClusterEndpointTests.cs", + "lineNumber": 80, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.794663+00:00" + }, + { + "hash": "96432a8197be7e05", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/WebSocket/WsIntegrationTests.cs", + "lineNumber": 71, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.801063+00:00" + }, + { + "hash": "fdcb3b25f0e4b821", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 448, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Timeout is acceptable — check what we got\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.802372+00:00" + }, + { + "hash": "8690f765089f0ecf", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 522, + "codeSnippet": "Task.Delay(500)", + "message": "Test uses Task.Delay(500) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.802376+00:00" + }, + { + "hash": "6d523b587c9da40d", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 606, + "codeSnippet": "Task.Delay(200)", + "message": "Test uses Task.Delay(200) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.802379+00:00" + }, + { + "hash": "10717700d81b71e3", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 683, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(5))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(5)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.802384+00:00" + }, + { + "hash": "7f508ade4cdc7faa", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 725, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(10))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(10)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.802386+00:00" + }, + { + "hash": "8ccb8887111845b4", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 772, + "codeSnippet": "Task.Delay(300)", + "message": "Test uses Task.Delay(300) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.802389+00:00" + }, + { + "hash": "41e75b4eeaa1dbc8", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/ServerTests.cs", + "lineNumber": 786, + "codeSnippet": "Task.Delay(TimeSpan.FromSeconds(15))", + "message": "Test uses Task.Delay(TimeSpan.FromSeconds(15)) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.802392+00:00" + }, + { + "hash": "c4369a9e264079b4", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStream/JetStreamConsumerRuntimeParityTests.cs", + "lineNumber": 12, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.805348+00:00" + }, + { + "hash": "ac957adf28ebfbfd", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStream/JetStreamConsumerStateMachineStrictParityTests.cs", + "lineNumber": 36, + "codeSnippet": "Task.Delay(5)", + "message": "Test uses Task.Delay(5) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.806291+00:00" + }, + { + "hash": "7e672ce255479b40", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStream/FileStoreDeepFixture.cs", + "lineNumber": 57, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.817978+00:00" + }, + { + "hash": "ceef1a93dd1f883e", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/JetStream/JetStreamDedupeWindowParityTests.cs", + "lineNumber": 25, + "codeSnippet": "Task.Delay(40)", + "message": "Test uses Task.Delay(40) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.817982+00:00" + }, + { + "hash": "d50fe926af9321f0", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Auth/ExternalAuthCalloutTests.cs", + "lineNumber": 54, + "codeSnippet": "Task.Delay(delay, ct)", + "message": "Test uses Task.Delay(delay) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.821745+00:00" + }, + { + "hash": "3599006656eef6aa", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LeafNodes/LeafInterestIdempotencyTests.cs", + "lineNumber": 48, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.82699+00:00" + }, + { + "hash": "41713f2363ae7282", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LeafNodes/LeafInterestIdempotencyTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.826994+00:00" + }, + { + "hash": "78c33c022a623bac", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LeafNodes/LeafAccountScopedDeliveryTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.828503+00:00" + }, + { + "hash": "c6f143557e5c5954", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/LeafNodes/LeafAccountScopedDeliveryTests.cs", + "lineNumber": 100, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.828507+00:00" + }, + { + "hash": "631f7de9423d3c4a", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs", + "lineNumber": 48, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.829271+00:00" + }, + { + "hash": "a19739b02c07d67d", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.829274+00:00" + }, + { + "hash": "50aef5bab086c442", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.830733+00:00" + }, + { + "hash": "7cf08a95a2b1b96d", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.830737+00:00" + }, + { + "hash": "5fe5aa1947f1231f", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Mqtt/MqttControlPacketFixture.cs", + "lineNumber": 34, + "codeSnippet": "catch (ArgumentOutOfRangeException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.833981+00:00" + }, + { + "hash": "a62fb41b5561d5ca", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Mqtt/MqttKeepAliveTests.cs", + "lineNumber": 23, + "codeSnippet": "Task.Delay(2000)", + "message": "Test uses Task.Delay(2000) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.840322+00:00" + }, + { + "hash": "1c9911f17f6ca372", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Monitoring/ConnzParityFilterTests.cs", + "lineNumber": 73, + "codeSnippet": "Task.Delay(30)", + "message": "Test uses Task.Delay(30) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.842581+00:00" + }, + { + "hash": "b8ecbb3b2873d8bf", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Monitoring/PprofEndpointTests.cs", + "lineNumber": 58, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.842586+00:00" + }, + { + "hash": "0fcbaf64fde944d9", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Monitoring/PprofEndpointTests.cs", + "lineNumber": 62, + "codeSnippet": "Task.Delay(50)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.842589+00:00" + }, + { + "hash": "a32dd7aa181b7715", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Routes/RouteAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default)", + "message": "Test uses Task.Delay(_ => { }) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.843987+00:00" + }, + { + "hash": "b4f73179f63e66bc", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Routes/RouteAccountScopedDeliveryTests.cs", + "lineNumber": 102, + "codeSnippet": "Task.Delay(50, timeout.Token)", + "message": "Test uses Task.Delay(50) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.843991+00:00" + }, + { + "hash": "69a49653d3e979f2", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Routes/RouteInterestIdempotencyTests.cs", + "lineNumber": 48, + "codeSnippet": "Task.Delay(100, timeout.Token)", + "message": "Test uses Task.Delay(100) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.844074+00:00" + }, + { + "hash": "8c90464d9b5493b6", + "ruleId": "SW004", + "filePath": ".worktrees/nats-post-strict-full-go-parity/tests/NATS.Server.Tests/Routes/RouteInterestIdempotencyTests.cs", + "lineNumber": 82, + "codeSnippet": "Task.Delay(20, ct)", + "message": "Test uses Task.Delay(20) which may indicate a timing-dependent test", + "baselinedAt": "2026-02-25T04:56:16.844077+00:00" + }, + { + "hash": "d0d219c9ff2495a1", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 205, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal -- client connected or was cancelled\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.857535+00:00" + }, + { + "hash": "432297a785e589c3", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 246, + "codeSnippet": "catch (SocketException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.857539+00:00" + }, + { + "hash": "24ce928606e2dd0a", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 247, + "codeSnippet": "catch (ObjectDisposedException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.857542+00:00" + }, + { + "hash": "d47bc86420bad5d6", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 504, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.857544+00:00" + }, + { + "hash": "ffe0ec3fe418fed9", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 774, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.857548+00:00" + }, + { + "hash": "9e1928b4d02bb253", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsClient.cs", + "lineNumber": 892, + "codeSnippet": "catch (Exception)\n {\n // Best effort flush — don't let it prevent close\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.857554+00:00" + }, + { + "hash": "1938ae33c468bd2d", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsServer.cs", + "lineNumber": 214, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.870175+00:00" + }, + { + "hash": "428a69d8671643a7", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/NatsServer.cs", + "lineNumber": 720, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.87018+00:00" + }, + { + "hash": "334c93334fdb8fdc", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/JetStream/Api/Handlers/DirectApiHandlers.cs", + "lineNumber": 55, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.87091+00:00" + }, + { + "hash": "959e86d64154b9db", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/JetStream/Api/Handlers/StreamApiHandlers.cs", + "lineNumber": 311, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.878834+00:00" + }, + { + "hash": "a5b53aa61ab905c6", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/JetStream/Api/Handlers/StreamApiHandlers.cs", + "lineNumber": 331, + "codeSnippet": "catch (FormatException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.878839+00:00" + }, + { + "hash": "246e9679763b42a7", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/JetStream/Api/Handlers/ConsumerApiHandlers.cs", + "lineNumber": 274, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.879932+00:00" + }, + { + "hash": "6a0ff43d56cd07dc", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/Auth/Jwt/NatsJwt.cs", + "lineNumber": 176, + "codeSnippet": "catch (FormatException)\n {\n // Fall through to standard base64\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.887938+00:00" + }, + { + "hash": "e6f70868c8019685", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/LeafNodes/LeafNodeManager.cs", + "lineNumber": 201, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.902725+00:00" + }, + { + "hash": "065a1b5ebb6eaece", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/Gateways/GatewayManager.cs", + "lineNumber": 213, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.904375+00:00" + }, + { + "hash": "b3006b400b31e0f9", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/Monitoring/VarzHandler.cs", + "lineNumber": 61, + "codeSnippet": "catch\n {\n // cert load failure — leave field as default\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.911057+00:00" + }, + { + "hash": "f0291f53848fdea4", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/Events/InternalEventSystem.cs", + "lineNumber": 302, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.918255+00:00" + }, + { + "hash": "eb44b807ffb91593", + "ruleId": "SW003", + "filePath": ".worktrees/nats-post-strict-full-go-parity/src/NATS.Server/Routes/RouteManager.cs", + "lineNumber": 243, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Shutdown path.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.920239+00:00" + }, + { + "hash": "605d0255c13158cf", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsClient.cs", + "lineNumber": 205, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal -- client connected or was cancelled\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.931845+00:00" + }, + { + "hash": "881fafa0293666b8", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsClient.cs", + "lineNumber": 246, + "codeSnippet": "catch (SocketException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.931848+00:00" + }, + { + "hash": "bc9bf4116d80d9d2", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsClient.cs", + "lineNumber": 247, + "codeSnippet": "catch (ObjectDisposedException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.931851+00:00" + }, + { + "hash": "23b29cc925f0b6c3", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsClient.cs", + "lineNumber": 504, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.931853+00:00" + }, + { + "hash": "796cbc0a3b2b54fb", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsClient.cs", + "lineNumber": 774, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.931855+00:00" + }, + { + "hash": "18156581c04efa06", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsClient.cs", + "lineNumber": 892, + "codeSnippet": "catch (Exception)\n {\n // Best effort flush — don't let it prevent close\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.93186+00:00" + }, + { + "hash": "505d10fe5cb6fcf9", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsServer.cs", + "lineNumber": 223, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.948231+00:00" + }, + { + "hash": "f009e92c799a4261", + "ruleId": "SW003", + "filePath": "src/NATS.Server/NatsServer.cs", + "lineNumber": 731, + "codeSnippet": "catch { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.948241+00:00" + }, + { + "hash": "51600974656ac928", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Storage/ConsumerFileStore.cs", + "lineNumber": 236, + "codeSnippet": "catch { /* best effort */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.9522+00:00" + }, + { + "hash": "3d9993714cb5d051", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Storage/ConsumerFileStore.cs", + "lineNumber": 365, + "codeSnippet": "catch (OperationCanceledException) { /* expected */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.952207+00:00" + }, + { + "hash": "d2a2548b409de9ee", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/MirrorSource/SourceCoordinator.cs", + "lineNumber": 213, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.962635+00:00" + }, + { + "hash": "f266cfc0346ebb06", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Consumers/PushConsumerEngine.cs", + "lineNumber": 235, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Shutting down — ignore\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.963477+00:00" + }, + { + "hash": "5ea9b52bb45eaec6", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/MirrorSource/MirrorCoordinator.cs", + "lineNumber": 166, + "codeSnippet": "catch (OperationCanceledException) { }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.96601+00:00" + }, + { + "hash": "ab0847ba13461d46", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Api/Handlers/DirectApiHandlers.cs", + "lineNumber": 55, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.972156+00:00" + }, + { + "hash": "9454bc96991945c2", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Api/Handlers/StreamApiHandlers.cs", + "lineNumber": 364, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.972259+00:00" + }, + { + "hash": "d26bd567c3f1b47d", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Api/Handlers/StreamApiHandlers.cs", + "lineNumber": 384, + "codeSnippet": "catch (FormatException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.972262+00:00" + }, + { + "hash": "0b0f97e938b3fc0d", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Api/Handlers/ConsumerApiHandlers.cs", + "lineNumber": 274, + "codeSnippet": "catch (JsonException)\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.972363+00:00" + }, + { + "hash": "52c4439d01fa4472", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Storage/FileStore.cs", + "lineNumber": 678, + "codeSnippet": "catch { /* best effort */ }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.975309+00:00" + }, + { + "hash": "e7d7fbe8dcf612b1", + "ruleId": "SW003", + "filePath": "src/NATS.Server/JetStream/Storage/FileStore.cs", + "lineNumber": 831, + "codeSnippet": "catch\n {\n // Skip corrupted blocks — non-critical recovery errors.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.975318+00:00" + }, + { + "hash": "7ad2b8a7e4fb5b85", + "ruleId": "SW003", + "filePath": "src/NATS.Server/Auth/Jwt/NatsJwt.cs", + "lineNumber": 176, + "codeSnippet": "catch (FormatException)\n {\n // Fall through to standard base64\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:16.989802+00:00" + }, + { + "hash": "d2829261e7da8894", + "ruleId": "SW003", + "filePath": "src/NATS.Server/LeafNodes/LeafNodeManager.cs", + "lineNumber": 309, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:17.013568+00:00" + }, + { + "hash": "5b6f962c227414df", + "ruleId": "SW003", + "filePath": "src/NATS.Server/Gateways/GatewayManager.cs", + "lineNumber": 206, + "codeSnippet": "catch\n {\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:17.018286+00:00" + }, + { + "hash": "9b1e3f50b211312c", + "ruleId": "SW003", + "filePath": "src/NATS.Server/Monitoring/VarzHandler.cs", + "lineNumber": 61, + "codeSnippet": "catch\n {\n // cert load failure — leave field as default\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:17.026309+00:00" + }, + { + "hash": "3d7ebfed35af56ab", + "ruleId": "SW003", + "filePath": "src/NATS.Server/Events/InternalEventSystem.cs", + "lineNumber": 298, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Normal shutdown\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:17.032463+00:00" + }, + { + "hash": "beb4d1f3505a7bee", + "ruleId": "SW003", + "filePath": "src/NATS.Server/Routes/RouteManager.cs", + "lineNumber": 291, + "codeSnippet": "catch (OperationCanceledException)\n {\n // Shutdown path.\n }", + "message": "Empty catch block swallows exceptions without handling", + "baselinedAt": "2026-02-25T04:56:17.033296+00:00" + } + ] } \ No newline at end of file diff --git a/src/NATS.Server/JetStream/Consumers/PullConsumerEngine.cs b/src/NATS.Server/JetStream/Consumers/PullConsumerEngine.cs index a36b513..4ec49ae 100644 --- a/src/NATS.Server/JetStream/Consumers/PullConsumerEngine.cs +++ b/src/NATS.Server/JetStream/Consumers/PullConsumerEngine.cs @@ -263,7 +263,9 @@ public sealed class PullConsumerEngine DeliverPolicy.ByStartSequence when config.OptStartSeq > 0 => config.OptStartSeq, DeliverPolicy.ByStartTime when config.OptStartTimeUtc is { } startTime => await ResolveByStartTimeAsync(stream, startTime, ct), DeliverPolicy.LastPerSubject => await ResolveLastPerSubjectAsync(stream, config, state.LastSeq, ct), - _ => 1, + // Go: consumer.go — DeliverAll starts from stream's FirstSeq (not always 1). + // After purge, FirstSeq advances past deleted messages. + _ => state.FirstSeq > 0 ? state.FirstSeq : 1, }; } diff --git a/src/NATS.Server/JetStream/StreamManager.cs b/src/NATS.Server/JetStream/StreamManager.cs index 19b62e7..5afd882 100644 --- a/src/NATS.Server/JetStream/StreamManager.cs +++ b/src/NATS.Server/JetStream/StreamManager.cs @@ -299,8 +299,11 @@ public sealed class StreamManager PruneExpiredMessages(stream, DateTime.UtcNow); + // Go: memStoreMsgSize — full message size includes subject + headers + payload + 16 bytes overhead. + var msgSize = subject.Length + payload.Length + 16; + var stateBefore = stream.Store.GetStateAsync(default).GetAwaiter().GetResult(); - if (stream.Config.MaxBytes > 0 && (long)stateBefore.Bytes + payload.Length > stream.Config.MaxBytes) + if (stream.Config.MaxBytes > 0 && (long)stateBefore.Bytes + msgSize > stream.Config.MaxBytes) { if (stream.Config.Discard == DiscardPolicy.New) { @@ -311,7 +314,7 @@ public sealed class StreamManager }; } - while ((long)stateBefore.Bytes + payload.Length > stream.Config.MaxBytes && stateBefore.FirstSeq > 0) + while ((long)stateBefore.Bytes + msgSize > stream.Config.MaxBytes && stateBefore.FirstSeq > 0) { stream.Store.RemoveAsync(stateBefore.FirstSeq, default).GetAwaiter().GetResult(); stateBefore = stream.Store.GetStateAsync(default).GetAwaiter().GetResult(); diff --git a/tests/NATS.Server.Tests/JetStream/JetStreamStreamCrudTests.cs b/tests/NATS.Server.Tests/JetStream/JetStreamStreamCrudTests.cs index 892972d..7a31b13 100644 --- a/tests/NATS.Server.Tests/JetStream/JetStreamStreamCrudTests.cs +++ b/tests/NATS.Server.Tests/JetStream/JetStreamStreamCrudTests.cs @@ -29,11 +29,14 @@ public class JetStreamStreamCrudTests [Fact] public async Task Create_stream_with_discard_new_policy() { + // Each message size = subject + payload + 16 overhead. + // Two small messages: ("dn.one"=6 + "1"=1 + 16=23) + ("dn.two"=6 + "2"=1 + 16=23) = 46 bytes. + // MaxBytes=50 allows both small messages but rejects the large third one. await using var fx = await JetStreamApiFixture.StartWithStreamConfigAsync(new StreamConfig { Name = "DN", Subjects = ["dn.>"], - MaxBytes = 30, + MaxBytes = 50, Discard = DiscardPolicy.New, }); @@ -319,15 +322,20 @@ public class JetStreamStreamCrudTests state.Messages.ShouldBeLessThanOrEqualTo(3UL); } - // Go: TestJetStreamMaxBytesIgnored server/jetstream_test.go + // Go: TestJetStreamMaxBytesIgnored server/jetstream_test.go:15778 + // Go test uses 10MB limit with 1MB messages, expects 9 messages retained. + // We use smaller sizes but same principle: MaxBytes caps stored bytes, + // accounting for per-message overhead (subject + 16 bytes). [Fact] public async Task Stream_with_max_bytes_discard_old_evicts_oldest() { + // Each stored message = subject("bytes.x"=7) + payload(20) + overhead(16) = 43 bytes. + // MaxBytes=200 holds ~4 messages (4*43=172). Publishing 20 should evict old ones. await using var fx = await JetStreamApiFixture.StartWithStreamConfigAsync(new StreamConfig { Name = "BYTES", Subjects = ["bytes.>"], - MaxBytes = 100, + MaxBytes = 200, Discard = DiscardPolicy.Old, }); @@ -335,7 +343,8 @@ public class JetStreamStreamCrudTests _ = await fx.PublishAndGetAckAsync("bytes.x", $"payload-{i:D10}"); var state = await fx.GetStreamStateAsync("BYTES"); - ((long)state.Bytes).ShouldBeLessThanOrEqualTo(100L); + ((long)state.Bytes).ShouldBeLessThanOrEqualTo(200L); + state.Messages.ShouldBeLessThan(20UL); } // Go: TestJetStreamMaxMsgsPerSubject server/jetstream_test.go diff --git a/tests/NATS.Server.Tests/JetStream/JetStreamStreamEdgeCaseTests.cs b/tests/NATS.Server.Tests/JetStream/JetStreamStreamEdgeCaseTests.cs index a2a6bda..d37646a 100644 --- a/tests/NATS.Server.Tests/JetStream/JetStreamStreamEdgeCaseTests.cs +++ b/tests/NATS.Server.Tests/JetStream/JetStreamStreamEdgeCaseTests.cs @@ -91,15 +91,17 @@ public class JetStreamStreamEdgeCaseTests [Fact] public async Task Discard_new_rejects_when_stream_at_max_bytes() { + // Message 1 = "discnew.a"(9) + payload(20) + overhead(16) = 45 bytes. + // MaxBytes=50 holds exactly one message; second is rejected. await using var fx = await JetStreamApiFixture.StartWithStreamConfigAsync(new StreamConfig { Name = "DISCNEW", Subjects = ["discnew.>"], - MaxBytes = 20, + MaxBytes = 50, Discard = DiscardPolicy.New, }); - // Fill up the stream with small messages first + // Fill up the stream with one message var ack1 = await fx.PublishAndGetAckAsync("discnew.a", "12345678901234567890"); ack1.ErrorCode.ShouldBeNull(); @@ -159,16 +161,18 @@ public class JetStreamStreamEdgeCaseTests [Fact] public async Task Max_msgs_with_discard_new_via_bytes_rejects_when_bytes_exceeded() { - // Use MaxBytes + DiscardNew to get the rejection path (pre-store check in Capture()) + // Use MaxBytes + DiscardNew to get the rejection path (pre-store check in Capture()). + // Message = "maxnew.a"(8) + "1234567890"(10) + overhead(16) = 34 bytes. + // MaxBytes=40 holds exactly one message; second is rejected. await using var fx = await JetStreamApiFixture.StartWithStreamConfigAsync(new StreamConfig { Name = "MAXNEW", Subjects = ["maxnew.>"], - MaxBytes = 10, + MaxBytes = 40, Discard = DiscardPolicy.New, }); - _ = await fx.PublishAndGetAckAsync("maxnew.a", "1234567890"); // 10 bytes, fills stream + _ = await fx.PublishAndGetAckAsync("maxnew.a", "1234567890"); // 34 bytes with overhead var rejected = await fx.PublishAndGetAckAsync("maxnew.c", "extra-data-overflows"); rejected.ErrorCode.ShouldNotBeNull(); diff --git a/tests/NATS.Server.Tests/JetStream/JetStreamStreamFeatureTests.cs b/tests/NATS.Server.Tests/JetStream/JetStreamStreamFeatureTests.cs index 1ef59eb..243eb12 100644 --- a/tests/NATS.Server.Tests/JetStream/JetStreamStreamFeatureTests.cs +++ b/tests/NATS.Server.Tests/JetStream/JetStreamStreamFeatureTests.cs @@ -280,14 +280,17 @@ public class JetStreamStreamFeatureTests restore.Error.ShouldNotBeNull(); } - // Go: TestJetStreamMirrorUpdatePreventsSubjects server/jetstream_test.go + // Go: TestJetStreamMirrorUpdatePreventsSubjects server/jetstream_test.go:9412 + // Mirror streams cannot have subjects — the Go test verifies that attempting + // to update a mirror with subjects returns an error. [Fact] - public async Task Mirror_stream_has_its_own_subjects() + public async Task Mirror_stream_cannot_have_subjects() { await using var fx = await JetStreamApiFixture.StartWithMirrorSetupAsync(); + // Mirror streams should have empty subjects (Go: "stream mirrors can not contain subjects") var info = await fx.RequestLocalAsync("$JS.API.STREAM.INFO.ORDERS_MIRROR", "{}"); - info.StreamInfo!.Config.Subjects.ShouldContain("orders.mirror.*"); + info.StreamInfo!.Config.Subjects.ShouldBeEmpty(); } // Go: TestJetStreamStreamSubjectsOverlap server/jetstream_test.go diff --git a/tests/NATS.Server.Tests/JetStream/Storage/StorageRetentionTests.cs b/tests/NATS.Server.Tests/JetStream/Storage/StorageRetentionTests.cs index a1d4679..b11464b 100644 --- a/tests/NATS.Server.Tests/JetStream/Storage/StorageRetentionTests.cs +++ b/tests/NATS.Server.Tests/JetStream/Storage/StorageRetentionTests.cs @@ -49,11 +49,13 @@ public class StorageRetentionTests [Fact] public async Task Max_bytes_limit_enforced() { - // Each payload is 100 bytes. Set MaxBytes to hold exactly 5 messages. + // Go: memStoreMsgSize = subject.Length + headers.Length + data.Length + 16 + // Each message = "byteslimit.foo"(14) + payload(100) + overhead(16) = 130 bytes. var payload = new byte[100]; - const int payloadSize = 100; + const string subject = "byteslimit.foo"; + const int msgSize = 14 + 100 + 16; // 130 const int maxCapacity = 5; - var maxBytes = (long)(payloadSize * maxCapacity); + var maxBytes = (long)(msgSize * maxCapacity); // 650 var manager = new StreamManager(); manager.CreateOrUpdate(new StreamConfig @@ -66,16 +68,16 @@ public class StorageRetentionTests // Store exactly maxCapacity messages — should all fit. for (var i = 0; i < maxCapacity; i++) - manager.Capture("byteslimit.foo", payload); + manager.Capture(subject, payload); manager.TryGet("BYTESLIMIT", out var handle).ShouldBeTrue(); var stateAtCapacity = await handle.Store.GetStateAsync(default); stateAtCapacity.Messages.ShouldBe((ulong)maxCapacity); - stateAtCapacity.Bytes.ShouldBe((ulong)(payloadSize * maxCapacity)); + stateAtCapacity.Bytes.ShouldBe((ulong)(msgSize * maxCapacity)); // Store 5 more — each one should displace an old message. for (var i = 0; i < maxCapacity; i++) - manager.Capture("byteslimit.foo", payload); + manager.Capture(subject, payload); var stateFinal = await handle.Store.GetStateAsync(default); stateFinal.Messages.ShouldBe((ulong)maxCapacity); diff --git a/tests/NATS.Server.Tests/JetStreamStreamPolicyRuntimeTests.cs b/tests/NATS.Server.Tests/JetStreamStreamPolicyRuntimeTests.cs index e636503..11e4a7b 100644 --- a/tests/NATS.Server.Tests/JetStreamStreamPolicyRuntimeTests.cs +++ b/tests/NATS.Server.Tests/JetStreamStreamPolicyRuntimeTests.cs @@ -7,11 +7,13 @@ public class JetStreamStreamPolicyRuntimeTests [Fact] public async Task Discard_new_rejects_publish_when_max_bytes_exceeded() { + // Each message = subject("s.a"=3) + payload(2) + overhead(16) = 21 bytes. + // MaxBytes=25 holds exactly one message; second publish is rejected. await using var fx = await JetStreamApiFixture.StartWithStreamConfigAsync(new StreamConfig { Name = "S", Subjects = ["s.*"], - MaxBytes = 2, + MaxBytes = 25, Discard = DiscardPolicy.New, });