app.didpic.feed.getFeatured
Schema Diff
+20 -7
Compatibility Analysis
Breaking Changes Detected
6 breaking changes, 6 non-breaking changes.
Breaking Changes (6)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.didpic.feed.getFeatured:output", src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.posts", kind: "prop", name: Some("posts") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.didpic.feed.getFeatured:output", src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.post", kind: "prop", name: Some("post") }
- 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.post", tgt: "app.didpic.feed.getFeatured:output.post:variant0", kind: "variant", name: Some("app.didpic.feed.defs#postView") }
- RemovedEdge RemovedEdge { src: "app.didpic.feed.getFeatured:output.post:variant0", tgt: "app.didpic.feed.defs#postView", kind: "ref", name: None }
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.posts", tgt: "app.didpic.feed.getFeatured:output.posts:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.didpic.feed.getFeatured:output.posts:items", tgt: "app.didpic.feed.defs#postView", kind: "ref", 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: RequiredEdgeAdded { vertex_id: "app.didpic.feed.getFeatured:output", src: "app.didpic.feed.getFeatured:output", tgt: "app.didpic.feed.getFeatured:output.posts", kind: "prop", name: Some("posts") }
- Breaking: RequiredEdgeRemoved { vertex_id: "app.didpic.feed.getFeatured:output", 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") }
- Breaking: RemovedEdge { src: "app.didpic.feed.getFeatured:output.post:variant0", tgt: "app.didpic.feed.defs#postView", kind: "ref", name: None }
- 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.posts", tgt: "app.didpic.feed.getFeatured:output.posts:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.didpic.feed.getFeatured:output.posts:items", tgt: "app.didpic.feed.defs#postView", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"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.",
5
+
"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.",
6
6
"output": {
7
7
"encoding": "application/json",
8
8
"schema": {
9
9
"properties": {
10
-
"post": {
11
-
"refs": [
12
-
"app.didpic.feed.defs#postView"
13
-
],
14
-
"type": "union"
10
+
"posts": {
11
+
"items": {
12
+
"ref": "app.didpic.feed.defs#postView",
13
+
"type": "ref"
14
+
},
15
+
"type": "array"
15
16
}
16
17
},
17
18
"required": [
18
-
"post"
19
+
"posts"
19
20
],
20
21
"type": "object"
21
22
}
22
23
},
24
+
"parameters": {
25
+
"properties": {
26
+
"limit": {
27
+
"default": 1,
28
+
"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).",
29
+
"maximum": 4,
30
+
"minimum": 1,
31
+
"type": "integer"
32
+
}
33
+
},
34
+
"type": "params"
35
+
},
23
36
"type": "query"
24
37
}
25
38
},
26
39
"id": "app.didpic.feed.getFeatured",
27
40
"lexicon": 1
28
41
}