{% extends "base.html" %}
{% block title %}{{ run.workflow }} — run {{ run.id[:8] }}{% endblock %}
{% block content %}
{# data-exclude-run-id filters this strip down to OTHER runs of the
same workflow. Without it, the current run would appear as one
of its own "Recent" siblings (P1-5 in the 2026-05-14 QA punch list). #}
{# Phase 5 — structured recommendation cards. Workflows emit
ATTUNE_REC {{ run.workflow }}
run {{ run.id[:12] }}
{# Copy-report button — copies the full report text (the contents) to the clipboard. Lives in the H1 so it
sits near the run identity, where users naturally look when
they want to share/save a report. Disabled gracefully when
navigator.clipboard is unavailable. #}
Sources
{% for src in ["bug-predict", "dependency-check", "doc-audit", "pattern-scan", "perf-audit", "security-audit", "test-audit"] %}
{{ src }}
{% for line in server_rendered_lines %}{{ line }}
{% endfor %}
{% endblock %}
{% block scripts %}
{# Server-injected configuration for run_view.js. Using a tagged
JSON block avoids global-namespace pollution and is unambiguously
data (not a script). #}
{# runner.js provides the shared setupRecentRuns helper that
run_view.js calls. Loaded BEFORE run_view.js so the helper is
available when run_view.js initializes. #}
{% endblock %}