Skip to content
Developer Preview

session/driveChanged

Experimental

A session’s drive holder changed; command-plane broadcast to every connection, not cursor-stamped, not subscription-gated, youDrive per recipient (ADR 58706-drive-handover D3).

Type: SessionDriveChangedParams

session/driveChanged params: the session’s drive holder changed. A command-plane broadcast on the session/statusChanged pattern — delivered to every connection on the host, subscribed or not; a connection’s optOutNotificationMethods suppresses it — so the previous holder and every observer learn who drives now. Not a view event: no viewCursor, no sourceRange (it reflects live registry state, no durable record). The embedded single-connection host never emits it (ADR 58706-drive-handover D6). Experimental tier.

Field Type Stability Presence Description
driveHolder ClientInfo Experimental optional The handshake ClientInfo (name and version, never title) of the live connection that holds the drive after this change — the value Session.driveHolder serves (ADR 58706-bridged-client-attribution D2), so the read and the push are one shape. Omitted when nobody holds it; never null.
previousDriveHolder ClientInfo Experimental optional The handshake of the connection that held the drive before this change: the displaced holder on requested, the releaser on released, the dropped holder on lapsed. Omitted when nobody held (every resumed take included); never null.
reason DriveChangedReason Experimental required Why the holder changed (open enum).
sessionId string Experimental required The owning session.
youDrive boolean Experimental required Set per recipient copy: true exactly for the connection that now holds the drive. A handshake is not a connection id (two windows of one client send the same clientInfo), so a client never learns it lost the drive by comparing driveHolder to its own handshake; it reads this flag.
Source

schema/msp/experimental/msp.schema.json#/notifications/session~2FdriveChanged

{
"description": "A session's drive holder changed; command-plane broadcast to every connection, not cursor-stamped, not subscription-gated, `youDrive` per recipient (ADR 58706-drive-handover D3).",
"params": {
"$ref": "#/$defs/SessionDriveChangedParams"
},
"x-msp-descriptor": "session/driveChanged",
"x-msp-stability": "experimental"
}