ink.branchline.listBlooms

branchline.ink

Schema Diff

+6 -45

From

CID
bafyreihea634hkw...
Indexed At
2026-04-15 19:26 UTC
View this version

To

CID
bafyreifzcuumed2...
Indexed At
2026-04-18 04:00 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@