{# Run-list rows. Embedded by run_list.html and served standalone by /partials/runs for the P2 live swap (live.js re-fetches this on each SSE tick). P3 adds the real owned/observed/external badge (FR-1.4/FR-10.5). #} {% for r in rows %} {{ r.slug }} {% if r.external %} running (external) {% else %} {{ r.status }} {% endif %} {{ r.current_step or "—" }} {% if r.current_step_status %}({{ r.current_step_status }}){% endif %} {% if r.totals.cost_usd is not none %}${{ "%.2f"|format(r.totals.cost_usd) }}{% else %}—{% endif %} {{ r.n_done }}/{{ r.n_steps }} {{ r.updated or "—" }} {% if r.external %} external {% elif r.owned %} owned{% if r.attached %} ·live{% endif %} {% else %} observed {% endif %} {% endfor %}