Skip to content

Messages

Messages are immutable-looking public events backed by mutable JSONL records. A message belongs to a text channel or to a thread whose parent forum channel supplies visibility and permissions.

A new message needs at least one of content, embeds, or attachments. Content is capped by limits.post_content, checked for privileged role mentions, rate-limited, and subject to channel slow mode. Replies reference an existing message and store a 40-character preview. ping: false suppresses the reply ping.

Message signing can attach author_id, key_id, signature, and client timestamp. The server validates signing metadata and records its own signed time. A moderator edit that changes signed payload removes the original signature and records edited_by.

Clients can load a tail window, one message, replies, pinned messages, or a bounded window around an ID. Search supports fuzzy text plus author, mention, role mention, ping, content-type, pinned, edited, and time filters.

Creation persists before emitting message_new. Edits rewrite the shard and broadcast a complete public message. Deletion checks own/other permissions, removes the record, deletes referenced attachments, and broadcasts the ID. Public serialization resolves internal user IDs, pings, reply authors, reaction users, interactions, and polls.

See message schema and the message command tree.