{# The system page's engine-info block — cards + per-check table. A partial so the page's ~10s poll (?fragment=1, shared poll.js) can re-fetch and swap it without re-sending the header (mirrors _status_grid.html). #} {% if info is none %}

The engine is not running.

{% else %}
Started
{{ info.started_at | localtime }}
Uptime
{{ info.uptime_seconds | elapsed }}
Worker threads
{{ info.max_workers }}
Checks
{{ info.check_count }}
Currently running
{{ info.running }}
{# The three schedule columns share one shape: a time of day (the configured timezone; the Started card anchors the date) plus a muted interval. Every interval on this page goes through `elapsed` (`little_sister.spans.format_span`) rather than being formatted where it is shown — which is how a quarter-hour wait came to read `in 812s` beside a two-minute run reading `115 s`. #} {% for c in info.checks %} {% else %} {% endfor %}
CheckTypeFrequencyRunningNext runLast run
{{ c.path }} {{ c.type_name }} {{ c.frequency_seconds | duration }} {% if c.running_since %} {{ c.running_since | localtime("%H:%M:%S") }} · {{ c.running_seconds | elapsed }} {% elif c.running %} queued {% endif %} {{ c.next_run_at | localtime("%H:%M:%S") }} · in {{ c.next_in_seconds | elapsed }}{% if c.retrying %} · retry {{ c.retry_attempt }}/{{ c.retry_attempts }}{% endif %} {% if c.last_run_at %} {{ c.last_run_at | localtime("%H:%M:%S") }} · {{ c.elapsed_seconds | elapsed }} {% else %} — {% endif %}
No checks.
{% endif %}