{# HTMX partial: live status for a single pipeline run #}
{{ run.status }} Run #{{ run.id }} {% if run.current_pass %} Processing pass {{ run.current_pass }} {% endif %}
{% if run.total_combos and run.total_combos > 0 %} {% set done = run.combos_pass1 or 0 %} {% set pct = (done / run.total_combos * 100) | int %}
{{ done }} / {{ run.total_combos }} combos processed
{% if (run.combos_pass1 or 0) > 0 %} {% set valid = (run.combos_pass1 or 0) - (run.total_combos - (run.combos_pass2 or 0)) if (run.combos_pass2 or 0) > 0 else (run.combos_pass1 or 0) %} {% endif %} {% if (run.combos_pass2 or 0) > 0 %} {% endif %} {% if (run.combos_pass3 or 0) > 0 %} {% endif %} {% if (run.combos_pass4 or 0) > 0 %} {% endif %}
PassResult
1 — Constraints {{ run.combos_pass1 or 0 }} checked {%- if (run.combos_pass2 or 0) > 0 and (run.combos_pass1 or 0) > (run.combos_pass2 or 0) %}, {{ (run.combos_pass1 or 0) - (run.combos_pass2 or 0) }} failed {%- endif -%}
2 — Estimation {{ run.combos_pass2 or 0 }} estimated
3 — Scoring {{ run.combos_pass3 or 0 }} scored
4 — LLM Review {{ run.combos_pass4 or 0 }} reviewed
{% endif %} {% if run.error_message %}
{{ run.error_message }}
{% endif %} {% if run.status == 'rate_limited' %}
Rate limited — waiting for quota to refresh, then resuming automatically.
{% endif %}
{% if run.status in ('running', 'rate_limited') %}
{% endif %} {% if run.status == 'completed' %} View results {% endif %}