Make RequestId non-required (#984)

This commit is contained in:
Mackinnon Buck 2025-11-18 16:03:31 -08:00 • committed by GitHub
commit d540dc1fb1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 2 additions and 20 deletions

View file

@ -250,7 +250,6 @@ internal sealed class StreamableHttpHandler(
{
var jsonRpcError = new JsonRpcError
{
Id = default,
Error = new()
{
Code = errorCode,

View file

@ -26,5 +26,5 @@ public abstract class JsonRpcMessageWithId : JsonRpcMessage
/// Each ID is expected to be unique within the context of a given session.
/// </remarks>
[JsonPropertyName("id")]
public required RequestId Id { get; set; }
public RequestId Id { get; set; }
}

View file

@ -203,7 +203,6 @@ public class StatelessServerTests(ITestOutputHelper outputHelper) : KestrelInMem
var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => server.SendRequestAsync(new JsonRpcRequest
{
Id = default,
Method = RequestMethods.SamplingCreateMessage
}));
return ex.Message;
@ -222,7 +221,6 @@ public class StatelessServerTests(ITestOutputHelper outputHelper) : KestrelInMem
var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => server.SendRequestAsync(new JsonRpcRequest
{
Id = default,
Method = RequestMethods.RootsList
}));
return ex.Message;
@ -241,7 +239,6 @@ public class StatelessServerTests(ITestOutputHelper outputHelper) : KestrelInMem
var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => server.SendRequestAsync(new JsonRpcRequest
{
Id = default,
Method = RequestMethods.ElicitationCreate
}));
return ex.Message;

View file

@ -204,7 +204,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(new object(), McpJsonUtilities.DefaultOptions),
});
@ -226,7 +225,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -249,7 +247,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(callResult, McpJsonUtilities.DefaultOptions),
});
@ -270,7 +267,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(new EmptyResult(), McpJsonUtilities.DefaultOptions),
});
@ -290,7 +286,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(new EmptyResult(), McpJsonUtilities.DefaultOptions),
});
@ -313,7 +308,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -336,7 +330,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -359,7 +352,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -382,7 +374,6 @@ public class McpClientExtensionsTests
.Setup(c => c.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});

View file

@ -57,7 +57,6 @@ public class McpEndpointExtensionsTests
.Setup(s => s.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(42, McpJsonUtilities.DefaultOptions),
});

View file

@ -94,7 +94,6 @@ public class McpServerExtensionsTests
.Setup(s => s.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -146,7 +145,6 @@ public class McpServerExtensionsTests
})
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -159,7 +157,7 @@ public class McpServerExtensionsTests
Assert.Equal(ChatRole.Assistant, last.Role);
Assert.Equal("resp", last.Text);
mockServer.Verify(s => s.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()), Times.Once);
// Verify that the default value was used
Assert.NotNull(capturedRequest);
Assert.Equal(CustomMaxSamplingOutputTokens, capturedRequest.MaxTokens);
@ -180,7 +178,6 @@ public class McpServerExtensionsTests
.Setup(s => s.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});
@ -207,7 +204,6 @@ public class McpServerExtensionsTests
.Setup(s => s.SendRequestAsync(It.IsAny<JsonRpcRequest>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(new JsonRpcResponse
{
Id = default,
Result = JsonSerializer.SerializeToNode(resultPayload, McpJsonUtilities.DefaultOptions),
});