{% extends "base.html" %} {% block title %}{{ run.run_id }}{% endblock %} {% block body %}
{% if task %}{{ task.id }}{% else %}{{ task_id }}{% endif %} · run

{{ run.run_id }}

{{ run.status }} {{ run.mode }} · {{ run.execution_location }} · {% if mechanical %}git · no model{% else %}{{ run.harness or 'harness' }}{% if run.model %}:{{ run.model }}{% endif %}{% endif %} · {{ '%.0f' % run.elapsed_minutes() }} min{% if run.cost_usd is not none %} · ${{ '%.2f' % run.cost_usd }}{% endif %}

Back to task{% if run.branch %}{{ run.branch }}{% endif %}
{% if run.error %}
Error: {{ run.error }}
{% endif %} {% if attach_command %}

Live worker session: {{ attach_command }}

{% elif run.runner == 'ssh' and run.status == 'running' %}
Remote session is not confirmed live. Recover collection before attaching.
{% endif %} {% if recovery %}
Reconnecting after a controller interruption. The worker keeps its current authority and subprocess; it has {{ recovery.remaining }} seconds to reconnect before this lease can be reassigned.
{% endif %} {% if ssh_reconnect %}
Reconnecting to the remote host (attempt {{ ssh_reconnect.attempt }}{% if ssh_reconnect.next_retry_at %}, next retry {{ ssh_reconnect.next_retry_at }}{% endif %}){% if ssh_reconnect.last_error %}: {{ ssh_reconnect.last_error }}{% endif %}. The run and its checkout are retained; no action is needed.
{% endif %} {% if captures %}
Captures
{% endif %} {% if mechanical %}
Mechanical rebase

Mechanical rebase onto {{ run.base or 'the base' }} — no model, no cost. The scheduler ran git rebase in the worktree and force-pushed with a lease; a worker was never started.

What git did

{{ run.diff_stat or '(no diff recorded)' }}

Check result

{% if check_result %}

{{ check_result.status }} · {{ check_result.run_id }}

{% if check_result.checks %}{% endif %} {% else %}

No pre-PR checks are configured, or the check run has not finished yet.

{% endif %}
{% elif check_view %}
Check outcome

{{ check_view.conclusion }} Process {{ check_view.process }}{% if check_view.exit_code is not none %} · exit {{ check_view.exit_code }}{% else %} · exit code not recorded{% endif %}

source
{{ check_view.source or 'not recorded' }}{% if check_view.branch %} · branch {{ check_view.branch }}{% endif %}{% if check_view.base %} → {{ check_view.base }}{% endif %}
{% if check_view.configured_checks %}

Configured checks

{% endif %} {% if check_view.unmatched_results %}

Unmatched outcomes

These results are not associated with a configured command.

{% endif %} {% if not check_view.configured_checks and not check_view.unmatched_results %}

No accepted check outcome has been recorded yet.

{% endif %}

Next action: {{ check_view.next_action }}

{% else %}
{% if is_stream %}
{% include "_stdout.html" %}
{% else %}

This run recorded a single claude-json result rather than a streamed transcript. Its final message is below.

{{ final_text or '(no final message)' }}
{% endif %}
{{ brief_text or '(no brief recorded)' }}
{{ final_text or '(no final message)' }}
{{ stderr_text or '(stderr was empty)' }}
{% endif %} {% endblock %}