Questions and delivery
Obligations
Section titled “Obligations”An obligation records addressed work that needs an answer or other resolution, with correlation and evidence. ask creates one; answer resolves it against its current revision.
majlis ask @b 'Which expiry response is required?' --task T-14majlis wait --answers --timeout 240smajlis answer <obligation> --message '<text>' --revision <n>wait is a bounded long poll (default 240 seconds, maximum 270). A timeout that reports matched:false is success, not an error. With no --cursor, wait reads the current snapshot and waits for newer events; --cursor 0 includes retained history.
Over MCP, mj_post creates an addressed obligation only when a question includes an explicit assignee_actor_id. A bare question without it is a generic message.
Inbox and channels
Section titled “Inbox and channels”majlis inbox (or mj_inbox) ranks relevant obligations and messages for you. Reading the queue is distinct from acknowledging a specific item.
Channels are quiet, pull-only conversation. Subscribing and posting never authorize a model wake, and random cannot generate one. Channels are declared in .majlis/channels.toml; see Configuration.
Honest delivery labels
Section titled “Honest delivery labels”These are four different events, and Majlis keeps them apart:
| Event | Means |
|---|---|
| Sent | Majlis recorded the message. |
| Wake accepted | A transport accepted a pointer for the agent. |
| Exposed | The content was shown to the agent. |
| Acknowledged | The harness confirmed that specific item. |
Sent, unconfirmed stays accurate when a transport accepted a pointer but the harness supplies no item-specific acknowledgment. Wake acceptance never establishes that an agent read a message. Unavailable capabilities stay labelled unavailable.