social.colibri.beta.thread.repoint

colibri.social

Schema Diff

+8 -3

From

CID
bafyreibyp65iuqe...
Indexed At
2026-09-01 11:12 UTC
View this version

To

CID
bafyreibb7clnj5p...
Indexed At
2026-09-08 06:52 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 4 non-breaking changes.

Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.defs#spaceRecordRef" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.thread.repoint:input.anchor" }
  • AddedEdge AddedEdge { src: "social.colibri.beta.thread.repoint:input", tgt: "social.colibri.beta.thread.repoint:input.anchor", kind: "prop", name: Some("anchor") }
  • AddedEdge AddedEdge { src: "social.colibri.beta.thread.repoint:input.anchor", tgt: "social.colibri.beta.defs#spaceRecordRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "social.colibri.beta.defs#spaceRecordRef" }
  • AddedVertex { vertex_id: "social.colibri.beta.thread.repoint:input.anchor" }

Additional Notes

  • Non-breaking: AddedEdge { src: "social.colibri.beta.thread.repoint:input", tgt: "social.colibri.beta.thread.repoint:input.anchor", kind: "prop", name: Some("anchor") }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.thread.repoint:input.anchor", tgt: "social.colibri.beta.defs#spaceRecordRef", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "Moves a thread to another channel by rewriting the channel its record links to. Who may read the thread follows the new channel. The anchor is left as it was, so the thread's marker leaves the old channel's river while the thread itself still quotes the message it came from.",
5 +
      "description": "Moves a thread to another channel by rewriting the channel its record links to, and optionally repoints it at another message. Who may read the thread follows the new channel. Left without an anchor the thread keeps the one it has, so its marker sits wherever that message now lives.",
6 6
      "errors": [
7 7
        {
8 8
          "description": "The request has no valid service auth.",
9 9
          "name": "AuthRequired"
10 10
        },
11 11
        {
12 -
          "description": "The requesting user lacks the thread.manage permission.",
12 +
          "description": "The requesting user lacks the thread.manage permission and did not write both the thread's current anchor and the message it is being repointed at.",
13 13
          "name": "Forbidden"
14 14
        },
15 15
        {
16 16
          "description": "No thread matches the given space reference.",
17 17
          "name": "ThreadNotFound"
18 18
        },
19 19
        {
20 20
          "description": "No channel matches the given space reference.",
21 21
          "name": "ChannelNotFound"
22 22
        },
23 23
        {
24 -
          "description": "The destination channel belongs to another community, is not a text channel, or is the channel the thread is already in.",
24 +
          "description": "The destination channel belongs to another community, is not a text channel, or is the channel the thread is already in while no new anchor was given.",
25 25
          "name": "InvalidRequest"
26 26
        },
27 27
        {
28 28
          "description": "The AppView cannot act as the community because its stored credentials are missing or unusable.",
29 29
          "name": "CredentialsUnavailable"
30 30
        }
31 31
      ],
32 32
      "input": {
33 33
        "encoding": "application/json",
34 34
        "schema": {
35 35
          "properties": {
36 +
            "anchor": {
37 +
              "description": "The message the thread should hang under, for a thread whose anchor was moved. It has to sit in the destination channel, and may be a message the AppView has not indexed yet. Absent keeps the anchor as it is.",
38 +
              "ref": "social.colibri.beta.defs#spaceRecordRef",
39 +
              "type": "ref"
40 +
            },
36 41
            "channel": {
37 42
              "description": "The text channel to move it to.",
38 43
              "format": "space-ref",
39 44
              "type": "string"
40 45
            },
41 46
            "thread": {
42 47
              "description": "The thread to move.",
43 48
              "format": "space-ref",
44 49
              "type": "string"
45 50
            }
46 51
          },
47 52
          "required": [
48 53
            "thread",
49 54
            "channel"
50 55
          ],
51 56
          "type": "object"
52 57
        }
53 58
      },
54 59
      "output": {
55 60
        "encoding": "application/json",
56 61
        "schema": {
57 62
          "properties": {
58 63
            "thread": {
59 64
              "description": "The thread, after the move.",
60 65
              "ref": "social.colibri.beta.thread.defs#threadView",
61 66
              "type": "ref"
62 67
            }
63 68
          },
64 69
          "required": [
65 70
            "thread"
66 71
          ],
67 72
          "type": "object"
68 73
        }
69 74
      },
70 75
      "type": "procedure"
71 76
    }
72 77
  },
73 78
  "id": "social.colibri.beta.thread.repoint",
74 79
  "lexicon": 1
75 80
}

Compare Other Versions

Lexicon Garden

@