app.didpic.feed.getFeatured
Schema Diff
+20 -7
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 6 non-breaking changes.
Breaking Changes (4)
- RemovedVertex RemovedVertex { vertex_id: "app.didpic.feed.getFeatured:output.post" }
- RemovedVertex RemovedVertex { vertex_id: "app.didpic.feed.getFeatured:output.post:variant0" }
- RemovedEdge RemovedEdge { src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.post", kind: "prop", name: Some("post") }
- RemovedEdge RemovedEdge { src: "app.didpic.feed.getFeatured:output.post", tgt: "app.didpic.feed.getFeatured:output.post:variant0", kind: "variant", name: Some("app.didpic.feed.defs#postView") }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.getFeatured:output.posts" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.getFeatured:output.posts:items" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.feed.getFeatured:params" }
- AddedEdge AddedEdge { src: "app.didpic.feed.getFeatured", tgt: "app.didpic.feed.getFeatured:params", kind: "prop", name: Some("parameters") }
- AddedEdge AddedEdge { src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.posts", kind: "prop", name: Some("posts") }
- AddedEdge AddedEdge { src: "app.didpic.feed.getFeatured:output.posts", tgt: "app.didpic.feed.getFeatured:output.posts:items", kind: "items", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "app.didpic.feed.getFeatured:output.post" }RemovedVertex { vertex_id: "app.didpic.feed.getFeatured:output.post:variant0" }
Added Elements
AddedVertex { vertex_id: "app.didpic.feed.getFeatured:output.posts" }AddedVertex { vertex_id: "app.didpic.feed.getFeatured:output.posts:items" }AddedVertex { vertex_id: "app.didpic.feed.getFeatured:params" }
Additional Notes
- Breaking: RemovedEdge { src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.post", kind: "prop", name: Some("post") }
- Breaking: RemovedEdge { src: "app.didpic.feed.getFeatured:output.post", tgt: "app.didpic.feed.getFeatured:output.post:variant0", kind: "variant", name: Some("app.didpic.feed.defs#postView") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.getFeatured", tgt: "app.didpic.feed.getFeatured:params", kind: "prop", name: Some("parameters") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.posts", kind: "prop", name: Some("posts") }
- Non-breaking: AddedEdge { src: "app.didpic.feed.getFeatured:output.posts", tgt: "app.didpic.feed.getFeatured:output.posts:items", kind: "items", name: None }
1
1
{
2
2
"id": "app.didpic.feed.getFeatured",
3
3
"defs": {
4
4
"main": {
5
5
"type": "query",
6
6
"output": {
7
7
"schema": {
8
8
"type": "object",
9
9
"required": [
10
-
"post"
10
+
"posts"
11
11
],
12
12
"properties": {
13
-
"post": {
14
-
"refs": [
15
-
"app.didpic.feed.defs#postView"
16
-
],
17
-
"type": "union"
13
+
"posts": {
14
+
"type": "array",
15
+
"items": {
16
+
"ref": "app.didpic.feed.defs#postView",
17
+
"type": "ref"
18
+
}
18
19
}
19
20
}
20
21
},
21
22
"encoding": "application/json"
22
23
},
23
-
"description": "Single most-recent eligible post from the viewer's following feed. Strictest filter set in the system: no labels (account or post), no discover suppression, no takedowns, no blocks. Designed for OS widgets / Live Activities / any glanceable surface that needs one always-safe image. Returns { post: null } when nothing qualifies rather than 404."
24
+
"parameters": {
25
+
"type": "params",
26
+
"properties": {
27
+
"limit": {
28
+
"type": "integer",
29
+
"default": 1,
30
+
"maximum": 4,
31
+
"minimum": 1,
32
+
"description": "How many posts to return. Clamped 1..4 server-side. Widget consumers pass 1 (small / single layout), 2 (medium pair / large pair), or 4 (large grid)."
33
+
}
34
+
}
35
+
},
36
+
"description": "Most-recent eligible posts (up to 4) from the viewer's following feed. Strictest filter set in the system: no labels (account or post), no discover suppression, no takedowns, no blocks. Designed for OS widgets / Live Activities / any glanceable surface that needs safe-by-default images. Always returns `{ posts: [] }` (possibly empty) instead of 404."
24
37
}
25
38
},
26
39
"$type": "com.atproto.lexicon.schema",
27
40
"lexicon": 1
28
41
}