{# The label list — full-page include and htmx post-decision refresh target. #} {% macro hint_state_pill(hint) %} {% if hint.state.value == "accepted" %}accepted {% elif hint.state.value == "rejected" %}rejected {% elif hint.state.value == "superseded" %}superseded {% endif %} {% endmacro %} {% macro hint_decision_forms(hint) %} {% if token and hint.state.value == "proposed" %}
{% endif %} {% endmacro %} {# Name suggestions (issue #38): read/heard names are drafts about identity, never identity — accepting records the review, it assigns nothing. #} {% if names_enabled %}

Name hints

{% if name_hints_run %}

Names probably in this recording, mined from its metadata and transcript. Accepting records your review — it does not assign a speaker.

{% elif names_last_run %}

No name suggestions found in this recording's metadata or transcript.

{% else %}

No name sweep has run yet.

{% endif %} {% if token %}
{% endif %}
{% endif %} {% for s in states %}

{{ s.label }} {% if s.resolution.value == "unresolved" %} needs ruling {% elif s.resolution.value == "grounded_cosine" %} machine: {{ s.speaker_name }} {% elif s.resolution.value == "human_assign" %} assigned: {{ s.speaker_name }} {% elif s.resolution.value == "human_exclude" %} excluded {% else %} unknown {% endif %}

{{ s.turn_count }} turns, {{ "%.0f"|format(s.total_seconds) }}s. {% if s.cosine_speaker_name %} Cosine suggestion: {{ s.cosine_speaker_name }} ({{ "%.2f"|format(s.cosine_confidence or 0) }}{{ ", grounded" if s.cosine_grounded }}). {% endif %} {% if s.llm_hint_name %} Heard name (unverified): “{{ s.llm_hint_name }}”. {% endif %}

{% if names_enabled and name_hints_labels.get(s.label) %} {% endif %} {% for seg in previews.get(s.label, []) %}
{{ "%.1f"|format(seg.start_seconds) }}s {{ seg.enhanced_text or seg.raw_text }}
{% endfor %} {% if token %}
{% endif %}
{% else %}

This run has no diarization labels.

{% endfor %}