app.chronosky.schedule.listPosts
Schema Diff
+48 -2
Compatibility Analysis
Breaking Changes Detected
7 breaking changes, 13 non-breaking changes.
Breaking Changes (7)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageView", src: "app.chronosky.schedule.listPosts#imageView", tgt: "app.chronosky.schedule.listPosts#imageView.images", kind: "prop", name: Some("images") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage", src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.alt", kind: "prop", name: Some("alt") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage", src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.fullsize", kind: "prop", name: Some("fullsize") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage", src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.thumb", kind: "prop", name: Some("thumb") }
- RemovedVertex RemovedVertex { vertex_id: "app.bsky.embed.images#view" }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images#view") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", tgt: "app.bsky.embed.images#view", kind: "ref", name: None }
Non-Breaking Changes (13)
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images:items" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.alt" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.cid" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.fullsize" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.thumb" }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageView.images", tgt: "app.chronosky.schedule.listPosts#imageView.images:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageView.images:items", tgt: "app.chronosky.schedule.listPosts#imageViewImage", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.cid", kind: "prop", name: Some("cid") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("#imageView") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", tgt: "app.chronosky.schedule.listPosts#imageView", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "app.bsky.embed.images#view" }
Added Elements
AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images:items" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.alt" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.cid" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.fullsize" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.thumb" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage", src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.alt", kind: "prop", name: Some("alt") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage", src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.fullsize", kind: "prop", name: Some("fullsize") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage", src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.thumb", kind: "prop", name: Some("thumb") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.listPosts#imageView", src: "app.chronosky.schedule.listPosts#imageView", tgt: "app.chronosky.schedule.listPosts#imageView.images", kind: "prop", name: Some("images") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images#view") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", tgt: "app.bsky.embed.images#view", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageView.images", tgt: "app.chronosky.schedule.listPosts#imageView.images:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageView.images:items", tgt: "app.chronosky.schedule.listPosts#imageViewImage", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.cid", kind: "prop", name: Some("cid") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("#imageView") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", tgt: "app.chronosky.schedule.listPosts#imageView", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"imageView": {
5
+
"description": "Image embed view with CID references. Similar to app.bsky.embed.images#view but includes cid on each image.",
6
+
"properties": {
7
+
"images": {
8
+
"description": "List of image views with CID references.",
9
+
"items": {
10
+
"ref": "#imageViewImage",
11
+
"type": "ref"
12
+
},
13
+
"maxLength": 4,
14
+
"type": "array"
15
+
}
16
+
},
17
+
"required": [
18
+
"images"
19
+
],
20
+
"type": "object"
21
+
},
22
+
"imageViewImage": {
23
+
"description": "Image view with CID for referencing in updatePost. Extends app.bsky.embed.images#viewImage with cid field.",
24
+
"properties": {
25
+
"alt": {
26
+
"description": "Alt text for the image.",
27
+
"type": "string"
28
+
},
29
+
"cid": {
30
+
"description": "CID of the image blob. Use this value with updatePost#imagesEmbed to reference this image without re-uploading.",
31
+
"maxLength": 200,
32
+
"type": "string"
33
+
},
34
+
"fullsize": {
35
+
"description": "Full-size URL for the image.",
36
+
"type": "string"
37
+
},
38
+
"thumb": {
39
+
"description": "Thumbnail URL for the image.",
40
+
"type": "string"
41
+
}
42
+
},
43
+
"required": [
44
+
"thumb",
45
+
"fullsize",
46
+
"alt"
47
+
],
48
+
"type": "object"
49
+
},
4
50
"main": {
5
51
"description": "List scheduled posts for the authenticated user with pagination and filtering.",
6
52
"output": {
7
53
"encoding": "application/json",
8
54
"schema": {
9
55
"properties": {
10
56
"pagination": {
11
57
"ref": "#pagination",
12
58
"type": "ref"
13
59
},
14
60
"posts": {
15
61
"items": {
16
62
"ref": "#scheduledPost",
17
63
"type": "ref"
18
64
},
19
65
"type": "array"
20
66
}
21
67
},
22
68
"required": [
23
69
"posts",
24
70
"pagination"
25
71
],
26
72
"type": "object"
27
73
}
28
74
},
29
75
"parameters": {
30
76
"properties": {
31
77
"limit": {
32
78
"default": 20,
33
79
"description": "Number of parent posts per page. Thread posts always include all children regardless of limit (e.g., limit=100 returns up to 100 parent posts plus all their children).",
34
80
"maximum": 100,
35
81
"minimum": 1,
36
82
"type": "integer"
37
83
},
38
84
"page": {
39
85
"default": 1,
40
86
"description": "Page number (1-indexed).",
41
87
"minimum": 1,
42
88
"type": "integer"
43
89
},
44
90
"status": {
45
91
"description": "Filter by post status.",
46
92
"enum": [
47
93
"PENDING",
48
94
"EXECUTING",
49
95
"COMPLETED",
50
96
"FAILED",
51
97
"CANCELLED"
52
98
],
53
99
"maxLength": 20,
54
100
"type": "string"
55
101
}
56
102
},
57
103
"type": "params"
58
104
},
59
105
"type": "query"
60
106
},
61
107
"pagination": {
62
108
"description": "Pagination information.",
63
109
"properties": {
64
110
"limit": {
65
111
"description": "Posts per page.",
66
112
"minimum": 1,
67
113
"type": "integer"
68
114
},
69
115
"page": {
70
116
"description": "Current page number.",
71
117
"minimum": 1,
72
118
"type": "integer"
73
119
},
74
120
"total": {
75
121
"description": "Total number of posts.",
76
122
"minimum": 0,
77
123
"type": "integer"
78
124
},
79
125
"totalPages": {
80
126
"description": "Total number of pages.",
81
127
"minimum": 0,
82
128
"type": "integer"
83
129
}
84
130
},
85
131
"required": [
86
132
"page",
87
133
"limit",
88
134
"total",
89
135
"totalPages"
90
136
],
91
137
"type": "object"
92
138
},
93
139
"scheduledPost": {
94
140
"description": "Scheduled post object with AT Protocol standard fields.",
95
141
"properties": {
96
142
"atRkey": {
97
143
"description": "AT Protocol record key. Present after successful execution.",
98
144
"maxLength": 100,
99
145
"type": "string"
100
146
},
101
147
"atUri": {
102
148
"description": "AT Protocol post URI (at://did:plc:.../app.bsky.feed.post/...). Present after successful execution.",
103
149
"maxLength": 500,
104
150
"type": "string"
105
151
},
106
152
"children": {
107
153
"description": "Child posts in thread. Only present for parent posts with children.",
108
154
"items": {
109
155
"ref": "#scheduledPost",
110
156
"type": "ref"
111
157
},
112
158
"type": "array"
113
159
},
114
160
"createdAt": {
115
161
"description": "Post creation datetime (ISO 8601).",
116
162
"format": "datetime",
117
163
"maxLength": 100,
118
164
"type": "string"
119
165
},
120
166
"embed": {
121
-
"description": "Embedded content such as images, external links, or quoted posts (app.bsky.embed.*). For image embeds, may be returned as app.bsky.embed.images#view with thumb/fullsize URLs.",
167
+
"description": "Embedded content such as images, external links, or quoted posts. For image embeds, returned as #imageView with thumb/fullsize URLs and CID references.",
122
168
"refs": [
123
169
"app.bsky.embed.images",
124
-
"app.bsky.embed.images#view",
170
+
"#imageView",
125
171
"app.bsky.embed.external",
126
172
"app.bsky.embed.record",
127
173
"app.bsky.embed.video",
128
174
"app.bsky.embed.recordWithMedia"
129
175
],
130
176
"type": "union"
131
177
},
132
178
"errorMsg": {
133
179
"description": "Error message if execution failed. Present only when status is FAILED.",
134
180
"maxLength": 2000,
135
181
"type": "string"
136
182
},
137
183
"executedAt": {
138
184
"description": "Execution completion datetime (ISO 8601). Present only when status is COMPLETED or FAILED.",
139
185
"format": "datetime",
140
186
"maxLength": 100,
141
187
"type": "string"
142
188
},
143
189
"facets": {
144
190
"description": "Rich text facets for mentions, links, and hashtags (app.bsky.richtext.facet).",
145
191
"items": {
146
192
"ref": "app.bsky.richtext.facet",
147
193
"type": "ref"
148
194
},
149
195
"type": "array"
150
196
},
151
197
"id": {
152
198
"description": "Post ID.",
153
199
"maxLength": 100,
154
200
"type": "string"
155
201
},
156
202
"labels": {
157
203
"description": "Self-applied content labels for content warnings (AT Protocol standard).",
158
204
"ref": "com.atproto.label.defs#selfLabels",
159
205
"type": "ref"
160
206
},
161
207
"langs": {
162
208
"description": "Language codes for post content (app.bsky.feed.post#langs). ISO 639-1 or 639-3 codes.",
163
209
"items": {
164
210
"format": "language",
165
211
"type": "string"
166
212
},
167
213
"maxLength": 3,
168
214
"type": "array"
169
215
},
170
216
"parentPostId": {
171
217
"description": "Parent post ID for thread posts. Null for root posts.",
172
218
"maxLength": 100,
173
219
"type": "string"
174
220
},
175
221
"postgateCid": {
176
222
"description": "CID for postgate record. Present after successful execution with postgate settings.",
177
223
"maxLength": 100,
178
224
"type": "string"
179
225
},
180
226
"postgateDisableEmbedding": {
181
227
"description": "Whether to disable quote posts and embeds for this post (app.bsky.feed.postgate).",
182
228
"type": "boolean"
183
229
},
184
230
"postgateUri": {
185
231
"description": "AT Protocol URI for postgate record. Present after successful execution with postgate settings.",
186
232
"maxLength": 500,
187
233
"type": "string"
188
234
},
189
235
"retryCount": {
190
236
"description": "Number of execution retry attempts.",
191
237
"minimum": 0,
192
238
"type": "integer"
193
239
},
194
240
"scheduledAt": {
195
241
"description": "Scheduled publication datetime (ISO 8601).",
196
242
"format": "datetime",
197
243
"maxLength": 100,
198
244
"type": "string"
199
245
},
200
246
"status": {
201
247
"description": "Post status.",
202
248
"enum": [
203
249
"PENDING",
204
250
"EXECUTING",
205
251
"COMPLETED",
206
252
"FAILED",
207
253
"CANCELLED"
208
254
],
209
255
"maxLength": 20,
210
256
"type": "string"
211
257
},
212
258
"text": {
213
259
"description": "Post content text (app.bsky.feed.post#text). May be empty if embeds are present.",
214
260
"maxGraphemes": 300,
215
261
"maxLength": 3000,
216
262
"type": "string"
217
263
},
218
264
"threadDepth": {
219
265
"description": "Thread depth level (0 for root post, 1 for direct reply, etc.).",
220
266
"minimum": 0,
221
267
"type": "integer"
222
268
},
223
269
"threadPosition": {
224
270
"description": "Position in thread (0-indexed). 0 for parent post, 1+ for children.",
225
271
"minimum": 0,
226
272
"type": "integer"
227
273
},
228
274
"threadgateCid": {
229
275
"description": "CID for threadgate record. Present after successful execution with threadgate rules.",
230
276
"maxLength": 100,
231
277
"type": "string"
232
278
},
233
279
"threadgateRules": {
234
280
"description": "Reply restriction rules (app.bsky.feed.threadgate). Defines who can reply to this post.",
235
281
"items": {
236
282
"refs": [
237
283
"app.bsky.feed.threadgate#mentionRule",
238
284
"app.bsky.feed.threadgate#followerRule",
239
285
"app.bsky.feed.threadgate#followingRule",
240
286
"app.bsky.feed.threadgate#listRule"
241
287
],
242
288
"type": "union"
243
289
},
244
290
"maxLength": 5,
245
291
"type": "array"
246
292
},
247
293
"threadgateUri": {
248
294
"description": "AT Protocol URI for threadgate record. Present after successful execution with threadgate rules.",
249
295
"maxLength": 500,
250
296
"type": "string"
251
297
},
252
298
"updatedAt": {
253
299
"description": "Post last update datetime (ISO 8601).",
254
300
"format": "datetime",
255
301
"maxLength": 100,
256
302
"type": "string"
257
303
},
258
304
"userId": {
259
305
"description": "User ID who created this post.",
260
306
"maxLength": 200,
261
307
"type": "string"
262
308
}
263
309
},
264
310
"required": [
265
311
"id",
266
312
"userId",
267
313
"text",
268
314
"scheduledAt",
269
315
"status",
270
316
"createdAt",
271
317
"updatedAt",
272
318
"retryCount",
273
319
"langs"
274
320
],
275
321
"type": "object"
276
322
}
277
323
},
278
324
"id": "app.chronosky.schedule.listPosts",
279
325
"lexicon": 1
280
326
}