{% extends "base.html" %} {% block title %}Status · graph-me{% endblock %} {% block main %}

Status

Store: {{ s.store }} · highest tier: {{ s.tier }}{% if s.note %} · {{ s.note }}{% endif %}

Sources

{% for src in s.sources %} {% set run = (s.last_run or {}).get("sources", {}).get(src.name) %} {% endfor %}
SourceTypeItemsLast syncLast run
{{ src.name }}{{ src.type }}{{ src["items"] }} {{ (src.last_sync_at or "never")|replace("T", " ") }} {% if run %}{{ run.mode }}: {{ run.seen }} seen, {{ run.added }} added, {{ run.updated }} updated, {{ run.forgotten }} forgotten, {{ run.blacklisted }} blacklisted, {{ run.flagged }} flagged{% if run.parse_errors %}, {{ run.parse_errors }} unreadable{% endif %} {% if run.failure %}
skipped: {{ run.failure }}{% endif %}{% else %}—{% endif %}

Graph

{% for name, n in s.counts.items() %}{% endfor %} {% for tier, n in s.items_by_tier.items() %}{% endfor %}
{{ name }}{{ n }}
items at tier {{ tier }}{{ n }}

Blacklist

{{ s.blacklist.paths }} path{{ "s" if s.blacklist.paths != 1 }}, {{ s.blacklist.contacts }} contact{{ "s" if s.blacklist.contacts != 1 }}, {{ s.blacklist.patterns }} pattern{{ "s" if s.blacklist.patterns != 1 }} in config.yaml.

{% if s.last_run %}

Last run ({{ s.last_run.at|replace("T", " ") }}): {{ s.last_run.forgotten_blacklisted }} stored item{{ "s" if s.last_run.forgotten_blacklisted != 1 }} forgotten because the blacklist changed.

{% endif %}

Possible prompt injections ({{ s.flagged_total }})

{% if s.flagged %}

Items with instruction-like text. They stay searchable and are always shown as data.

{% if s.flagged_total > s.flagged|length %}

Showing the {{ s.flagged|length }} riskiest.

{% endif %} {% else %}

None.

{% endif %} {% endblock %}