{% extends "base.html" %} {% block title %}{{ sprint.id }} — ResearchLoop{% endblock %} {% block head %} {% if sprint.status.startswith('running') or sprint.status == 'submitted' or tweak_active %} {% endif %} {% endblock %} {% block content %}

Sprint {{ sprint.id }}

Study
{{ sprint.study_name }}
Status
{{ sprint.status }}
Idea
{% if sprint.idea %}{{ sprint.idea[:120] }}{% if sprint.idea|length > 120 %}…{% endif %}{% elif sprint.loop_id and sprint.status not in ('completed', 'failed', 'cancelled') %}auto-generating idea...{% elif sprint.summary %}{{ sprint.summary[:120] }}{% if sprint.summary|length > 120 %}…{% endif %}{% else %}—{% endif %}
{% if sprint.loop_id %}
Loop
{{ sprint.loop_id }}
{% endif %}
Job ID
{{ sprint.job_id or '—' }}
Directory
{{ sprint.directory or '—' }}
{% if submitted_job_options or submitted_time_limit %}
Resources
{% set parts = [] %} {% if submitted_job_options.get('gres') %}{% set _ = parts.append('GPU: ' + submitted_job_options['gres']) %}{% endif %} {% if submitted_job_options.get('mem') %}{% set _ = parts.append('Mem: ' + submitted_job_options['mem']) %}{% endif %} {% if submitted_job_options.get('cpus-per-task') %}{% set _ = parts.append('CPUs: ' + submitted_job_options['cpus-per-task']) %}{% endif %} {% if submitted_time_limit %}{% set _ = parts.append('Time: ' + submitted_time_limit) %}{% endif %} {% set known = ['gres', 'mem', 'cpus-per-task'] %} {% for k, v in submitted_job_options.items() %}{% if k not in known %}{% set _ = parts.append(k + ': ' + v) %}{% endif %}{% endfor %} {{ parts|join(' · ') if parts else '—' }}
{% endif %}
Created
{{ sprint.created_at }}
Started
{{ sprint.started_at or '—' }}
Completed
{{ sprint.completed_at or '—' }}
{% if sprint.status not in ('completed', 'failed', 'cancelled') %}
{% endif %}
{% if sprint.status not in ('completed', 'failed', 'cancelled') %} {% else %} {% endif %}
{% if sprint.status in ('failed', 'cancelled') %}
{% endif %} {% if sprint.idea %} {% endif %}
{% if has_pdf %} 📄 Report PDF {% endif %}
{% if sprint.summary %}

Summary

{{ sprint.summary }}

{% endif %} {% if sprint.idea %}

Prompt

{{ sprint.idea|markdown|safe }}
{% endif %} {% if progress %}

Progress

{{ progress|markdown|safe }}
{% endif %} {% if report %}

Report

{{ report|markdown|safe }}
{% endif %} {% if findings %}

Findings

{{ findings|markdown|safe }}
{% endif %} {% if red_team %}

Red-Team Review

{{ red_team|markdown|safe }}
{% endif %} {% if fixes %}

Fixes

{{ fixes|markdown|safe }}
{% endif %} {% if sprint.error %}

Log

{{ sprint.error }}
{% endif %} {% if sprint.status == 'completed' %}

Quick Tweak

{% if tweak_active %}

A tweak is currently running…

{% else %}
Resource settings
{% endif %}
{% endif %} {% if tweaks %}

Tweaks

{% for t in tweaks %} {% endfor %}
IDInstructionStatusCreated
{{ t.id }} {{ t.instruction[:80] }}{% if t.instruction|length > 80 %}…{% endif %} {{ t.status }} {{ t.created_at }}
{% endif %} {% if artifacts %}

Artifacts

{% for a in artifacts %} {% endfor %}
FilenameSizeUploaded
{{ a.filename }} {% if a.size %}{{ (a.size / 1024)|round(1) }} KB{% endif %} {{ a.uploaded_at }} Download
{% endif %} {% endblock %}