ink.branchline.listBlooms
Schema Diff
+6 -45
Compatibility Analysis
Breaking Changes Detected
15 breaking changes, 2 non-breaking changes.
Breaking Changes (15)
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#bloomView.createdAt" }
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#bloomView.intermediateCount" }
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#bloomView.pollenCount" }
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef" }
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef.author" }
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef.title" }
- RemovedVertex RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef.uri" }
- RemovedEdge RemovedEdge { src: "ink.branchline.listBlooms#bloomView", tgt: "ink.branchline.listBlooms#bloomView.createdAt", kind: "prop", name: Some("createdAt") }
- RemovedEdge RemovedEdge { src: "ink.branchline.listBlooms#bloomView", tgt: "ink.branchline.listBlooms#bloomView.intermediateCount", kind: "prop", name: Some("intermediateCount") }
- RemovedEdge RemovedEdge { src: "ink.branchline.listBlooms#bloomView", tgt: "ink.branchline.listBlooms#bloomView.pollenCount", kind: "prop", name: Some("pollenCount") }
- RemovedEdge RemovedEdge { src: "ink.branchline.listBlooms#budRef", tgt: "ink.branchline.listBlooms#budRef.author", kind: "prop", name: Some("author") }
- RemovedEdge RemovedEdge { src: "ink.branchline.listBlooms#budRef", tgt: "ink.branchline.listBlooms#budRef.title", kind: "prop", name: Some("title") }
- RemovedEdge RemovedEdge { src: "ink.branchline.listBlooms#budRef", tgt: "ink.branchline.listBlooms#budRef.uri", kind: "prop", name: Some("uri") }
- KindChanged KindChanged { vertex_id: "ink.branchline.listBlooms#bloomView.bloom", old_kind: "ref", new_kind: "string" }
- KindChanged KindChanged { vertex_id: "ink.branchline.listBlooms#bloomView.root", old_kind: "ref", new_kind: "string" }
Non-Breaking Changes (2)
- ConstraintRemoved ConstraintRemoved { vertex_id: "ink.branchline.listBlooms#bloomView.intermediateCount", sort: "minimum" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "ink.branchline.listBlooms#bloomView.pollenCount", sort: "minimum" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "ink.branchline.listBlooms#bloomView.createdAt" }RemovedVertex { vertex_id: "ink.branchline.listBlooms#bloomView.intermediateCount" }RemovedVertex { vertex_id: "ink.branchline.listBlooms#bloomView.pollenCount" }RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef" }RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef.author" }RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef.title" }RemovedVertex { vertex_id: "ink.branchline.listBlooms#budRef.uri" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "ink.branchline.listBlooms#bloomView.intermediateCount", sort: "minimum" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "ink.branchline.listBlooms#bloomView.pollenCount", sort: "minimum" }
Additional Notes
- Breaking: RemovedEdge { src: "ink.branchline.listBlooms#bloomView", tgt: "ink.branchline.listBlooms#bloomView.createdAt", kind: "prop", name: Some("createdAt") }
- Breaking: RemovedEdge { src: "ink.branchline.listBlooms#bloomView", tgt: "ink.branchline.listBlooms#bloomView.intermediateCount", kind: "prop", name: Some("intermediateCount") }
- Breaking: RemovedEdge { src: "ink.branchline.listBlooms#bloomView", tgt: "ink.branchline.listBlooms#bloomView.pollenCount", kind: "prop", name: Some("pollenCount") }
- Breaking: RemovedEdge { src: "ink.branchline.listBlooms#budRef", tgt: "ink.branchline.listBlooms#budRef.author", kind: "prop", name: Some("author") }
- Breaking: RemovedEdge { src: "ink.branchline.listBlooms#budRef", tgt: "ink.branchline.listBlooms#budRef.title", kind: "prop", name: Some("title") }
- Breaking: RemovedEdge { src: "ink.branchline.listBlooms#budRef", tgt: "ink.branchline.listBlooms#budRef.uri", kind: "prop", name: Some("uri") }
- Breaking: KindChanged { vertex_id: "ink.branchline.listBlooms#bloomView.bloom", old_kind: "ref", new_kind: "string" }
- Breaking: KindChanged { vertex_id: "ink.branchline.listBlooms#bloomView.root", old_kind: "ref", new_kind: "string" }
1
1
{
2
2
"id": "ink.branchline.listBlooms",
3
3
"defs": {
4
4
"main": {
5
5
"type": "query",
6
6
"output": {
7
7
"schema": {
8
8
"type": "object",
9
9
"required": [
10
10
"blooms"
11
11
],
12
12
"properties": {
13
13
"blooms": {
14
14
"type": "array",
15
15
"items": {
16
16
"ref": "#bloomView",
17
17
"type": "ref"
18
18
}
19
19
},
20
20
"cursor": {
21
21
"type": "string",
22
22
"description": "Opaque pagination token for the next page. Absent when there are no more results."
23
23
}
24
24
}
25
25
},
26
26
"encoding": "application/json"
27
27
},
28
28
"parameters": {
29
29
"type": "params",
30
30
"properties": {
31
31
"sort": {
32
32
"type": "string",
33
33
"default": "recent",
34
34
"description": "Sort order. 'recent' orders blooms by bud createdAt, newest first. 'pollen' ranks blooms by a pollen-weighted score: each grain of pollen on the bloom or any ancestor contributes with independent time and depth half-life decay, so both fresh tip-of-branch interest and steady deep-lineage accumulation rank well.",
35
35
"knownValues": [
36
36
"recent",
37
37
"pollen"
38
38
]
39
39
},
40
40
"limit": {
41
41
"type": "integer",
42
42
"default": 50,
43
43
"maximum": 100,
44
44
"minimum": 1
45
45
},
46
46
"cursor": {
47
47
"type": "string",
48
48
"description": "Opaque pagination token returned by a prior call."
49
49
}
50
50
}
51
51
},
52
52
"description": "List active blooms: buds past the 24h growing window that are either still inside the 48h follow window or have never gained a child. Supports 'recent' (newest createdAt first) and 'pollen' (decay-weighted pollen score across the bloom and its ancestors)."
53
53
},
54
-
"budRef": {
55
-
"type": "object",
56
-
"required": [
57
-
"uri",
58
-
"title",
59
-
"author"
60
-
],
61
-
"properties": {
62
-
"uri": {
63
-
"type": "string",
64
-
"format": "at-uri"
65
-
},
66
-
"title": {
67
-
"type": "string"
68
-
},
69
-
"author": {
70
-
"type": "string",
71
-
"format": "did"
72
-
}
73
-
}
74
-
},
75
54
"bloomView": {
76
55
"type": "object",
77
56
"required": [
78
57
"bloom",
79
-
"root",
80
-
"createdAt",
81
-
"intermediateCount",
82
-
"pollenCount"
58
+
"root"
83
59
],
84
60
"properties": {
85
61
"root": {
86
-
"ref": "#budRef",
87
-
"type": "ref",
88
-
"description": "The root bud (story seed) this bloom descends from."
62
+
"type": "string",
63
+
"format": "at-uri",
64
+
"description": "The root AT-URI this bloom descends from."
89
65
},
90
66
"bloom": {
91
-
"ref": "#budRef",
92
-
"type": "ref",
93
-
"description": "The bud at the leaf of this path — the bloom itself."
94
-
},
95
-
"createdAt": {
96
67
"type": "string",
97
-
"format": "datetime",
98
-
"description": "createdAt of the bloom bud."
99
-
},
100
-
"pollenCount": {
101
-
"type": "integer",
102
-
"minimum": 0,
103
-
"description": "Lifetime raw pollen count on the bloom bud. Not the ranking-weighted score."
104
-
},
105
-
"intermediateCount": {
106
-
"type": "integer",
107
-
"minimum": 0,
108
-
"description": "Count of distinct intermediate contributor DIDs on the root-to-bloom path, excluding the root author and the bloom author."
68
+
"format": "at-uri",
69
+
"description": "The bloom AT-URI."
109
70
}
110
71
}
111
72
}
112
73
},
113
74
"$type": "com.atproto.lexicon.schema",
114
75
"lexicon": 1
115
76
}