{% extends "base.html" %}
{% block title %}Scan {{ job.scan_id }} · ai-protect{% endblock %}
{% block autorefresh %}
// Disable the global autorefresh on this page — we do our own AJAX polling
// below (see #scan-poller) so the page doesn't lose scroll position or
// flash the log every 3 seconds while the scan is running.
window.AI_PROTECT_NO_AUTOREFRESH = true;
{% endblock %}
{% block content %}
← back to scan launcher
{% if job.status == 'running' %}
Running
{% elif job.status == 'done' %}
{{ job.status }}
{% elif job.status == 'failed' %}
{{ job.status }}
{% elif job.status == 'stopped' %}
{{ job.status }}
{% else %}
{{ job.status }}
{# Stop button placeholder for AJAX path: hidden but kept in DOM so
a status flip back to 'running' (rare) can reveal it. #}
{% endif %}
Scan {{ job.scan_id }}
app: {{ job.app_name }}stage: {{ job.stage }}adapter: {{ job.adapter or "all" }}pid:{{ job.pid }}
{% if job.findings_after is not none %}
findings: {{ job.findings_before }} → {{ job.findings_after }}
(Δ {{ job.findings_after - job.findings_before }})
{% endif %}