ink.branchline.publishBud

branchline.ink

Schema Diff

+27 -3

From

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

To

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

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "id": "ink.branchline.publishBud",
3 3
  "defs": {
4 4
    "main": {
5 5
      "type": "procedure",
6 6
      "input": {
7 7
        "schema": {
8 8
          "type": "object",
9 9
          "required": [
10 10
            "parentUri",
11 11
            "title",
12 12
            "text"
13 13
          ],
14 14
          "properties": {
15 15
            "text": {
16 16
              "type": "string",
17 17
              "maxLength": 20000
18 18
            },
19 19
            "title": {
20 20
              "type": "string",
21 21
              "maxLength": 1200,
22 22
              "maxGraphemes": 120
23 23
            },
24 24
            "parentUri": {
25 25
              "type": "string",
26 26
              "format": "at-uri",
27 -
              "description": "AT-URI of the parent bud being continued."
27 +
              "description": "AT-URI of the parent — either an ink.branchline.bud (continuation) or an ink.branchline.seed (root bud being planted)."
28 28
            },
29 29
            "formatting": {
30 30
              "type": "array",
31 31
              "items": {
32 32
                "ref": "ink.branchline.bud#formatSpan",
33 33
                "type": "ref"
34 34
              },
35 35
              "description": "Byte-offset inline formatting spans over `text`."
36 36
            }
37 37
          }
38 38
        },
39 39
        "encoding": "application/json"
40 40
      },
41 41
      "errors": [
42 42
        {
43 43
          "name": "Unauthorized",
44 44
          "description": "The caller is not signed in."
45 45
        },
46 46
        {
47 47
          "name": "ParentNotFound",
48 -
          "description": "The parent bud does not exist in the AppView."
48 +
          "description": "The parent (bud or seed) does not exist in the AppView."
49 +
        },
50 +
        {
51 +
          "name": "ParentCidMismatch",
52 +
          "description": "The resolved parent's CID does not match the value on the record."
49 53
        },
50 54
        {
51 55
          "name": "SelfReply",
52 56
          "description": "The caller is the parent bud's author. Buds cannot continue themselves."
53 57
        },
54 58
        {
55 59
          "name": "ParentGrowing",
56 60
          "description": "The parent bud is still inside its 24h growing window."
57 61
        },
58 62
        {
59 63
          "name": "WordLimitExceeded",
60 64
          "description": "The bud text exceeds the 500-word ceiling."
65 +
        },
66 +
        {
67 +
          "name": "InvalidFormatting",
68 +
          "description": "A formatting span is malformed — offsets out of bounds, start >= end, or an unknown span type."
69 +
        },
70 +
        {
71 +
          "name": "NotSeedGrantee",
72 +
          "description": "The caller is not the grantee of the seed they are trying to plant."
73 +
        },
74 +
        {
75 +
          "name": "SeedExpired",
76 +
          "description": "The seed's expiry has passed."
77 +
        },
78 +
        {
79 +
          "name": "SeedChainBroken",
80 +
          "description": "The seed's ancestor chain is missing, expired, or broken by a grantor/grantee mismatch."
81 +
        },
82 +
        {
83 +
          "name": "SeedAlreadyPlanted",
84 +
          "description": "Another bud has already been planted from this seed."
61 85
        }
62 86
      ],
63 87
      "output": {
64 88
        "schema": {
65 89
          "type": "object",
66 90
          "required": [
67 91
            "uri",
68 92
            "cid"
69 93
          ],
70 94
          "properties": {
71 95
            "cid": {
72 96
              "type": "string",
73 97
              "format": "cid"
74 98
            },
75 99
            "uri": {
76 100
              "type": "string",
77 101
              "format": "at-uri"
78 102
            }
79 103
          }
80 104
        },
81 105
        "encoding": "application/json"
82 106
      },
83 -
      "description": "Publish a new bud as a continuation of an existing parent. The caller must be signed in. The AppView writes an ink.branchline.bud record to the caller's PDS and mirrors it into the local read cache so the new bud is immediately navigable. Rejection reasons mirror ink.branchline.bud create validation — 500-word limit on `text`, 24h parent growing window, self-reply, etc. Root buds are not created through this procedure; they are written directly to an allowlisted author's PDS and picked up by the indexer."
107 +
      "description": "Publish a new bud. The parent may be another bud (continuation) or a seed (planting a root bud). The caller must be signed in. The AppView writes an ink.branchline.bud record to the caller's PDS and mirrors it into the local read cache so the new bud is immediately navigable. Rejection reasons mirror ink.branchline.bud create validation — 500-word limit on `text`, 24h parent growing window, self-reply, seed chain/expiry/grantee checks, etc."
84 108
    }
85 109
  },
86 110
  "$type": "com.atproto.lexicon.schema",
87 111
  "lexicon": 1
88 112
}

Compare Other Versions

Lexicon Garden

@