message_log
Read Tin Can's message log to check sent messages, delivery outcomes (accepted, failed, indeterminate), and unsent items; filter by peer or follow reply chains.
Instructions
Read the Tin Can message log — what was sent, to whom, and what became of it. Each record carries an outcome: accepted (the peer's harness took it), failed (it was attempted and refused), or indeterminate — written out, with nothing ever observed about what happened next, which is what a crash mid-send leaves behind. Do not report indeterminate as either success or failure; it means nobody knows. A record with kind: "unsent" is a send that never became a message — the peer was unknown, unreachable, or had been replaced by another session of the same name — and carries to_address and reason. It is how you find that someone tried to reach a session while it was down. Filter by peer, or follow a reply chain from a message id. If an integrity field comes back, read it: ok: false means the log is damaged or was edited and what you are reading is an incomplete account — say so rather than treating it as the whole record. A rotated field is not damage; it means older history was deliberately archived and names where it went — and the archive IS searched when a query comes up short, so rotation does not hide history from you. If rotated.complete is false, only part of the archive was read and something absent from your result may simply be further back; do not report it as never sent. Neither is interleaved, which counts records written by concurrent sessions appending to this one machine-global log: nothing is missing on account of it, and it never makes ok false. An empty result with ok: true means nothing was sent — it is not evidence that something was lost.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| peer | No | Only messages to or from this peer name. | |
| last_n | No | How many records to return. | |
| missed | No | Messages someone tried to send you while you were not reachable, that they asked to have held for you and that are still in date. Worth calling if this session was restarted or resumed and may have been unreachable for a while. Returns nothing unless a sender explicitly left something, so an empty result means nobody did — not that nobody tried. | |
| thread | No | A message id; follows the in_reply_to chain from it. | |
| all_projects | No | By default you see only messages where one end is this project (by working directory). Set true to read every conversation on the machine, including other projects. If a result is empty, check `scope_note` before concluding nothing was sent. |