{% for l in r.label_list() %}{{ l }} {% endfor %}{% if r.label_list().is_empty() %}none{% endif %}{% if !r.admin_label_list().is_empty() %} ({{ r.admin_label_list().len() }} set here){% endif %}
Time limit
{% if let Some(m) = r.timeout_minutes %}{{ m }} min for its jobs, below the site's{% else %}the site's{% endif %}
Tiers
{% if r.tier_list().is_empty() %}not reported yet{% else %}{{ r.tier_list().join(", ") }}{% endif %}{% if let Some(i) = r.image_list() %} · {{ i.len()|plural("image", "images") }} held{% endif %}
Capacity
{{ r.max_jobs|plural("job", "jobs") }} at once{% if let Some(m) = r.memory_mib %}, {{ m }} MiB{% endif %}{% if let Some(c) = r.cpus %}, {{ c }} vCPU{% endif %}
Running now
{{ running|plural("job", "jobs") }}
Ran
{{ jobs|plural("job", "jobs") }}, {{ passed }} passed{% if jobs > 0 %} ({{ passed * 100 / jobs }}%){% endif %}, busy {{ self.busy() }}
Registered
{% if r.source == "config" %}configured in hub.toml{% else %}by {{ r.created_by }}{% endif %},
Last seen
{% if let Some(t) = r.last_seen_ms %}{% else %}never{% endif %}
Settings
{% if !declines.is_empty() %}
Declined
Jobs this runner handed back before running them, and why (OxygenFlow spec §11.5).