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).
Parameters
Section titled “Parameters”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"}