Skip to content
Developer Preview

SessionListResult

session/list result. The default order is content activity: lastActivityAt descending, then sessionId ascending. The order is the session index’s key, so a row’s displayed timestamps do not always show its position: a row the index has not yet derived keeps its updatedAt position, a derived row with no content orders by createdAt, and a loaded row can show newer values. Do not re-sort or validate a page from them. updatedAfter still filters on updatedAt.

  • appliedFilter
  • nextCursor
  • sessions
Source

schema/msp/experimental/msp.schema.json#/types/SessionListResult

{
"description": "`session/list` result. The default order is content\nactivity: `lastActivityAt` descending, then `sessionId` ascending. The\norder is the session index's key, so a row's displayed timestamps do not\nalways show its position: a row the index has not yet derived keeps its\n`updatedAt` position, a derived row with no content orders by\n`createdAt`, and a loaded row can show newer values. Do not re-sort or\nvalidate a page from them. `updatedAfter` still filters on `updatedAt`.",
"properties": {
"appliedFilter": {
"$ref": "#/$defs/SessionListFilter",
"description": "The canonical filter the server applied, present exactly when the\nrequest carried `filter`. The probe is\nper-predicate PRESENCE (ADR 42035 D6): a client that requires\nfiltering checks that every predicate it sent comes back as a member\nhere, and treats a missing member as unsupported. Value equality is\nthe wrong test — canonicalization trims, lowercases, NFC-normalizes,\ndedupes and sorts, so the echoed values often differ from the sent\nones on a correctly filtered page."
},
"nextCursor": {
"description": "The next page's cursor; `null` on the last page.",
"type": [
"string",
"null"
]
},
"sessions": {
"description": "The page of stored sessions.",
"items": {
"$ref": "#/$defs/Session"
},
"type": "array"
}
},
"required": [
"nextCursor",
"sessions"
],
"type": "object"
}