mcp: evict expired transport sessions

This commit is contained in:
a.tolmachev
2026-05-02 08:26:59 +00:00
parent 77f83a1dc1
commit fdad20a8d1
4 changed files with 204 additions and 12 deletions
+3
View File
@@ -54,6 +54,7 @@ const HEADER_MCP_SESSION_ID: &str = "MCP-Session-Id";
const HEADER_MCP_PROTOCOL_VERSION: &str = "MCP-Protocol-Version";
const HEADER_X_REQUEST_ID: HeaderName = HeaderName::from_static("x-request-id");
const MAX_REQUEST_ID_LEN: usize = 128;
const TRANSPORT_SESSION_TTL_MS: u64 = 86_400_000;
#[derive(Clone, Copy)]
enum ResponseMode {
@@ -1682,6 +1683,7 @@ async fn handle_initialize(
);
};
let now = OffsetDateTime::now_utc();
let expires_at = add_millis(now, TRANSPORT_SESSION_TTL_MS);
let session_id = match state
.sessions
.create(
@@ -1689,6 +1691,7 @@ async fn handle_initialize(
&path.workspace_slug,
&path.agent_slug,
now,
Some(expires_at),
)
.await
{