{% extends "base.html" %} {% from "partials/status_pill.html" import pill %} {% block body %}
{% for target in targets %}

{{ target.name }}

{{ target.subtitle }}

{% for phase in ["build", "test", "release"] %} {% set tasks = target.by_phase(phase) %} {% if tasks %}

{{ phase }}

{% for task in tasks %} {% set est = estimates.get(task.key) %} {% if task.confirm %} {# Release-class: irreversible / outward-facing. Not startable from the dashboard — the confirm-gated Release page (Phase 5) owns these. #} {% else %}
{% if task.jobs_option %} {% endif %}
{% endif %} {# Info: opens a native with the full explanation + timing. #} {% if est %}{{ est.text }}{% endif %}

{{ task.label }} · {{ target.name }}

./inv {{ task.argv | join(' ') }}

{{ task.detail or task.blurb }}

{% if est %}

Estimated time: {{ est.text }} ({{ est.qualifier }})

{% endif %} {% if task.confirm %}

⚠ Release-class: irreversible / outward-facing. Not startable here.

{% endif %}
{% endfor %}
{% endif %} {% endfor %}
{% endfor %}

Recent jobs view all →

{% if recent %} {% for job in recent %} {% endfor %}
#targettaskstatus
{{ job.id }} {{ job.target }} {{ job.task }} {{ pill(job.status) }}
{% else %}

No jobs yet. Start one from a card above, or run ./inv <task> in a terminal.

{% endif %}
{% endblock %}