Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 2.76 KB

File metadata and controls

63 lines (47 loc) · 2.76 KB

Message replies

Status: deployed for retained channel and direct messages

Telex represents a reply as an ordinary complete IRC message plus one client-only parent tag. The message body remains useful text on every IRC client. Capable clients may additionally show the parent excerpt, jump to the parent, or otherwise present the relationship.

IRC wire shape

A client that negotiated message-tags replies to a retained message by sending exactly one canonical parent ID:

@+reply=019f0000-0000-7000-8000-000000000001 PRIVMSG #room :answer

For draft/multiline, +reply belongs on the opening BATCH command. It describes the complete multiline event rather than any one fragment.

The parent must still be retained in the same channel or direct-message conversation. Ordinary channel membership, direct-message privacy, retention, and rate-limit checks still apply. Unknown, pruned, cross-conversation, duplicate, empty, and noncanonical parent IDs are rejected without creating an event. standard-replies controls whether that rejection uses FAIL; it is not a separate reply-feature capability.

Storage, history, and retention

Schema 9 stores at most one parent relation for each retained event. The relation is committed in the same transaction as the child and is emitted again as +reply during history and automatic replay.

A reply does not extend either message's retention. If a parent body is pruned before its child, the child remains an ordinary retained message and capable clients show an unavailable-parent marker. New replies cannot target that pruned parent. Content reset removes reply relations with their conversations. A live-only child may carry the relationship during live delivery but leaves no durable reply row.

Native automation publications already have causal parent IDs. When projected onto IRC, those causal relationships use the same +reply presentation.

Compatibility and reference-client behavior

Only recipients that negotiated message-tags receive the client-only relationship tag. Other IRC clients receive the unchanged message body and no synthetic quote, notice, error, or status-buffer line.

The reference web client:

  • exposes reply in the existing message-action toolbar;
  • shows and allows cancellation of one selected parent above the composer;
  • sends single-line and negotiated multiline replies;
  • renders a compact parent excerpt and jumps to it when it is loaded;
  • shows earlier message unavailable when the parent is outside the loaded or retained window; and
  • preserves the relationship through live delivery, IndexedDB restore, authoritative history repair, and reconnect.

Reply metadata remains optional presentation. It never changes the underlying chronological transcript or the behavior of traditional clients.