full diff

social.coves.community.comment.defs

coves.social +4 −2
From
bafyreibos2hjbu6p42hywl42k3x4yh6tg5hmi43dgbhtxiymevc4mykvye indexed 2026-07-24 05:18 UTC View this version
To
bafyreiau7yirximboqs7h2b4xwfwhen3rrlcvnn2rjg3x6aythuppgbmia indexed 2026-09-07 20:28 UTC View this version

Compatibility

breaking 2 breaking changes, 10 non-breaking changes.

Breaking changes (2)
  • RemovedEdge RemovedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant1", kind: "variant", name: Some("social.coves.embed.post") }
  • RemovedEdge RemovedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant1", tgt: "social.coves.embed.post", kind: "ref", name: None }
Non-breaking changes (10)
  • AddedVertex AddedVertex { vertex_id: "social.coves.community.comment.defs#commentView.embed:variant2" }
  • AddedVertex AddedVertex { vertex_id: "social.coves.community.comment.defs#commentView.embed:variant3" }
  • AddedVertex AddedVertex { vertex_id: "social.coves.embed.images#view" }
  • AddedVertex AddedVertex { vertex_id: "social.coves.embed.post#view" }
  • AddedEdge AddedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant1", kind: "variant", name: Some("social.coves.embed.images#view") }
  • AddedEdge AddedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant2", kind: "variant", name: Some("social.coves.embed.post") }
  • AddedEdge AddedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant3", kind: "variant", name: Some("social.coves.embed.post#view") }
  • AddedEdge AddedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant1", tgt: "social.coves.embed.images#view", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant2", tgt: "social.coves.embed.post", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant3", tgt: "social.coves.embed.post#view", kind: "ref", name: None }

Migration guidance

Added

  • AddedVertex { vertex_id: "social.coves.community.comment.defs#commentView.embed:variant2" }
  • AddedVertex { vertex_id: "social.coves.community.comment.defs#commentView.embed:variant3" }
  • AddedVertex { vertex_id: "social.coves.embed.images#view" }
  • AddedVertex { vertex_id: "social.coves.embed.post#view" }

Notes

  • Breaking: RemovedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant1", kind: "variant", name: Some("social.coves.embed.post") }
  • Breaking: RemovedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant1", tgt: "social.coves.embed.post", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant1", kind: "variant", name: Some("social.coves.embed.images#view") }
  • Non-breaking: AddedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant2", kind: "variant", name: Some("social.coves.embed.post") }
  • Non-breaking: AddedEdge { src: "social.coves.community.comment.defs#commentView.embed", tgt: "social.coves.community.comment.defs#commentView.embed:variant3", kind: "variant", name: Some("social.coves.embed.post#view") }
  • Non-breaking: AddedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant1", tgt: "social.coves.embed.images#view", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant2", tgt: "social.coves.embed.post", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.coves.community.comment.defs#commentView.embed:variant3", tgt: "social.coves.embed.post#view", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "blockedComment": {
55 "description": "Comment is blocked due to viewer blocking author or moderation action",
66 "properties": {
77 "blocked": {
88 "const": true,
99 "description": "Always true for blocked comments",
1010 "type": "boolean"
1111 },
1212 "blockedBy": {
1313 "description": "What caused the block: viewer blocked author, or comment was removed by moderators",
1414 "knownValues": [
1515 "author",
1616 "moderator"
1717 ],
1818 "maxLength": 64,
1919 "type": "string"
2020 },
2121 "uri": {
2222 "description": "AT-URI of the blocked comment",
2323 "format": "at-uri",
2424 "type": "string"
2525 }
2626 },
2727 "required": [
2828 "uri",
2929 "blocked"
3030 ],
3131 "type": "object"
3232 },
3333 "commentRef": {
3434 "description": "Reference to a comment record",
3535 "properties": {
3636 "cid": {
3737 "description": "CID of the comment record",
3838 "format": "cid",
3939 "type": "string"
4040 },
4141 "uri": {
4242 "description": "AT-URI of the comment",
4343 "format": "at-uri",
4444 "type": "string"
4545 }
4646 },
4747 "required": [
4848 "uri",
4949 "cid"
5050 ],
5151 "type": "object"
5252 },
5353 "commentStats": {
5454 "description": "Statistics for a comment",
5555 "properties": {
5656 "downvotes": {
5757 "description": "Number of downvotes",
5858 "minimum": 0,
5959 "type": "integer"
6060 },
6161 "replyCount": {
6262 "description": "Number of direct replies to this comment",
6363 "minimum": 0,
6464 "type": "integer"
6565 },
6666 "score": {
6767 "description": "Calculated score (upvotes - downvotes)",
6868 "type": "integer"
6969 },
7070 "upvotes": {
7171 "description": "Number of upvotes",
7272 "minimum": 0,
7373 "type": "integer"
7474 }
7575 },
7676 "required": [
7777 "upvotes",
7878 "downvotes",
7979 "score",
8080 "replyCount"
8181 ],
8282 "type": "object"
8383 },
8484 "commentView": {
8585 "description": "Base view for a single comment with voting, stats, and viewer state",
8686 "properties": {
8787 "author": {
8888 "description": "Comment author information",
8989 "ref": "social.coves.community.post.defs#authorView",
9090 "type": "ref"
9191 },
9292 "cid": {
9393 "description": "CID of the comment record",
9494 "format": "cid",
9595 "type": "string"
9696 },
9797 "createdAt": {
9898 "description": "When the comment was created",
9999 "format": "datetime",
100100 "type": "string"
101101 },
102102 "embed": {
103 "description": "Embedded content from the comment record (images or quoted post). The AppView may transform blob references into fetchable URLs and enrich quoted posts with a resolved view.",
103 "description": "Embedded content from the comment record (images or quoted post). The AppView transforms blob references into fetchable image URLs and enriches quoted posts with a resolved view, so a served embed carries a #view type.",
104104 "refs": [
105105 "social.coves.embed.images",
106 "social.coves.embed.post"
106 "social.coves.embed.images#view",
107 "social.coves.embed.post",
108 "social.coves.embed.post#view"
107109 ],
108110 "type": "union"
109111 },
110112 "indexedAt": {
111113 "description": "When this comment was indexed by the AppView",
112114 "format": "datetime",
113115 "type": "string"
114116 },
115117 "parent": {
116118 "description": "Reference to parent comment if this is a nested reply",
117119 "ref": "#commentRef",
118120 "type": "ref"
119121 },
120122 "post": {
121123 "description": "Reference to the parent post",
122124 "ref": "#postRef",
123125 "type": "ref"
124126 },
125127 "record": {
126128 "description": "The actual comment record verbatim",
127129 "type": "unknown"
128130 },
129131 "stats": {
130132 "description": "Comment statistics (votes, replies)",
131133 "ref": "#commentStats",
132134 "type": "ref"
133135 },
134136 "uri": {
135137 "description": "AT-URI of the comment record",
136138 "format": "at-uri",
137139 "type": "string"
138140 },
139141 "viewer": {
140142 "description": "Viewer-specific state (vote, saved, etc.)",
141143 "ref": "#commentViewerState",
142144 "type": "ref"
143145 }
144146 },
145147 "required": [
146148 "uri",
147149 "cid",
148150 "author",
149151 "record",
150152 "post",
151153 "createdAt",
152154 "indexedAt",
153155 "stats"
154156 ],
155157 "type": "object"
156158 },
157159 "commentViewerState": {
158160 "description": "Viewer-specific state for a comment",
159161 "properties": {
160162 "vote": {
161163 "description": "Viewer's vote on this comment",
162164 "knownValues": [
163165 "up",
164166 "down"
165167 ],
166168 "maxLength": 64,
167169 "type": "string"
168170 },
169171 "voteUri": {
170172 "description": "AT-URI of the viewer's vote record",
171173 "format": "at-uri",
172174 "type": "string"
173175 }
174176 },
175177 "type": "object"
176178 },
177179 "notFoundComment": {
178180 "description": "Comment was not found (deleted, never indexed, or invalid URI)",
179181 "properties": {
180182 "notFound": {
181183 "const": true,
182184 "description": "Always true for not found comments",
183185 "type": "boolean"
184186 },
185187 "uri": {
186188 "description": "AT-URI of the missing comment",
187189 "format": "at-uri",
188190 "type": "string"
189191 }
190192 },
191193 "required": [
192194 "uri",
193195 "notFound"
194196 ],
195197 "type": "object"
196198 },
197199 "postRef": {
198200 "description": "Reference to a post record",
199201 "properties": {
200202 "cid": {
201203 "description": "CID of the post record",
202204 "format": "cid",
203205 "type": "string"
204206 },
205207 "uri": {
206208 "description": "AT-URI of the post",
207209 "format": "at-uri",
208210 "type": "string"
209211 }
210212 },
211213 "required": [
212214 "uri",
213215 "cid"
214216 ],
215217 "type": "object"
216218 },
217219 "threadViewComment": {
218220 "description": "Wrapper for threaded comment structure, similar to Bluesky's threadViewPost pattern",
219221 "properties": {
220222 "comment": {
221223 "description": "The comment itself",
222224 "ref": "#commentView",
223225 "type": "ref"
224226 },
225227 "hasMore": {
226228 "description": "True if more replies exist but are not included in this response",
227229 "type": "boolean"
228230 },
229231 "replies": {
230232 "description": "Nested replies to this comment",
231233 "items": {
232234 "refs": [
233235 "#threadViewComment",
234236 "#notFoundComment",
235237 "#blockedComment"
236238 ],
237239 "type": "union"
238240 },
239241 "type": "array"
240242 }
241243 },
242244 "required": [
243245 "comment"
244246 ],
245247 "type": "object"
246248 }
247249 },
248250 "id": "social.coves.community.comment.defs",
249251 "lexicon": 1
250252}

Compare other versions