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/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", 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) ────────────────────────────────────────── 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.*, )" } }