social.colibri.beta.message

colibri.social

Schema Diff

+54 -0

From

CID
bafyreiapvvmrk3v...
Indexed At
2026-08-23 12:32 UTC
View this version

To

CID
bafyreia5cgy75s7...
Indexed At
2026-09-24 08:31 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

3 breaking changes, 23 non-breaking changes.

Breaking Changes (3)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.source", kind: "prop", name: Some("source") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.createdAt", kind: "prop", name: Some("createdAt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.text", kind: "prop", name: Some("text") }
Non-Breaking Changes (23)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.bridge.defs#attribution" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.defs#spaceRecordRef" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments:items" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.createdAt" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets:items" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.source" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.text" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message:body.bridged" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message:body.forward" }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.attachments", kind: "prop", name: Some("attachments") }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.facets", kind: "prop", name: Some("facets") }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.attachments", tgt: "social.colibri.beta.message#forward.attachments:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.attachments:items", tgt: "social.colibri.beta.message#attachment", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.facets", tgt: "social.colibri.beta.message#forward.facets:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.facets:items", tgt: "social.colibri.beta.richtext.facet", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.source", tgt: "social.colibri.beta.defs#spaceRecordRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.bridged", kind: "prop", name: Some("bridged") }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.forward", kind: "prop", name: Some("forward") }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message:body.bridged", tgt: "social.colibri.beta.bridge.defs#attribution", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.beta.message:body.forward", tgt: "social.colibri.beta.message#forward", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "social.colibri.beta.bridge.defs#attribution" }
  • AddedVertex { vertex_id: "social.colibri.beta.defs#spaceRecordRef" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments:items" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.createdAt" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets:items" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.source" }
  • AddedVertex { vertex_id: "social.colibri.beta.message#forward.text" }
  • AddedVertex { vertex_id: "social.colibri.beta.message:body.bridged" }
  • AddedVertex { vertex_id: "social.colibri.beta.message:body.forward" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.source", kind: "prop", name: Some("source") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.createdAt", kind: "prop", name: Some("createdAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.text", kind: "prop", name: Some("text") }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.attachments", kind: "prop", name: Some("attachments") }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.facets", kind: "prop", name: Some("facets") }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.attachments", tgt: "social.colibri.beta.message#forward.attachments:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.attachments:items", tgt: "social.colibri.beta.message#attachment", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.facets", tgt: "social.colibri.beta.message#forward.facets:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.facets:items", tgt: "social.colibri.beta.richtext.facet", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.source", tgt: "social.colibri.beta.defs#spaceRecordRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.bridged", kind: "prop", name: Some("bridged") }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.forward", kind: "prop", name: Some("forward") }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message:body.bridged", tgt: "social.colibri.beta.bridge.defs#attribution", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.message:body.forward", tgt: "social.colibri.beta.message#forward", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "attachment": {
5 5
      "description": "A file attached to a message.",
6 6
      "properties": {
7 7
        "blob": {
8 8
          "description": "The attached file.",
9 9
          "type": "blob"
10 10
        },
11 11
        "name": {
12 12
          "description": "The original filename.",
13 13
          "maxLength": 256,
14 14
          "type": "string"
15 15
        }
16 16
      },
17 17
      "required": [
18 18
        "blob"
19 19
      ],
20 20
      "type": "object"
21 21
    },
22 +
    "forward": {
23 +
      "description": "Another message's content, copied and frozen when the forward was made. The copy does not follow later edits, deletions or labels on the message it came from. Never itself nested: forwarding a forwarded message carries this content over and repoints `source` at the message it was forwarded from.",
24 +
      "properties": {
25 +
        "attachments": {
26 +
          "description": "The copied files, re-uploaded into the forwarding author's own repo so the forward stands on its own.",
27 +
          "items": {
28 +
            "description": "A copied file.",
29 +
            "ref": "#attachment",
30 +
            "type": "ref"
31 +
          },
32 +
          "type": "array"
33 +
        },
34 +
        "createdAt": {
35 +
          "description": "When the message this content came from was sent.",
36 +
          "format": "datetime",
37 +
          "type": "string"
38 +
        },
39 +
        "facets": {
40 +
          "description": "The copied annotations. A mention here does not notify anyone, because the AppView reads only a message's own facets.",
41 +
          "items": {
42 +
            "description": "An annotation.",
43 +
            "ref": "social.colibri.beta.richtext.facet",
44 +
            "type": "ref"
45 +
          },
46 +
          "type": "array"
47 +
        },
48 +
        "source": {
49 +
          "description": "The message this content was copied from.",
50 +
          "ref": "social.colibri.beta.defs#spaceRecordRef",
51 +
          "type": "ref"
52 +
        },
53 +
        "text": {
54 +
          "description": "The copied message body. Empty when the message that was forwarded carried only attachments.",
55 +
          "maxLength": 2048,
56 +
          "type": "string"
57 +
        }
58 +
      },
59 +
      "required": [
60 +
        "source",
61 +
        "createdAt",
62 +
        "text"
63 +
      ],
64 +
      "type": "object"
65 +
    },
22 66
    "main": {
23 67
      "description": "A message in a channel. Lives in the author's own permissioned repo for the channel's space.",
24 68
      "key": "tid",
25 69
      "record": {
26 70
        "properties": {
27 71
          "attachments": {
28 72
            "description": "Files attached to this message.",
29 73
            "items": {
30 74
              "ref": "#attachment",
31 75
              "type": "ref"
32 76
            },
33 77
            "type": "array"
34 78
          },
79 +
          "bridged": {
80 +
            "description": "Who sent this message on another service. Honoured only when the community itself wrote the record.",
81 +
            "ref": "social.colibri.beta.bridge.defs#attribution",
82 +
            "type": "ref"
83 +
          },
35 84
          "createdAt": {
36 85
            "description": "When the message was sent.",
37 86
            "format": "datetime",
38 87
            "type": "string"
39 88
          },
40 89
          "facets": {
41 90
            "description": "Annotations over ranges of the text.",
42 91
            "items": {
43 92
              "ref": "social.colibri.beta.richtext.facet",
44 93
              "type": "ref"
45 94
            },
46 95
            "type": "array"
47 96
          },
97 +
          "forward": {
98 +
            "description": "Content copied here from another message. Present only on a forwarded message.",
99 +
            "ref": "#forward",
100 +
            "type": "ref"
101 +
          },
48 102
          "parent": {
49 103
            "description": "The message this one replies to.",
50 104
            "ref": "social.colibri.beta.defs#recordRef",
51 105
            "type": "ref"
52 106
          },
53 107
          "suppressedEmbeds": {
54 108
            "description": "URLs from this message's link facets whose preview the author chose not to show. Moderator suppression is a label instead.",
55 109
            "items": {
56 110
              "format": "uri",
57 111
              "type": "string"
58 112
            },
59 113
            "type": "array"
60 114
          },
61 115
          "text": {
62 116
            "description": "The message body.",
63 117
            "maxLength": 2048,
64 118
            "type": "string"
65 119
          },
66 120
          "updatedAt": {
67 121
            "description": "When the message was last edited. Absent means never edited.",
68 122
            "format": "datetime",
69 123
            "type": "string"
70 124
          }
71 125
        },
72 126
        "required": [
73 127
          "text",
74 128
          "createdAt"
75 129
        ],
76 130
        "type": "object"
77 131
      },
78 132
      "type": "record"
79 133
    }
80 134
  },
81 135
  "id": "social.colibri.beta.message",
82 136
  "lexicon": 1
83 137
}

Compare Other Versions

Lexicon Garden

@