From b2a023f9c02b0b9c424b18c0832c97777665259a Mon Sep 17 00:00:00 2001
From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com>
Date: Tue, 5 May 2026 21:30:52 -0500
Subject: [PATCH 1/2] chore: house keeping
---
.editorconfig | 1 +
src/Directory.Build.props | 1 +
src/src/Directory.Packages.props | 18 +++++++++---------
src/src/StevesBot.Library/.editorconfig | 2 +-
.../StevesBot.Library/StevesBot.Library.csproj | 2 +-
src/tests/Directory.Packages.props | 8 ++++----
.../Unit/AsyncLockTests.cs | 2 ++
.../Unit/IdentifyDataTests.cs | 2 --
8 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/.editorconfig b/.editorconfig
index ed00a87..ea157a1 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -30,6 +30,7 @@ dotnet_diagnostic.IDE0058.severity = none
dotnet_diagnostic.IDE0290.severity = none
dotnet_diagnostic.CA1031.severity = none
dotnet_diagnostic.CA1873.severity = none
+dotnet_diagnostic.CS1591.severity = none
# Organize usings
dotnet_separate_import_directive_groups = true
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 2f80156..dfa7d25 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -9,6 +9,7 @@
true
true
true
+ true
diff --git a/src/src/Directory.Packages.props b/src/src/Directory.Packages.props
index 67f857c..37c542b 100644
--- a/src/src/Directory.Packages.props
+++ b/src/src/Directory.Packages.props
@@ -5,15 +5,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/src/StevesBot.Library/.editorconfig b/src/src/StevesBot.Library/.editorconfig
index 738ea45..cadd4ee 100644
--- a/src/src/StevesBot.Library/.editorconfig
+++ b/src/src/StevesBot.Library/.editorconfig
@@ -1,3 +1,3 @@
[*.cs]
dotnet_diagnostic.CA1056.severity = none
-dotnet_diagnostic.CA1054.severity = none
+dotnet_diagnostic.CA1054.severity = none
\ No newline at end of file
diff --git a/src/src/StevesBot.Library/StevesBot.Library.csproj b/src/src/StevesBot.Library/StevesBot.Library.csproj
index fc1f3b1..3f829b5 100644
--- a/src/src/StevesBot.Library/StevesBot.Library.csproj
+++ b/src/src/StevesBot.Library/StevesBot.Library.csproj
@@ -1,5 +1,5 @@
-
+
diff --git a/src/tests/Directory.Packages.props b/src/tests/Directory.Packages.props
index cded8ee..020a0d1 100644
--- a/src/tests/Directory.Packages.props
+++ b/src/tests/Directory.Packages.props
@@ -5,11 +5,11 @@
-
-
+
+
-
-
+
+
diff --git a/src/tests/StevesBot.Worker.Tests/Unit/AsyncLockTests.cs b/src/tests/StevesBot.Worker.Tests/Unit/AsyncLockTests.cs
index e0bf26e..30fa011 100644
--- a/src/tests/StevesBot.Worker.Tests/Unit/AsyncLockTests.cs
+++ b/src/tests/StevesBot.Worker.Tests/Unit/AsyncLockTests.cs
@@ -43,7 +43,9 @@ public class AsyncLockTests
var taskOne = FirstLockAction();
var taskTwo = SecondLockAction();
+#pragma warning disable CA2027 // Cancel Task.Delay after Task.WhenAny completes
await Task.WhenAll(taskOne, Task.WhenAny(taskTwo, Task.Delay(500)));
+#pragma warning restore CA2027 // Cancel Task.Delay after Task.WhenAny completes
lockOneAcquired.Task.IsCompleted.Should().BeTrue();
lockTwoAttempted.Task.IsCompleted.Should().BeTrue();
diff --git a/src/tests/StevesBot.Worker.Tests/Unit/IdentifyDataTests.cs b/src/tests/StevesBot.Worker.Tests/Unit/IdentifyDataTests.cs
index 7479f05..39831fa 100644
--- a/src/tests/StevesBot.Worker.Tests/Unit/IdentifyDataTests.cs
+++ b/src/tests/StevesBot.Worker.Tests/Unit/IdentifyDataTests.cs
@@ -1,5 +1,3 @@
-using StevesBot.Worker.Discord.Gateway.Events.Data;
-
namespace StevesBot.Worker.Tests.Unit;
public class IdentifyDataTests
From 42412588256d23d8c792b38ec5c160f542e8705b Mon Sep 17 00:00:00 2001
From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com>
Date: Tue, 5 May 2026 21:32:48 -0500
Subject: [PATCH 2/2] fix: handle overflowing int max value and reset socket on
failure
---
.../Discord/Gateway/DiscordGatewayClient.cs | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/src/StevesBot.Worker/Discord/Gateway/DiscordGatewayClient.cs b/src/src/StevesBot.Worker/Discord/Gateway/DiscordGatewayClient.cs
index 06ea753..e51bf42 100644
--- a/src/src/StevesBot.Worker/Discord/Gateway/DiscordGatewayClient.cs
+++ b/src/src/StevesBot.Worker/Discord/Gateway/DiscordGatewayClient.cs
@@ -70,6 +70,8 @@ internal sealed class DiscordGatewayClient : IDiscordGatewayClient
await SetGatewayUrlAsync(gatewayUrl, cancellationToken);
}
+ _webSocket?.Dispose();
+
await SetWebSocketAsync(_webSocketFactory.Create(), cancellationToken);
await ConnectWithGatewayUrlAsync(cancellationToken);
@@ -685,9 +687,10 @@ internal sealed class DiscordGatewayClient : IDiscordGatewayClient
await _webSocket.ConnectAsync(uri, cancellationToken);
connected = true;
}
- catch (Exception e) when (e is WebSocketException)
+ catch (Exception e)
{
- var currentDelay = (int)(delay.TotalMilliseconds * Math.Pow(2, attempts));
+ var calculatedDelay = delay.TotalMilliseconds * Math.Pow(2, attempts);
+ var currentDelay = (int)Math.Min(calculatedDelay, int.MaxValue);
_logger.LogWarning(
e,
@@ -700,6 +703,9 @@ internal sealed class DiscordGatewayClient : IDiscordGatewayClient
await Task.Delay(currentDelay, cancellationToken);
attempts++;
+
+ _webSocket.Dispose();
+ await SetWebSocketAsync(_webSocketFactory.Create(), cancellationToken);
}
}
}