> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Durable messaging

> How conversations, messages, branches, participants, read state, and input requests persist chat state.

Durable messaging stores the visible conversation thread.

It lets a conversation survive refreshes, reconnects, branch changes, delegated work, and long-running execution.

```mermaid theme={null}
flowchart LR
  Conversation[Conversation] --> Messages[Messages]
  Messages --> Parts[Typed message parts]
  Messages --> Branches[Branches]
  Conversation --> Participants[Participants]
  Conversation --> ReadState[Read state]
  Conversation --> InputRequests[Input requests]
```

## What it owns

| Concept       | Purpose                                                                                        |
| ------------- | ---------------------------------------------------------------------------------------------- |
| Conversation  | Thread metadata, project scope, status, title, active branch, and message count.               |
| Message       | User, assistant, system, or tool content.                                                      |
| Message part  | Structured content such as text, files, tool calls, tool results, citations, errors, and data. |
| Branch        | Alternate message path created by edits, forks, or regenerated answers.                        |
| Participant   | User and role attached to a conversation.                                                      |
| Read state    | Last-read cursor and unread count.                                                             |
| Input request | Structured input needed while work is paused.                                                  |

## Message graph

Messages form a graph.

Each message can point to a parent message. The conversation stores the active branch tip.

This supports editing, forking, branch selection, and replaying the visible path without deleting alternate branches.

## Messaging and execution

Durable messaging works with durable execution:

1. A user prompt is stored as a message.
2. A run creates or claims an assistant message.
3. Runtime events stream and persist while work runs.
4. Final output is stored back on the assistant message.
5. Later reads use messages for the visible thread and runs for execution history.
