ink.branchline.getBuds
Schema Diff
+13 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 6 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "ink.branchline.getBuds#budView", src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.author", kind: "prop", name: Some("author") }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "ink.branchline.getBuds#budView.bloomsAt" }
- AddedVertex AddedVertex { vertex_id: "ink.branchline.getBuds#budView.viewerBookmarked" }
- AddedVertex AddedVertex { vertex_id: "ink.branchline.getBuds#budView.viewerCanEdit" }
- AddedEdge AddedEdge { src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.bloomsAt", kind: "prop", name: Some("bloomsAt") }
- AddedEdge AddedEdge { src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.viewerBookmarked", kind: "prop", name: Some("viewerBookmarked") }
- AddedEdge AddedEdge { src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.viewerCanEdit", kind: "prop", name: Some("viewerCanEdit") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "ink.branchline.getBuds#budView.bloomsAt" }AddedVertex { vertex_id: "ink.branchline.getBuds#budView.viewerBookmarked" }AddedVertex { vertex_id: "ink.branchline.getBuds#budView.viewerCanEdit" }
Additional Notes
- Breaking: RequiredEdgeRemoved { vertex_id: "ink.branchline.getBuds#budView", src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.author", kind: "prop", name: Some("author") }
- Non-breaking: AddedEdge { src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.bloomsAt", kind: "prop", name: Some("bloomsAt") }
- Non-breaking: AddedEdge { src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.viewerBookmarked", kind: "prop", name: Some("viewerBookmarked") }
- Non-breaking: AddedEdge { src: "ink.branchline.getBuds#budView", tgt: "ink.branchline.getBuds#budView.viewerCanEdit", kind: "prop", name: Some("viewerCanEdit") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"authorView": {
5
5
"properties": {
6
6
"did": {
7
7
"format": "did",
8
8
"type": "string"
9
9
},
10
10
"displayName": {
11
11
"maxGraphemes": 64,
12
12
"maxLength": 640,
13
13
"type": "string"
14
14
},
15
15
"handle": {
16
16
"format": "handle",
17
17
"type": "string"
18
18
}
19
19
},
20
20
"required": [
21
21
"did",
22
22
"handle"
23
23
],
24
24
"type": "object"
25
25
},
26
26
"budView": {
27
27
"properties": {
28
28
"author": {
29
29
"ref": "#authorView",
30
30
"type": "ref"
31
31
},
32
+
"bloomsAt": {
33
+
"description": "Timestamp when this bud finishes its growing window and blooms into the feed. Present on every bud; compare with the current time rather than relying on `growing` alone when a live countdown is needed.",
34
+
"format": "datetime",
35
+
"type": "string"
36
+
},
32
37
"children": {
33
38
"description": "AT-URIs of buds that extend this bud.",
34
39
"items": {
35
40
"format": "at-uri",
36
41
"type": "string"
37
42
},
38
43
"type": "array"
39
44
},
40
45
"cid": {
41
46
"format": "cid",
42
47
"type": "string"
43
48
},
44
49
"createdAt": {
45
50
"format": "datetime",
46
51
"type": "string"
47
52
},
48
53
"depth": {
49
54
"description": "Depth of this bud in the story tree (0 = root).",
50
55
"minimum": 0,
51
56
"type": "integer"
52
57
},
53
58
"formatting": {
54
59
"items": {
55
60
"ref": "ink.branchline.bud#formatSpan",
56
61
"type": "ref"
57
62
},
58
63
"type": "array"
59
64
},
60
65
"growing": {
61
66
"description": "True when the bud has not yet reached its bloomsAt time and is still in the growing window.",
62
67
"type": "boolean"
63
68
},
64
69
"intermediateCount": {
65
70
"description": "Count of distinct contributor DIDs on the root-to-bud path, including the root author and this bud's author.",
66
71
"minimum": 0,
67
72
"type": "integer"
68
73
},
69
74
"locked": {
70
75
"description": "True when the bud's bloom time can no longer be extended.",
71
76
"type": "boolean"
72
77
},
73
78
"parent": {
74
79
"ref": "com.atproto.repo.strongRef",
75
80
"type": "ref"
76
81
},
77
82
"pollenCount": {
78
83
"description": "Lifetime number of pollen grains on this bud (raw count, not the ranking-weighted score).",
79
84
"minimum": 0,
80
85
"type": "integer"
81
86
},
82
87
"text": {
83
88
"type": "string"
84
89
},
85
90
"title": {
86
91
"type": "string"
87
92
},
88
93
"uri": {
89
94
"format": "at-uri",
90
95
"type": "string"
91
96
},
97
+
"viewerBookmarked": {
98
+
"description": "True when the authenticated viewer has a bookmark whose subject is this bud. A bookmark earlier or later on the same lineage does not light this flag; only the exact subject does. Omitted when there is no viewer session.",
99
+
"type": "boolean"
100
+
},
101
+
"viewerCanEdit": {
102
+
"description": "True when the authenticated viewer is permitted to edit this bud — they are the author, the bud has no children, and it is not locked. Omitted when there is no viewer session.",
103
+
"type": "boolean"
104
+
},
92
105
"viewerPollinated": {
93
106
"description": "True when the authenticated viewer has already pollinated this bud. Omitted when there is no viewer session.",
94
107
"type": "boolean"
95
108
}
96
109
},
97
110
"required": [
98
111
"uri",
99
112
"cid",
100
-
"author",
101
113
"title",
102
114
"text",
103
115
"createdAt",
104
116
"depth",
105
117
"pollenCount"
106
118
],
107
119
"type": "object"
108
120
},
109
121
"main": {
110
122
"description": "Hydrate full bud views for a set of AT-URIs. Buds are returned in the same order as the input URIs. Unknown URIs are silently omitted from the response.",
111
123
"output": {
112
124
"encoding": "application/json",
113
125
"schema": {
114
126
"properties": {
115
127
"buds": {
116
128
"items": {
117
129
"ref": "#budView",
118
130
"type": "ref"
119
131
},
120
132
"type": "array"
121
133
}
122
134
},
123
135
"required": [
124
136
"buds"
125
137
],
126
138
"type": "object"
127
139
}
128
140
},
129
141
"parameters": {
130
142
"properties": {
131
143
"uris": {
132
144
"description": "AT-URIs of buds to hydrate.",
133
145
"items": {
134
146
"format": "at-uri",
135
147
"type": "string"
136
148
},
137
149
"maxLength": 25,
138
150
"type": "array"
139
151
}
140
152
},
141
153
"required": [
142
154
"uris"
143
155
],
144
156
"type": "params"
145
157
},
146
158
"type": "query"
147
159
}
148
160
},
149
161
"id": "ink.branchline.getBuds",
150
162
"lexicon": 1
151
163
}