{% extends "base.html" %} {% block title %}Admin: Scan Pipeline - Makenotwork{% endblock %} {# htmx 4 dropped `hx-prompt` from core and ships it as an extension with the same syntax. This is the only page that uses it, so it links the script here rather than from the shell; the version is the extension's own, since a vendored file changes only when htmx is bumped. `defer` is load-bearing rather than a habit: the shell's htmx is deferred, so an ordinary script here would run during parsing and call `registerExtension` before htmx exists. Deferred scripts run in document order, and htmx's own init waits a tick past that for exactly this. #} {% block head %} {% endblock %} {% block body_attrs %} class="{{ crate::shell::measure(crate::shell::Measure::Wide) }} admin-page"{% endblock %} {% block content %} {% include "partials/site_header.html" %}
{% include "partials/admin_nav.html" %}

Scan Pipeline

Pipeline Health

last 24h
{% for card in layer_health %}
{{ card.layer }}
success {{ card.success_rate_pct }}%
error {{ card.error_rate_pct }}%
fails {{ card.fail_count }}
last clean: {{ card.last_seen }}
{% endfor %}

Active Queue

auto-refresh every 10s
{{ queue_pending }}
Pending
{{ queue_running }}
Scanning

Audit Log

View full log

Every promote, quarantine, and re-scan is recorded.

Held for Review

{{ total_held }} held {% if total_held > 0 %} {% endif %}
{% include "partials/admin_upload_entries.html" %}
Recent History last 7 days, {{ history_total }} scan{% if history_total != 1 %}s{% endif %} {% if recent_history.is_empty() %}
No scans recorded in the last 7 days.
{% else %}
{% for row in recent_history %} {% endfor %}
Scanned File Status Layers Size SHA-256
{{ row.scanned_at }} {{ row.s3_key_short }} {{ row.scan_status }} {% for chip in row.layers %} {{ chip.layer }} {% endfor %} {{ row.size_bytes }} {{ row.sha256_short }}
{% endif %}
{% endblock %}