Repository navigation
v0.2.1
Fixed
Refines the cross-client conflict detection added in v0.2.0. client_name identifies the client application (e.g. claude-ai), not a specific window or connection of it — two Claude Desktop windows on the same machine report an identical client_name, so the v0.2.0 check (conflict only when client_name differs) waved that case through as a same-session correction. A reviewer caught this directly.
Provenance now also carries session_id: the MCP connection's server-assigned session id, populated on remote/streamable-http deployments (via the transport's Mcp-Session-Id), None on local stdio (one process is one connection, nothing finer to distinguish). Read from the connection object the server itself assigned, not from a request header — headers are client-supplied and must never be treated as an identity assertion.
_is_cross_client_conflict() now treats two relations as conflicting when either the declared client differs, or the declared client matches but the session id differs (confirmed two different connections of the same app). A missing signal on either side stays conservative and falls through to the existing update-in-place behavior.
Non-breaking — this only changes behavior for the specific case it fixes (same app, two windows/sessions); everything else is unchanged.
Full diff: v0.2.0...v0.2.1