{#- The card shows only what is needed at a glance; the task dialog has everything else. -#}
{{ t.key }} {% if t.tracker_ref or t.tracker_logged or (require_tracker_log and t.stage.value == "done") %}{% include "_tracker.html" %}{% endif %} {% if t.session_link %} {%- set status_text = (" (" ~ t.session_status ~ ")") if t.session_status else "" %} {% if t.session_status %}{% endif %} {% endif %} {#- Shown only in compact mode; app.js keeps its state per browser, the server never knows. #}

{{ t.title }}

{#- A done task waits on nobody: its "waiting on" and "next step" are history, not shown here. #} {%- set is_open = t.stage.value != "done" %} {% if t.review_total %} {%- set done = t.review_accepted == t.review_total %} Review {{ t.review_accepted }}/{{ t.review_total }} {% endif %} {% if t.plan_total %} {%- set draft = t.plan_status != "accepted" %} {%- set draft_hours = plan_draft_hours(t) %} Plan {{ t.plan_done }}/{{ t.plan_total }}{% if draft %} · draft{% if draft_hours %} · {{ draft_hours }} h{% endif %}{% endif %}{% if t.plan_deviations %} · {{ t.plan_deviations }} deviation{{ "s" if t.plan_deviations > 1 else "" }}{% endif %}{% if t.plan_now %} · now: {{ t.plan_now }}{% endif %} {% endif %} {% if t.answer_received_at and is_open %}
answer received
{% endif %} {% if (t.waiting_on and is_open) or t.branch %}
{#- Who, not what: agents often append the step after a colon; the title keeps the full text. #} {% if t.waiting_on and is_open %}waiting on {{ t.waiting_on.split(":", 1)[0].strip() or t.waiting_on }}{% endif %} {% if t.branch %}{{ t.branch }}{% endif %}
{% endif %} {% if t.next_step and is_open %}

Next: {{ t.next_step }}{% if t.next_step_stale %} stale{% endif %}

{% endif %}