chat.yakka.postMessage
Write a message to the author's own repo, under their OAuth grant (Law 4: write admission belongs to the author's PDS, never to the appview). The appview is the caller's agent here, not an authority — a refusal from the PDS is reported as one rather than absorbed. Resolves once the record is ingested and sequenced, by which time the client has already shown a provisional copy and will reconcile on (uri, cid) (ADR 0011).
Details · procedure
| Kind | procedure |
|---|---|
| Authority | yakka.chat |
| Indexed |
Procedure
procedure · POSTOutput
application/jsonschema
refErrors
ChannelNotFound
No description in schema.
ChannelForbidden
The mint declined for this viewer (ADR 0007).
WriteRefused
The author's own PDS refused the write. Theirs to explain, not ours to override.
WriteUnconfirmed
The record was written and the appview has not yet seen it come back through the sync path. The write SUCCEEDED. Do not retry it — a retry writes a second record, and the two are different messages with different URIs, not one message sent twice. The message will arrive over the socket or on the next timeline read; a client should leave its provisional copy in place rather than marking it failed. This is separate from WriteRefused because the two call for opposite responses, and a client that conflated them would double-post every time ingest ran slow.
#input
objectProperties
The message text, in the same spelling the view returns it (chat.yakka.defs#messageView). The record it becomes calls the field `text`.
maxLength: 10000maxGraphemes: 2000
replyTo
string · at-uriThe message being replied to. Display order of a thread still comes from the view sequence.
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
social.colibri.beta.bridge.postMessage
procedurePosts a message from someone on another service into a linked channel. The community writes the message, attributed to that person.
-
chat.yakka.message
recordA message in a channel or DM space. The record lives in the *author's* repo within the space, so a message has no single owning collection to sort by — it is identified by (authorDid, tid). One collection serves channels and DMs alike (ADR 0016), which is what lets one pipeline carry both.