From 6e5676c30773e04d837adc29851d63c54752dc85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 04:16:36 +0000 Subject: [PATCH 1/3] chore(deps): Bump StackExchange.Redis from 2.13.17 to 3.1.13 --- updated-dependencies: - dependency-name: StackExchange.Redis dependency-version: 3.1.13 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .../Cluckwork.Infrastructure.csproj | 2 +- .../packages.lock.json | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Cluckwork.Infrastructure/Cluckwork.Infrastructure.csproj b/src/Cluckwork.Infrastructure/Cluckwork.Infrastructure.csproj index 4afe2bfa..ade89cc9 100644 --- a/src/Cluckwork.Infrastructure/Cluckwork.Infrastructure.csproj +++ b/src/Cluckwork.Infrastructure/Cluckwork.Infrastructure.csproj @@ -26,7 +26,7 @@ - + diff --git a/src/Cluckwork.Infrastructure/packages.lock.json b/src/Cluckwork.Infrastructure/packages.lock.json index a91e5db7..62d445b2 100644 --- a/src/Cluckwork.Infrastructure/packages.lock.json +++ b/src/Cluckwork.Infrastructure/packages.lock.json @@ -66,12 +66,12 @@ }, "StackExchange.Redis": { "type": "Direct", - "requested": "[2.*, )", - "resolved": "2.13.17", - "contentHash": "P7o7ZDBAmBrOLQEw8Pt44iIA08ioj48smRxn4Jp6yzCu6P3DOSU6lj7f+IOtN3pPvSgC9YufvM92ycukEEBCYQ==", + "requested": "[3.*, )", + "resolved": "3.1.13", + "contentHash": "OvhFdV2ucee2hnN2v2EOcOTMvIzGsq1PX4kAbIYC8cax+MyabSa7Eu3hWY6D//SbxzZQ/eYFvD8Tvg+pK+969g==", "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.16", - "System.IO.Hashing": "10.0.2" + "RESPite": "3.1.13", + "System.IO.Hashing": "10.0.5" } }, "System.IdentityModel.Tokens.Jwt": { @@ -235,10 +235,10 @@ "resolved": "10.0.3", "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==" }, - "Pipelines.Sockets.Unofficial": { + "RESPite": { "type": "Transitive", - "resolved": "2.2.16", - "contentHash": "nonu9l0YrZH6krVYbskBjE7uG0VMAnvOQ9PU+RmzUsy+++vHkqzzCkHRoP877OiA3iRTxJyNDLfpcU8hrJ3/YQ==" + "resolved": "3.1.13", + "contentHash": "wqViG+Dl4Ln/X33IyfmciyGirm1ET+M7kjwbb+oJAbDXLP2u2hX1eOnaEgyIAerJNSP98BytyddcW3ZQH55wgw==" }, "Riok.Mapperly": { "type": "Transitive", @@ -305,8 +305,8 @@ }, "System.IO.Hashing": { "type": "Transitive", - "resolved": "10.0.2", - "contentHash": "AKJknIFi9O3+rGExxTry188JPvUoZAPcCtS2qdqyFhIzsxQ1Ap94BeGDG0VzVEHakhmRxmJtVih6TsHoghIt/g==" + "resolved": "10.0.5", + "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg==" }, "cluckwork.application": { "type": "Project", From cb741cbcb4df0ee46d4be855193b161e7589c950 Mon Sep 17 00:00:00 2001 From: "cluckwork-lockfix[bot]" Date: Fri, 21 Aug 2026 04:19:41 +0000 Subject: [PATCH 2/3] chore(deps): regenerate downstream packages.lock.json (#203) --- src/Cluckwork.Api/packages.lock.json | 20 ++++++++-------- .../packages.lock.json | 24 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Cluckwork.Api/packages.lock.json b/src/Cluckwork.Api/packages.lock.json index 5563afc5..e803bbfa 100644 --- a/src/Cluckwork.Api/packages.lock.json +++ b/src/Cluckwork.Api/packages.lock.json @@ -334,10 +334,10 @@ "OpenTelemetry.Api": "1.17.0" } }, - "Pipelines.Sockets.Unofficial": { + "RESPite": { "type": "Transitive", - "resolved": "2.2.16", - "contentHash": "nonu9l0YrZH6krVYbskBjE7uG0VMAnvOQ9PU+RmzUsy+++vHkqzzCkHRoP877OiA3iRTxJyNDLfpcU8hrJ3/YQ==" + "resolved": "3.1.13", + "contentHash": "wqViG+Dl4Ln/X33IyfmciyGirm1ET+M7kjwbb+oJAbDXLP2u2hX1eOnaEgyIAerJNSP98BytyddcW3ZQH55wgw==" }, "Riok.Mapperly": { "type": "Transitive", @@ -401,11 +401,11 @@ }, "StackExchange.Redis": { "type": "Transitive", - "resolved": "2.13.17", - "contentHash": "P7o7ZDBAmBrOLQEw8Pt44iIA08ioj48smRxn4Jp6yzCu6P3DOSU6lj7f+IOtN3pPvSgC9YufvM92ycukEEBCYQ==", + "resolved": "3.1.13", + "contentHash": "OvhFdV2ucee2hnN2v2EOcOTMvIzGsq1PX4kAbIYC8cax+MyabSa7Eu3hWY6D//SbxzZQ/eYFvD8Tvg+pK+969g==", "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.16", - "System.IO.Hashing": "10.0.2" + "RESPite": "3.1.13", + "System.IO.Hashing": "10.0.5" } }, "System.CodeDom": { @@ -472,8 +472,8 @@ }, "System.IO.Hashing": { "type": "Transitive", - "resolved": "10.0.2", - "contentHash": "AKJknIFi9O3+rGExxTry188JPvUoZAPcCtS2qdqyFhIzsxQ1Ap94BeGDG0VzVEHakhmRxmJtVih6TsHoghIt/g==" + "resolved": "10.0.5", + "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg==" }, "cluckwork.application": { "type": "Project", @@ -496,7 +496,7 @@ "Microsoft.EntityFrameworkCore": "[10.*, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.*, )", "Serilog.Extensions.Logging": "[10.*, )", - "StackExchange.Redis": "[2.*, )", + "StackExchange.Redis": "[3.*, )", "System.IdentityModel.Tokens.Jwt": "[8.*, )" } } diff --git a/tests/Cluckwork.Api.IntegrationTests/packages.lock.json b/tests/Cluckwork.Api.IntegrationTests/packages.lock.json index 2c1cdb80..80b1bd50 100644 --- a/tests/Cluckwork.Api.IntegrationTests/packages.lock.json +++ b/tests/Cluckwork.Api.IntegrationTests/packages.lock.json @@ -5,8 +5,8 @@ "Google.Protobuf": { "type": "Direct", "requested": "[3.*, )", - "resolved": "3.35.1", - "contentHash": "pxtkuXhR8svkvDTQrYew9GZQt6eWhblz/V/WKUFrQgkHYlQPsumJTeF6ppHRJpe6j9ffukkd5lQULiiKaek4xA==" + "resolved": "3.36.0", + "contentHash": "wDPg8sKlmA8we1bqnC9DYKwLog4PNJ4GYTWV9FkzlGvfs3kNCSt2x0Qe31SBOeBPS2JGEZ/lNfil/Bkwx18Ufg==" }, "Microsoft.AspNetCore.Mvc.Testing": { "type": "Direct", @@ -351,10 +351,10 @@ "OpenTelemetry.Api": "[1.17.0, 2.0.0)" } }, - "Pipelines.Sockets.Unofficial": { + "RESPite": { "type": "Transitive", - "resolved": "2.2.16", - "contentHash": "nonu9l0YrZH6krVYbskBjE7uG0VMAnvOQ9PU+RmzUsy+++vHkqzzCkHRoP877OiA3iRTxJyNDLfpcU8hrJ3/YQ==" + "resolved": "3.1.13", + "contentHash": "wqViG+Dl4Ln/X33IyfmciyGirm1ET+M7kjwbb+oJAbDXLP2u2hX1eOnaEgyIAerJNSP98BytyddcW3ZQH55wgw==" }, "Riok.Mapperly": { "type": "Transitive", @@ -445,11 +445,11 @@ }, "StackExchange.Redis": { "type": "Transitive", - "resolved": "2.13.17", - "contentHash": "P7o7ZDBAmBrOLQEw8Pt44iIA08ioj48smRxn4Jp6yzCu6P3DOSU6lj7f+IOtN3pPvSgC9YufvM92ycukEEBCYQ==", + "resolved": "3.1.13", + "contentHash": "OvhFdV2ucee2hnN2v2EOcOTMvIzGsq1PX4kAbIYC8cax+MyabSa7Eu3hWY6D//SbxzZQ/eYFvD8Tvg+pK+969g==", "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.16", - "System.IO.Hashing": "10.0.2" + "RESPite": "3.1.13", + "System.IO.Hashing": "10.0.5" } }, "System.IdentityModel.Tokens.Jwt": { @@ -463,8 +463,8 @@ }, "System.IO.Hashing": { "type": "Transitive", - "resolved": "10.0.2", - "contentHash": "AKJknIFi9O3+rGExxTry188JPvUoZAPcCtS2qdqyFhIzsxQ1Ap94BeGDG0VzVEHakhmRxmJtVih6TsHoghIt/g==" + "resolved": "10.0.5", + "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg==" }, "Testcontainers": { "type": "Transitive", @@ -557,7 +557,7 @@ "Microsoft.EntityFrameworkCore": "[10.*, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.*, )", "Serilog.Extensions.Logging": "[10.*, )", - "StackExchange.Redis": "[2.*, )", + "StackExchange.Redis": "[3.*, )", "System.IdentityModel.Tokens.Jwt": "[8.*, )" } } From d9538d15c828074a6256a39ac34ae2aff6167f12 Mon Sep 17 00:00:00 2001 From: mforce Date: Sat, 22 Aug 2026 00:03:08 -0700 Subject: [PATCH 3/3] fix(tests): adapt to StackExchange.Redis 3.1 API changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 2.13.17 → 3.1.13 major bump is source-breaking in two spots: - RedisTimeoutException(string, CommandStatus) is obsolete; the 3.x overload takes CommandFlags first — pass CommandFlags.None. - StackExchange.Redis now ships its own TestHarness type, which collides with our Cluckwork.Api.IntegrationTests.Infrastructure.TestHarness; fully-qualify ours to Infrastructure.TestHarness at the single ambiguous call site. Verified locally: --locked-mode restore clean, full solution build 0 errors, ResilientFallback + DistributedRateLimiterWiring suites green (12), SharedState suite green (43). --- .../DistributedRateLimiterWiringTests.cs | 2 +- .../SharedState/ResilientFallbackTests.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Cluckwork.Api.IntegrationTests/DistributedRateLimiterWiringTests.cs b/tests/Cluckwork.Api.IntegrationTests/DistributedRateLimiterWiringTests.cs index cf16cf4d..92525004 100644 --- a/tests/Cluckwork.Api.IntegrationTests/DistributedRateLimiterWiringTests.cs +++ b/tests/Cluckwork.Api.IntegrationTests/DistributedRateLimiterWiringTests.cs @@ -129,7 +129,7 @@ private HttpClient ProxiedClient(string clientIp) } private static Task PostLoginAsync(HttpClient client, string email = "nobody@example.com") => - client.PostAsJsonAsync("/api/v1/auth/login", new { farmCode = TestHarness.DefaultFarmCode, email, password = "WrongPassw0rd!" }); + client.PostAsJsonAsync("/api/v1/auth/login", new { farmCode = Infrastructure.TestHarness.DefaultFarmCode, email, password = "WrongPassw0rd!" }); // (b) primary down → the WIRED limiter still serves (fallback), still // enforces a budget, and the alarm fires. diff --git a/tests/Cluckwork.Api.IntegrationTests/SharedState/ResilientFallbackTests.cs b/tests/Cluckwork.Api.IntegrationTests/SharedState/ResilientFallbackTests.cs index 2c6e3053..20e7d269 100644 --- a/tests/Cluckwork.Api.IntegrationTests/SharedState/ResilientFallbackTests.cs +++ b/tests/Cluckwork.Api.IntegrationTests/SharedState/ResilientFallbackTests.cs @@ -65,17 +65,17 @@ public ValueTask IncrementAsync( private sealed class TimingOutClaimOnceStore : IClaimOnceStore { public bool TryClaim(string key, TimeSpan ttl) => - throw new RedisTimeoutException("timeout", CommandStatus.Unknown); + throw new RedisTimeoutException(CommandFlags.None, "timeout", CommandStatus.Unknown); } private sealed class TimingOutFixedWindowCounter : IFixedWindowCounter { public long Increment(string key, TimeSpan window) => - throw new RedisTimeoutException("timeout", CommandStatus.Unknown); + throw new RedisTimeoutException(CommandFlags.None, "timeout", CommandStatus.Unknown); public ValueTask IncrementAsync( string key, TimeSpan window, System.Threading.CancellationToken cancellationToken = default) => - throw new RedisTimeoutException("timeout", CommandStatus.Unknown); + throw new RedisTimeoutException(CommandFlags.None, "timeout", CommandStatus.Unknown); } // ── Working stubs (Redis up) ──────────────────────────────────────────