app.bsky.feed.post

bsky-lexicons.bsky.social

Schema Diff

+1 -0

From

CID
bafyreidgbehqwwe...
Indexed At
2026-02-18 17:52 UTC
View this version

To

CID
bafyreia7rgxu746...
Indexed At
2026-07-16 14:58 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

3 breaking changes, 5 non-breaking changes.

Breaking Changes (3)
  • RemovedEdge RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
  • RemovedEdge RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
  • RemovedEdge RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
Non-Breaking Changes (5)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.feed.post:body.embed:variant5" }
  • AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.gallery") }
  • AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.external") }
  • AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.record") }
  • AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bsky.feed.post:body.embed:variant5" }

Additional Notes

  • Breaking: RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
  • Breaking: RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
  • Breaking: RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.gallery") }
  • Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.external") }
  • Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.record") }
  • Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
1 1
{
2 2
  "id": "app.bsky.feed.post",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "text",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "tags": {
15 15
            "type": "array",
16 16
            "items": {
17 17
              "type": "string",
18 18
              "maxLength": 640,
19 19
              "maxGraphemes": 64
20 20
            },
21 21
            "maxLength": 8,
22 22
            "description": "Additional hashtags, in addition to any included in post text and facets."
23 23
          },
24 24
          "text": {
25 25
            "type": "string",
26 26
            "maxLength": 3000,
27 27
            "description": "The primary post content. May be an empty string, if there are embeds.",
28 28
            "maxGraphemes": 300
29 29
          },
30 30
          "embed": {
31 31
            "refs": [
32 32
              "app.bsky.embed.images",
33 33
              "app.bsky.embed.video",
34 +
              "app.bsky.embed.gallery",
34 35
              "app.bsky.embed.external",
35 36
              "app.bsky.embed.record",
36 37
              "app.bsky.embed.recordWithMedia"
37 38
            ],
38 39
            "type": "union"
39 40
          },
40 41
          "langs": {
41 42
            "type": "array",
42 43
            "items": {
43 44
              "type": "string",
44 45
              "format": "language"
45 46
            },
46 47
            "maxLength": 3,
47 48
            "description": "Indicates human language of post primary text content."
48 49
          },
49 50
          "reply": {
50 51
            "ref": "#replyRef",
51 52
            "type": "ref"
52 53
          },
53 54
          "facets": {
54 55
            "type": "array",
55 56
            "items": {
56 57
              "ref": "app.bsky.richtext.facet",
57 58
              "type": "ref"
58 59
            },
59 60
            "description": "Annotations of text (mentions, URLs, hashtags, etc)"
60 61
          },
61 62
          "labels": {
62 63
            "refs": [
63 64
              "com.atproto.label.defs#selfLabels"
64 65
            ],
65 66
            "type": "union",
66 67
            "description": "Self-label values for this post. Effectively content warnings."
67 68
          },
68 69
          "entities": {
69 70
            "type": "array",
70 71
            "items": {
71 72
              "ref": "#entity",
72 73
              "type": "ref"
73 74
            },
74 75
            "description": "DEPRECATED: replaced by app.bsky.richtext.facet."
75 76
          },
76 77
          "createdAt": {
77 78
            "type": "string",
78 79
            "format": "datetime",
79 80
            "description": "Client-declared timestamp when this post was originally created."
80 81
          }
81 82
        }
82 83
      },
83 84
      "description": "Record containing a Bluesky post."
84 85
    },
85 86
    "entity": {
86 87
      "type": "object",
87 88
      "required": [
88 89
        "index",
89 90
        "type",
90 91
        "value"
91 92
      ],
92 93
      "properties": {
93 94
        "type": {
94 95
          "type": "string",
95 96
          "description": "Expected values are 'mention' and 'link'."
96 97
        },
97 98
        "index": {
98 99
          "ref": "#textSlice",
99 100
          "type": "ref"
100 101
        },
101 102
        "value": {
102 103
          "type": "string"
103 104
        }
104 105
      },
105 106
      "description": "Deprecated: use facets instead."
106 107
    },
107 108
    "replyRef": {
108 109
      "type": "object",
109 110
      "required": [
110 111
        "root",
111 112
        "parent"
112 113
      ],
113 114
      "properties": {
114 115
        "root": {
115 116
          "ref": "com.atproto.repo.strongRef",
116 117
          "type": "ref"
117 118
        },
118 119
        "parent": {
119 120
          "ref": "com.atproto.repo.strongRef",
120 121
          "type": "ref"
121 122
        }
122 123
      }
123 124
    },
124 125
    "textSlice": {
125 126
      "type": "object",
126 127
      "required": [
127 128
        "start",
128 129
        "end"
129 130
      ],
130 131
      "properties": {
131 132
        "end": {
132 133
          "type": "integer",
133 134
          "minimum": 0
134 135
        },
135 136
        "start": {
136 137
          "type": "integer",
137 138
          "minimum": 0
138 139
        }
139 140
      },
140 141
      "description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings."
141 142
    }
142 143
  },
143 144
  "$type": "com.atproto.lexicon.schema",
144 145
  "lexicon": 1
145 146
}

Compare Other Versions

Lexicon Garden

@