{#- The Agent block of a card: the user's own claude run on it. Expects: t (the task), view (the open or latest run, or None), form (the Start form when no run is open), running, error, choices, owner_modes, desktop_ok (relaybay can open the desktop app here), launching (that launch runs now), terminal_on (the Terminal tab is on, this install has a PTY and the server listens on loopback only), terminal_open (a terminal of the run is open or starting). Refetched on live run events. -#} {%- macro hidden_csrf() -%}{%- endmacro %} {%- set base = "/p/" ~ t.project_slug ~ "/t/" ~ t.key ~ "/run" %}
{{ error }}
{% endif %} {% if view %} {%- set r = view.run %}{{ r.status }} {% if r.is_open and r.with_owner %}with the owner{% endif %} run {{ r.id }} · {{ r.model }} · {{ r.effort }} · {{ r.permission_mode }} · started by {{ r.started_by }}
{% if r.status_reason %}{{ r.status_reason }}
{% endif %} {% if r.is_open and r.in_terminal and terminal_open %}With you in the Terminal tab since : relaybay starts no turn, texts sent wait until the terminal closes.
{% elif r.is_open and r.in_terminal %}The terminal closed, but the run is still with you: relaybay starts no turn until Back to the program.
{% elif r.is_open and r.with_owner %}With you in the Claude desktop app since : relaybay starts no turn, texts sent wait until Back to the program.
{% endif %}{{ r.cwd }}{{ w.path }} {% if w.created_by_run %}new worktree on {{ w.branch }}; copied: {{ w.copied|copy_summary }}{% if w.removed_at %} removed {% elif w.kept_reason %} kept{% if w.kept_at %} by your answer{% elif w.question_id %}, question {{ w.question_id }}{% endif %} {{ w.kept_reason }}{% endif %}{% else %}the repository itself{% endif %}| # | Sent by | Queued | Outcome | Tokens | Denied | Report |
|---|---|---|---|---|---|---|
| {{ turn.seq }} | {{ turn.sent_by }} | {{ turn.state|replace("_", " ") }}{% if turn.result_subtype and turn.result_subtype != "success" %} ({{ turn.result_subtype }}){% endif %} | {{ "{:,}".format(turn.tokens) }} | {% if turn.denials %}{{ turn.denials }}{% if turn.denied_tools %} {{ turn.denied_tools|join(", ") }}{% endif %}{% else %}0{% endif %} | {% if turn.report_id %}{% with state = turn.report_state, size = turn.report_size %}{% include "_report_badges.html" %}{% endwith %} {{ turn.report_summary }}{% else %}none{% endif %} | |
{#- Folded: the report and the lines load when it is opened. -#}
Report and events of turn {{ turn.seq }} ({{ turn.events }} line{{ "s" if turn.events != 1 }})Loading… |
||||||
Starts the waiting turn past the slot limit and the memory check (journaled); a brake is released only in the banner.
{% endif %} {% if running %} {% endif %} {% if (r.with_owner and not r.in_terminal) or (r.claude_session_id and not running and r.status != "running" and not r.with_owner) %} {% if view.worktrees|rejectattr("path", "equalto", r.cwd)|list %}In the desktop app only {{ r.cwd }} is a working folder (--desktop takes no --add-dir); add the run's other folders there with /add-dir.
The terminal is open in another tab or window; closing it hands the run back. Back to the program closes it here.
{% endif %} {% elif r.with_owner %} {% if launching %}Opening the desktop app…
{% else %} {% if r.desktop_link %}Go to the session in the desktop app{% endif %}Close or leave the session in the desktop app before Back to the program: relaybay's turns and your typing there would write to one session.
{% endif %} {% elif r.claude_session_id and not running and r.status != "running" %} {% if terminal_on %}Terminal{% endif %} {% if r.desktop_link %}Go to the session in the desktop app{% endif %} {% if desktop_ok %} {% elif not r.desktop_link %}Open the session in a terminal in its folder: claude --resume {{ r.claude_session_id }}