Say the thread is coming while a trial still runs

85a4c56d87eb · AtlantisPleb · · parent a82f7f9b1f00

Say the thread is coming while a trial still runs

A running trial with no thread yet showed the same placeholder as a lane
that never leaves one, which reads as broken while the harness is about to
link the thread. Split the copy by trial state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfZq5s3rc6zpnBR75pTQaU
Co-Authored-By
Claude Fable 5 <noreply@anthropic.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

pushed
by user · WAL seq 374 · 2026-08-25T13:42:49.585139Z

Changed files

  • modified lib/openagents_web/live/gym_run_live.ex

Diff

1 file changed, +18 -3

lib/openagents_web/live/gym_run_live.ex modified +18 -3

@@ -207,6 +207,14 @@ defmodule OpenAgentsWeb.GymRunLive do

207 207
    end
208 208
  end
209 209
210
  # Whether the selected trial is still running, for the threadless
211
  # placeholder: a running trial's thread is expected momentarily (the
212
  # harness links it as soon as the coder announces), while a finished
213
  # threadless trial ran on a lane that leaves no transcript.
214
  defp selected_trial_running?(trials, selected_trial_id) do
215
    Enum.any?(trials, &(&1.id == selected_trial_id and &1.state == "running"))
216
  end
217
210 218
  defp upsert_trial(trials, trial) do
211 219
    trials
212 220
    |> Enum.reject(&(&1.id == trial.id or &1.task == trial.task))

@@ -356,9 +364,16 @@ defmodule OpenAgentsWeb.GymRunLive do

356 364
                  Select a trial to read its transcript.
357 365
                </.empty>
358 366
              <% :no_thread -> %>
359
                <.empty id="gym-transcript-no-thread" title="No transcript">
360
                  This trial's lane left no transcript.
361
                </.empty>
367
                <%= if selected_trial_running?(@trials, @selected_trial_id) do %>
368
                  <.empty id="gym-transcript-no-thread" title="Waiting for the thread">
369
                    The trial is running and its coder has not announced a
370
                    thread yet. The transcript attaches the moment it does.
371
                  </.empty>
372
                <% else %>
373
                  <.empty id="gym-transcript-no-thread" title="No transcript">
374
                    This trial's lane left no transcript.
375
                  </.empty>
376
                <% end %>
362 377
              <% :unavailable -> %>
363 378
                <.empty id="gym-transcript-unavailable" title="Transcript unavailable">
364 379
                  The linked thread no longer exists.

This page updates live while a promote is in flight · changelog