Skip to content

t27b-lab: a request whose commit the lab has not fetched yet waits instead of being dropped #8320

Closed

Description

@gHashTag

Part of the t27b overnight improvement loop (see the epic that links here).

Problem

corpus-receipt admit (specs/verified/corpus_receipt.t27, request_verdict / request_exit) drops a request at once when its sha is not a branch head on origin or on master's first-parent line as the lab last fetched it. On 2026-10-09 this dropped four lane requests (42f5946, 3d04e57, 8298f50, d0b2931) and the first request for #8028's squash commit c6237a7, which the lab had not fetched yet. A post-merge receipt is the only practical receipt while master moves every 10-20 minutes.

Change

A NOT_ON_ORIGIN request younger than a grace period (30 min) gets a new verdict WAIT_ORIGIN, whose exit code is 2. lab.py already keeps any request whose admit exit is neither 0 nor 1, so no hand-written line changes. After the grace it is dropped as before.

Acceptance

  • Spec tests cover: young + not on origin -> WAIT_ORIGIN, exit 2; old + not on origin -> NOT_ON_ORIGIN, exit 1; on origin -> ADMIT, exit 0.
  • gen-rust regenerated, seal re-saved, t27c builds.

User Scenarios

  • Given a request whose commit SHA is not on origin/master as the lab last fetched it, and the commit is younger than 30 minutes, When corpus-receipt admit runs, Then the verdict is WAIT_ORIGIN with exit code 2.
  • Given a request whose commit SHA is not on origin/master as the lab last fetched it, and the commit is older than 30 minutes, When corpus-receipt admit runs, Then the verdict is NOT_ON_ORIGIN with exit code 1.
  • Given a request whose commit SHA is on origin/master as the lab last fetched it, When corpus-receipt admit runs, Then the verdict is ADMIT with exit code 0.

Requirements

FR-001: The request_verdict function in specs/verified/corpus_receipt.t27 MUST return WAIT_ORIGIN for a request that is NOT_ON_ORIGIN and whose commit age is less than 30 minutes.
FR-002: The request_exit function in specs/verified/corpus_receipt.t27 MUST return exit code 2 for WAIT_ORIGIN verdict.
FR-003: The request_verdict function MUST return NOT_ON_ORIGIN for a request that is NOT_ON_ORIGIN and whose commit age is 30 minutes or older.
FR-004: The request_exit function MUST return exit code 1 for NOT_ON_ORIGIN verdict.
FR-005: The request_verdict function MUST return ADMIT for a request whose commit is on origin/master.
FR-006: The request_exit function MUST return exit code 0 for ADMIT verdict.
FR-007: Spec tests in specs/verified/corpus_receipt.t27 MUST cover the three verdict cases (WAIT_ORIGIN, NOT_ON_ORIGIN, ADMIT) with their respective exit codes.
FR-008: After spec changes, gen-rust MUST regenerate successfully, the seal MUST be re-saved, and t27c MUST build without errors.

Boundary

  • specs/verified/corpus_receipt.t27
  • specs/queen/waits.t27
  • specs/port/trios/crates/trios-git/src/commit.t27
  • scripts/tri_loop/t27b.py

Activity

  1. added a commit that references this issue on Oct 9, 2026
    e4338f4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions