Skip to content

The Stages page says a dispatch stage has "Not enough samples", though it never gets a Usual range #924

Closed

Description

@JacobStephens2

This was generated by AI during triage.

On 2026-10-20, the Console's Stages page on thirdshift showed the live Pickup run for #889 as a column with no stages: every cell read Not reached · —, and its header showed pickup-20261020T211301-0400 instead of a title. That is #889 itself, and PR #923 fixes it by giving a Pickup run or Security run a dispatched Run or dispatched Spec run stage once it dispatches.

#923 deliberately gives a dispatch stage no Usual range, as docs/guide.md now says: "A dispatch stage is never Silent or Slow and has no Usual range: the dispatched Run or Spec run carries its own." Usual range collection skips those stages.

The Stages page doesn't know that. For any stage with no Usual range it prints Usual range: Not enough samples under the row's name. On a dispatch row that never changes, however many Pickup runs finish, and it reads as though a range will appear once there are enough samples.

Blocked by #889: the dispatch stages don't exist until #923 merges.

Activity

  1. JacobStephens2 commented on Oct 21, 2026

    @JacobStephens2
    OwnerAuthor

    This was generated by AI during triage.

    Agent Brief

    Category: bug
    Summary: On the Stages page, a dispatch stage's row should say it has no Usual range, not "Not enough samples"

    Current behavior:
    On the Console's Stages page (/?page=stages), each row heading shows the stage's name and Usual range: <range>. When the repository has no Usual range for that stage, the heading reads Usual range: Not enough samples. After #889 (PR #923), a Pickup run or Security run enters a dispatched Run or dispatched Spec run stage. That stage never gets a Usual range by design, because the Run or Spec run it dispatched carries its own health. So its row reads Not enough samples forever.

    Desired behavior:
    A dispatch stage's row reads Usual range: —. Every other stage keeps its current text: the range when there is one, and Not enough samples when there are fewer than three stage times. Cells are unchanged. For example, the Pickup run's cell in a dispatched Run row still reads Running · <age> while live.

    Key interfaces:

    • StageName::is_dispatch(name), added by Name what a Pickup run or Security run dispatched, and when, in its stage #923: decides whether a stage is a dispatch stage. Reuse it rather than matching the stage names again.
    • The time views behind Lanes and Stages (Views, Stage.usual, GridRow.usual): where the Usual range text is chosen.
    • docs/guide.md: already says a dispatch stage has no Usual range. Update it only if it describes the Stages page's row text.

    Acceptance criteria:

    • With a live Pickup run whose record has a dispatched Run stage, the Stages page's dispatched Run row heading reads Usual range: —, not Not enough samples. The same holds for dispatched Spec run.
    • A non-dispatch stage with fewer than three stage times still reads Usual range: Not enough samples.
    • A non-dispatch stage with a Usual range still shows that range.
    • A test in the Console's page tests covers the first two criteria, and fails if the change is removed.

    Out of scope:

  2. added
    ready-for-agentFully specified, ready for an AFK agent
    in-progressA Claim: thirdshift has taken this issue
    and removed
    needs-triageMaintainer needs to evaluate this issue
    ready-for-agentFully specified, ready for an AFK agent
    on Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions