app.didpic.chat.defs

lexicons.didpic.app

Schema Diff

+35 -0

From

CID
bafyreifeb3y7wrh...
Indexed At
2026-10-11 01:07 UTC
View this version

To

CID
bafyreigrzk73hpv...
Indexed At
2026-10-11 02:09 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 18 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.didpic.chat.defs#linkPreview", src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.url", kind: "prop", name: Some("url") }
Non-Breaking Changes (18)
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.description" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageHeight" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageUrl" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageWidth" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.title" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.url" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.linkPreview" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#replyPreview.linkPreview" }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageHeight", kind: "prop", name: Some("imageHeight") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageUrl", kind: "prop", name: Some("imageUrl") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageWidth", kind: "prop", name: Some("imageWidth") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.linkPreview", kind: "prop", name: Some("linkPreview") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#messageView.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#replyPreview", tgt: "app.didpic.chat.defs#replyPreview.linkPreview", kind: "prop", name: Some("linkPreview") }
  • AddedEdge AddedEdge { src: "app.didpic.chat.defs#replyPreview.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.description" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageHeight" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageUrl" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageWidth" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.title" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.url" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.linkPreview" }
  • AddedVertex { vertex_id: "app.didpic.chat.defs#replyPreview.linkPreview" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.didpic.chat.defs#linkPreview", src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.url", kind: "prop", name: Some("url") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageHeight", kind: "prop", name: Some("imageHeight") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageUrl", kind: "prop", name: Some("imageUrl") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageWidth", kind: "prop", name: Some("imageWidth") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.linkPreview", kind: "prop", name: Some("linkPreview") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#messageView.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#replyPreview", tgt: "app.didpic.chat.defs#replyPreview.linkPreview", kind: "prop", name: Some("linkPreview") }
  • Non-breaking: AddedEdge { src: "app.didpic.chat.defs#replyPreview.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "conversationView": {
5 5
      "properties": {
6 6
        "blockedParticipantDids": {
7 7
          "description": "DIDs of other participants the viewer blocks or is blocked by. Their messages render as Message Blocked, but presence (typing indicators) still flows - clients should anonymize their displayed name to Blocked User rather than hiding the indicator.",
8 8
          "items": {
9 9
            "type": "string"
10 10
          },
11 11
          "type": "array"
12 12
        },
13 13
        "createdAt": {
14 14
          "format": "datetime",
15 15
          "type": "string"
16 16
        },
17 17
        "id": {
18 18
          "type": "string"
19 19
        },
20 20
        "lastMessageAt": {
21 21
          "format": "datetime",
22 22
          "type": "string"
23 23
        },
24 24
        "lastMessagePreview": {
25 25
          "type": "string"
26 26
        },
27 27
        "muted": {
28 28
          "description": "True if the viewer has muted this conversation (app.didpic.chat.setMuted) - push notifications only, unread counts are unaffected.",
29 29
          "type": "boolean"
30 30
        },
31 31
        "nickname": {
32 32
          "description": "Shared name set by any participant (app.didpic.chat.setNickname). Present only when set - clients fall back to a computed name from participants when absent.",
33 33
          "type": "string"
34 34
        },
35 35
        "otherLastReadAt": {
36 36
          "description": "The other participant's last_read_at, for a 1:1 'Seen' indicator. Only present when participantCount is 2.",
37 37
          "format": "datetime",
38 38
          "type": "string"
39 39
        },
40 40
        "participantCount": {
41 41
          "maximum": 10,
42 42
          "minimum": 2,
43 43
          "type": "integer"
44 44
        },
45 45
        "participants": {
46 46
          "items": {
47 47
            "ref": "app.didpic.actor.defs#profileBasic",
48 48
            "type": "ref"
49 49
          },
50 50
          "type": "array"
51 51
        },
52 52
        "unreadCount": {
53 53
          "minimum": 0,
54 54
          "type": "integer"
55 55
        },
56 56
        "viewerBlocked": {
57 57
          "description": "True only when participantCount is 2 and a block exists either direction between the viewer and the other participant - the conversation is frozen, no new messages can be sent.",
58 58
          "type": "boolean"
59 59
        }
60 60
      },
61 61
      "required": [
62 62
        "id",
63 63
        "participants",
64 64
        "participantCount",
65 65
        "createdAt"
66 66
      ],
67 67
      "type": "object"
68 68
    },
69 +
    "linkPreview": {
70 +
      "properties": {
71 +
        "description": {
72 +
          "type": "string"
73 +
        },
74 +
        "imageHeight": {
75 +
          "type": "integer"
76 +
        },
77 +
        "imageUrl": {
78 +
          "type": "string"
79 +
        },
80 +
        "imageWidth": {
81 +
          "type": "integer"
82 +
        },
83 +
        "title": {
84 +
          "type": "string"
85 +
        },
86 +
        "url": {
87 +
          "format": "uri",
88 +
          "type": "string"
89 +
        }
90 +
      },
91 +
      "required": [
92 +
        "url"
93 +
      ],
94 +
      "type": "object"
95 +
    },
69 96
    "messageView": {
70 97
      "properties": {
71 98
        "author": {
72 99
          "ref": "app.didpic.actor.defs#profileBasic",
73 100
          "type": "ref"
74 101
        },
75 102
        "blocked": {
76 103
          "description": "True when this message's author is blocked by, or blocking, the viewer. The message stays in its real position with its real author, but content (text/image/sharedPost/reactions) is withheld - clients should render it like a takedown but labeled Message Blocked.",
77 104
          "type": "boolean"
78 105
        },
79 106
        "conversationId": {
80 107
          "type": "string"
81 108
        },
82 109
        "createdAt": {
83 110
          "format": "datetime",
84 111
          "type": "string"
85 112
        },
86 113
        "id": {
87 114
          "type": "string"
88 115
        },
89 116
        "imageHeight": {
90 117
          "type": "integer"
91 118
        },
92 119
        "imageUrl": {
93 120
          "type": "string"
94 121
        },
95 122
        "imageWidth": {
96 123
          "type": "integer"
97 124
        },
125 +
        "linkPreview": {
126 +
          "ref": "app.didpic.chat.defs#linkPreview",
127 +
          "type": "ref"
128 +
        },
98 129
        "reactions": {
99 130
          "items": {
100 131
            "ref": "app.didpic.chat.defs#reactionSummary",
101 132
            "type": "ref"
102 133
          },
103 134
          "type": "array"
104 135
        },
105 136
        "replyTo": {
106 137
          "ref": "app.didpic.chat.defs#replyPreview",
107 138
          "type": "ref"
108 139
        },
109 140
        "sharedPost": {
110 141
          "ref": "app.didpic.feed.defs#postView",
111 142
          "type": "ref"
112 143
        },
113 144
        "sharedPostUnavailable": {
114 145
          "description": "True when this message shared a post that has since been deleted/taken down - sharedPost is omitted in that case.",
115 146
          "type": "boolean"
116 147
        },
117 148
        "takedown": {
118 149
          "type": "boolean"
119 150
        },
120 151
        "text": {
121 152
          "type": "string"
122 153
        }
123 154
      },
124 155
      "required": [
125 156
        "id",
126 157
        "conversationId",
127 158
        "author",
128 159
        "createdAt"
129 160
      ],
130 161
      "type": "object"
131 162
    },
132 163
    "reactionSummary": {
133 164
      "properties": {
134 165
        "count": {
135 166
          "minimum": 1,
136 167
          "type": "integer"
137 168
        },
138 169
        "reaction": {
139 170
          "type": "string"
140 171
        },
141 172
        "viewerReacted": {
142 173
          "type": "boolean"
143 174
        }
144 175
      },
145 176
      "required": [
146 177
        "reaction",
147 178
        "count",
148 179
        "viewerReacted"
149 180
      ],
150 181
      "type": "object"
151 182
    },
152 183
    "replyPreview": {
153 184
      "properties": {
154 185
        "authorDid": {
155 186
          "type": "string"
156 187
        },
157 188
        "blocked": {
158 189
          "description": "True when the replied-to message's author is blocked by, or blocking, the viewer. The message still exists (unlike unavailable) but its content is withheld - only authorDid is present.",
159 190
          "type": "boolean"
160 191
        },
161 192
        "id": {
162 193
          "type": "string"
163 194
        },
164 195
        "imageHeight": {
165 196
          "type": "integer"
166 197
        },
167 198
        "imageUrl": {
168 199
          "type": "string"
169 200
        },
170 201
        "imageWidth": {
171 202
          "type": "integer"
172 203
        },
204 +
        "linkPreview": {
205 +
          "ref": "app.didpic.chat.defs#linkPreview",
206 +
          "type": "ref"
207 +
        },
173 208
        "sharedPost": {
174 209
          "ref": "app.didpic.feed.defs#postView",
175 210
          "type": "ref"
176 211
        },
177 212
        "sharedPostUnavailable": {
178 213
          "description": "True when the replied-to message shared a post that has since been deleted/taken down - sharedPost is omitted in that case.",
179 214
          "type": "boolean"
180 215
        },
181 216
        "textSnippet": {
182 217
          "type": "string"
183 218
        },
184 219
        "unavailable": {
185 220
          "description": "True when the replied-to message has since been taken down - every other field is omitted in that case.",
186 221
          "type": "boolean"
187 222
        }
188 223
      },
189 224
      "required": [
190 225
        "id",
191 226
        "unavailable"
192 227
      ],
193 228
      "type": "object"
194 229
    }
195 230
  },
196 231
  "id": "app.didpic.chat.defs",
197 232
  "lexicon": 1
198 233
}

Compare Other Versions

Lexicon Garden

@