ink.branchline.publishBud
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.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | branchline.ink |
| Indexed |
Procedure
procedure · POSTInput
application/jsonformatting
arrayByte-offset inline formatting spans over `text`.
AT-URI of the parent — either an ink.branchline.bud (continuation) or an ink.branchline.seed (root bud being planted).
maxLength: 20000
maxLength: 1200maxGraphemes: 120
Errors
Unauthorized
The caller is not signed in.
ParentNotFound
The parent (bud or seed) does not exist in the AppView.
ParentCidMismatch
The resolved parent's CID does not match the value on the record.
SelfReply
The caller is the parent bud's author. Buds cannot continue themselves.
ParentGrowing
The parent bud is still inside its 24h growing window.
WordLimitExceeded
The bud text exceeds the 500-word ceiling.
InvalidFormatting
A formatting span is malformed — offsets out of bounds, start >= end, or an unknown span type.
NotSeedGrantee
The caller is not the grantee of the seed they are trying to plant.
SeedExpired
The seed's expiry has passed.
SeedChainBroken
The seed's ancestor chain is missing, expired, or broken by a grantor/grantee mismatch.
SeedAlreadyPlanted
Another bud has already been planted from this seed.
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
ink.branchline.editBud
procedureEdit the title, text, and/or inline formatting of an existing bud. The caller must be signed in and must be the bud's author. The bud must have no children and must not be locked — edits to a bud with descendants would reshape text that later writers have already continued from, and locked buds are frozen by an admin. The AppView overwrites the ink.branchline.bud record in the caller's PDS via putRecord and mirrors the new row into the local read cache. `createdAt` and `bloomsAt` are preserved;
-
ink.branchline.publishSeed
procedureGift a seed. The caller must be signed in and must be the grantee of `grantor`; publishing passes that seed's planting right on to `grantee` as a new child seed. The AppView writes an ink.branchline.seed record to the caller's PDS and mirrors it into the local read cache. Root (grantor-less) seeds are not created through this endpoint — they are authored only by the branchline.ink repo.
-
ink.branchline.bud
recordA bud: one contribution to a story tree. Freshly written buds grow for 24h (not yet followable); after that they open as 'blooms' that other writers can extend; past 48h without children they lock into 'branches'. These lifecycle stages are views of the same record, not different record types. The AppView enforces a 500-word ceiling on `text` (counted via Unicode word segmentation); writes that exceed it are rejected as WordLimitExceeded.
-
ink.branchline.createPollen
procedurePollinate a bud — a lightweight mark of appreciation. The caller must be signed in. The AppView writes an ink.branchline.pollen record to the caller's PDS and mirrors it into the local read cache. At most one pollen grain per (author, subject) is honored; retrying a call for the same subject is rejected with DuplicatePollen.