{% extends "base.html" %} {% from "_macros.html" import ts, badge, thread_link, msg_link %} {% block content %}

Threads

Threads are derived, never stored: the key is a message's correlation_id, inherited down the reply chain. This view groups the newest {{ data['window'].scan }} messages ({{ data['window'].messages }} scanned{% if data['window'].truncated %}, window truncated — older threads are not shown{% endif %}).

{% if data['items'] %}
{% for t in data['items'] %} {% endfor %}
ThreadMessagesReplies ParticipantsLatestStartedLast
{{ thread_link(t.key) }} {% if t.is_client_keyed %}
client-chosen key
{% endif %}
{{ t.count }} {{ t.replies }}{% if t.dangling %} +{{ t.dangling }} dangling{% endif %} {% for h in t.participant_handles[:4] %}{{ ("@" ~ h) if not ":" in h else h }}{% endfor %} {% if t.participant_handles | length > 4 %}+{{ t.participant_handles | length - 4 }}{% endif %} {{ msg_link(t.last_message) }} {{ t.preview | truncate(60) }} {{ ts(t.first_at) }} {{ ts(t.last_at) }}
{% if data['page'] > 1 %}« previous{% endif %} page {{ data['page'] }} of {{ (data['total'] // data['page_size']) + 1 }} · {{ data['total'] }} threads {% if data['has_next'] %}next »{% endif %}
{% else %}

No threads in this window.

{% endif %}
{% endblock %}