{# 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 %} {# Review-priority + explainable breakdown (issue #42). Raw facts, never a "% confidence": priority is an attention-ordering signal, not a probability. #} {% macro triage_badge(hint) %} {% set t = name_triage.get(hint.candidate.id) %} {% if t %} 1 %} · {{ t.components.peer_producer_count|int }} producers agree{% endif %}">priority {{ "%.2f"|format(t.priority) }} {% if t.components.voice_conflict %}voice conflict{% endif %} {% if t.unresolved_peers %}+{{ t.unresolved_peers }} more proposed{% endif %} {% 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 %}Names probably in this recording, mined from its metadata and transcript. Accepting records your review — it does not assign a speaker.
No name suggestions found in this recording's metadata or transcript.
{% else %}No name sweep has run yet.
{% endif %} {% if token %} {% endif %}Diarization sometimes splits one person across labels. Tick the labels that are the same speaker in this recording, choose who they are, then preview the exact change before applying.
{{ 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 %}
{# "Preview this speaker" (issue #49): seeks a CLEAN diarization turn for this label (longest non-overlap, fallback longest), NOT the longest transcript segment — a transcript segment may contain other voices. Rendered disabled; the workbench-player island enables it iff seeking is safe (issue #55). type="button" so it never submits an adjudication form. #} {% set rep = representative_turns.get(s.label) %} {% if rep %}{% endif %} {% if names_enabled and name_hints_labels.get(s.label) %}
This run has no diarization labels.
{% endfor %}