{# 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 }}
{# What the configuration declared, beside what the process is doing (ADR-0075). The declared figures are what startup measured the configuration against; the entries held is the count the engine's own `entries` line watches. A declaration that has drifted from the measurement is only visible if both are shown. #}
Declared load
{{ "%.1f"|format(info.declared_workers) }} of {{ info.max_workers }} worker threads
Entries held
{{ "{:,}".format(info.entries_held) }} of {{ "{:,}".format(info.entry_limit) }}{% if info.declared_entries %} · {{ "{:,}".format(info.declared_entries) }} declared{% endif %}
{# 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 %} {# The type's own estimate, beside the run it is an estimate of. A type that will not estimate says nothing, and the cell is empty rather than zero — nothing declared is not the same claim as nothing spent. The record is the third declaration and the one whose measurement has no column of its own, so the largest record the last run carried is shown here in parentheses, beside what was declared. It stands even where nothing was declared: the drift a declaration hides is only visible if both are shown, and a record nobody declared is still worth seeing grow. #} {# What this check is reached **through** (backlog #38 A). The graph belongs on one page rather than one node at a time: a single failing dependency withholds every check naming it, and *how many* is the question to ask before declaring one — not after a quiet morning. An em dash where a check stands on its own, which is nearly all of them. #} {% else %} {% endfor %}
CheckTypeFrequencyRunningNext runLast runDeclaredThrough
{{ 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 %} {% if c.expected_cost is not none %}{{ c.expected_cost | elapsed }}{% endif %} {%- if c.expected_cost is not none and c.expected_entries is not none %} · {% endif %} {%- if c.expected_entries is not none %}{{ "{:,}".format(c.expected_entries) }} entries{% endif %} {%- if c.expected_record is not none %} {%- if c.expected_cost is not none or c.expected_entries is not none %} · {% endif %} {{- "{:,}".format(c.expected_record) }} B record {%- endif %} {%- if c.record_bytes is not none %} {%- if c.expected_cost is not none or c.expected_entries is not none or c.expected_record is not none %} {% endif %} {{- "(" }}{{ "{:,}".format(c.record_bytes) }} B seen{{ ")" }} {%- endif %} {%- if c.expected_cost is none and c.expected_entries is none and c.expected_record is none and c.record_bytes is none %}—{% endif %} {%- if c.depends_on %} {{ c.depends_on }} {%- else %}—{% endif %}
No checks.
{% endif %}