ink.branchline.getBuds

branchline.ink

Schema Diff

+13 -1

From

CID
bafyreihte2qd42i...
Indexed At
2026-04-18 03:25 UTC
View this version

To

CID
bafyreig3o45if75...
Indexed At
2026-04-20 22:24 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@