social.colibri.beta.channel.putReadCursors

Pushes the requesting user's read cursors for one community to the AppView, so unread counts update immediately instead of waiting for a sync notification. The client writes its social.colibri.beta.channel.read record for the community to its own personal space first, then calls this. Clients should debounce this rather than calling it on every message. The user's other sessions receive the cursors that moved as a social.colibri.beta.sync.defs#readCursorEvent.

Repository @colibri.social did:plc:mprdjqjluoswa7awzggaggj3 namespace authority
Details · procedure
Kindprocedure
Authoritychannel.beta.colibri.social
Indexed
cid bafyreihznijzezh7tvq2o4cytve2ul42fluquxrcf3o3k7s6w452nox4f4

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Pushes the requesting user's read cursors for one community to the AppView, so unread counts update immediately instead of waiting for a sync notification. The client writes its social.colibri.beta.channel.read record for the community to its own personal space first, then calls this. Clients should debounce this rather than calling it on every message. The user's other sessions receive the cursors that moved as a social.colibri.beta.sync.defs#readCursorEvent.",
      "errors": [
        {
          "description": "The request has no valid service auth.",
          "name": "AuthRequired"
        },
        {
          "description": "No community matches the given DID.",
          "name": "CommunityNotFound"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "community": {
              "description": "The community the cursors belong to.",
              "format": "did",
              "type": "string"
            },
            "cursors": {
              "description": "Read cursors for the community's channels and threads. Each one replaces the stored cursor only when it is newer, and channels left out keep their stored cursor.",
              "items": {
                "ref": "social.colibri.beta.channel.read#cursor",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "community",
            "cursors"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "statuses": {
              "description": "Unread state per channel, after the update.",
              "items": {
                "ref": "social.colibri.beta.channel.defs#unreadStatus",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "statuses"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "social.colibri.beta.channel.putReadCursors",
  "lexicon": 1
}