{% extends "base.html" %} {% from "fragments/_chips.html" import chip, needs_you_chip %} {% block title %}Voxint — jobs{% endblock %} {% block cb_breadcrumb %}jobs /{% endblock %} {% block cb_summary %}{{ pipeline_summary }}{% endblock %} {% block cb_actions %}{% endblock %} {% block body %}
{% for stage in display_stages %}
{{ stage.label }}
{% if stage.is_degraded %}
{{ stage.active + stage.queued }}
{% if stage.active %}{{ stage.active }} active · {% endif %}paused
{% elif stage.active %}
{{ stage.active }} active
{{ stage.queued }} waiting{% if stage.wait_estimate_seconds is not none %} · ~{{ format_compact_duration(stage.wait_estimate_seconds) }}{% endif %}
{% elif stage.queued %}
{{ stage.queued }}
waiting{% if stage.wait_estimate_seconds is not none %} · ~{{ format_compact_duration(stage.wait_estimate_seconds) }}{% endif %}
{% else %}
0
idle
{% endif %}
{% endfor %}
{% for d in degraded %} {% endfor %}

RECENT RUNS

{% for key, label in filter_labels %} {{ label }} {% endfor %} Archived →
{% if not runs %}

No runs{% if active_filter != "all" %} matching this filter{% endif %}. Add a recording from the Media page.

{% else %}
MEDIA STATUS REVIEW STARTED TOOK
{% for item in runs %}
{{ friendly_media_label(item.title, item.source_path) }} {% if item.folder_path %}
{{ item.folder_path }}{% endif %}
{{ chip(humanize_status(item.status)) }} {% if item.status == "completed" and item.unresolved_count > 0 %} {{ needs_you_chip(item.unresolved_count) }} {% elif item.status == "completed" %} {{ chip("reviewed") }} {% elif item.status == "failed" and item.error %} {{ humanize_error(item.error) or "—" }} {% else %} — {% endif %} {{ format_age(item.created_at, now=now) }} {{ format_compact_duration(item.elapsed_seconds) }} {% if item.status == "completed" and item.unresolved_count > 0 %} Review → {% elif item.status == "failed" %} Retry → {% else %} View → {% endif %}
{% endfor %}
{% endif %}

OTHER JOBS

The most recent asset, translation, voice sample, and research jobs. These run alongside the pipeline and never block it.

{% if not aux_jobs %}

No auxiliary jobs yet.

{% else %}
KIND DETAIL STATUS TARGET CREATED
{% for job in aux_jobs %}
{{ job.family }} {{ job.detail or "—" }} {{ chip(job.status) }} {% if job.family == "research" and job.speaker_id %}speaker {{ job.speaker_id.hex[:8] }} {% elif job.pipeline_run_id %}run {{ job.pipeline_run_id.hex[:8] }} {% elif job.speaker_id %}speaker {{ job.speaker_id.hex[:8] }} {% else %}—{% endif %} {{ format_age(job.created_at, now=now) }}
{% endfor %}
{% endif %}
{% endblock %}