{% extends "base.html" %} {% block title %}{{ run.workflow }} — run {{ run.id[:8] }}{% endblock %} {% block content %}

← Back to workflows

{{ run.workflow }} run {{ run.id[:12] }}

{{ run.status }} {% if run.exit_code is not none %} exit code {{ run.exit_code }} {% endif %} {% if run.started_at %} started {{ run.started_at }} {% endif %} {% if run.path %} scope {{ run.path }} {% endif %}



This page reconnects to the run's stream automatically — refresh anytime to see the latest output. Buffered output replays for new subscribers, so you won't lose history.

{% 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 %}