Skip to content

claw: the queue, merge and check-state measurements in .t27 -- six specs, one run set - #10652

Merged
gHashTag merged 13 commits into
masterfrom
claw-queue-cost
Oct 18, 2026
Merged

gHashTag merged 13 commits into
masterfrom
claw-queue-cost

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

What

TRI CLAW's queue, merge and check-state measurements, each one a .t27 spec whose fixture is the measurement it was written from. The branch was held from 2026-10-18 while more than 150 runs were queued; at 27 queued it ships as one PR, so it costs one run set instead of ten.

Spec Answers Fixture
specs/claw/queue_cost.t27 which workflow holds the job time; which queued runs are on a current head 2026-10-18: t27b native 88% of job time
specs/claw/push_gate.t27 should a fix push go out, or would it only restart required checks #10606
specs/claw/check_state.t27 a QUEUED check is pending, not failing #10585: the dashboard reads 21 failing, 0 failed
specs/claw/check_latest.t27 a re-run supersedes the run it replaces #10563
specs/claw/required_red.t27 push_gate's req_red from the rollup, newest run per required job #10606
specs/claw/merge_lane.t27 is the merger starved, does it merge anything, what share of the queue is it 2026-10-18/19: oldest open 6598 s; 0 PRs in its last 10 runs; 23 of 209 queued runs

Also seals for evidence, evidence_pins and suggest_feed, so every claw spec has one, plus a competitors addendum and the README rows.

Verification (Railway lab)

  • Every spec: t27c test-report all passing with 0 vacuous passes, and t27b test all passing. merge_lane is 23 of 23.
  • Mutations: every recorded mutation fails a test, and none of them is caught only by turning the spec BLOCKED. merge_lane alone has 21.
  • Seals saved with zig on PATH; seal --verify matches.
  • gen-c output compiles (gcc exit 0) but with warnings, filed as gen-c: [N]str consts emit 'static const const char*' (duplicate-decl-specifier warning) #10645. It is not clean.

Not in scope

No workflow file changes. Each wiring step is the owner's decision, recorded in its issue.

Closes #10600
Closes #10606
Closes #10617
Refs #10608, #10630, #10644, #10645, #10393

🤖 Generated with Claude Code

gHashTag and others added 13 commits October 19, 2026 01:42
… queue measurement is reproducible (Closes #10600)

The 2026-10-18 queue measurement (#10590) was taken by hand with jq and awk.
This spec is that measurement: cost_plan sums job seconds per workflow and
names the top holder (t27b native, 88% in the fixture); class_plan sorts
queued runs into current head, superseded head, closed PR, draft PR, other
event and unreadable.

Writing it found a defect in the published table: the 97 draft runs were
counted twice (94 on a current head, 3 on a superseded one), so the classes
summed to 1019, not 922. One row is one class here; the fixture sums to 922.

13 tests pass under t27c test-report and under t27b; five mutations (floor
rounding, draft before superseded, no sha check, no seconds bound, empty
name) each fail at least one test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ecks (Closes #10606)

Every push to a PR head restarts its required checks at the back of the
Actions queue. push_gate decides each lane push first: hold a new PR while
more than QUEUE_LIMIT runs are queued, imported from refresh.t27 rather than
copied; push a fix only when a required check is red or the PR's own diff
causes the red; skip it when master already fixed the job, as on #10585.

14 tests, t27c and t27b pass, six mutations each fail, gen-c and gcc clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… on when checks run again (Refs #10606)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…c sealed, 24 of 24 (Refs #10608)

All three pass t27c test-report and t27b (12, 4 and 19 tests, none
vacuous); their seals were the only ones missing in specs/claw.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ing (#10617)

The PR Dashboard's per-PR line counts a check as failing when its
conclusion is not SUCCESS, SKIPPED or null. A queued check has conclusion
"" and a commit status has none, so #10585 read "21 failing" with no
failure, and a failed commit status was never counted.

check_state.t27 classifies each rollup row (status TAB conclusion, or
CONTEXT TAB state) as pass, fail, wait or unreadable, and gives one
verdict: red, pending, none or green. Unreadable is never green; no
checks is none (#3248). The dashboard's current rule is kept as a named
function so the #10585 measurement is a test.

t27c 12/12 with 0 vacuous, t27b 12/12, five mutations each fail a test,
gen-c and gcc clean, seal saved. queue_cost.t27 exports qc_line_end and
qc_split for it; its seal is re-saved.

Refs #10617

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es (#10617)

check_state.t27 read every rollup row. On 2026-10-19 #10563 held
"Issue Gate/check-linked-issue" twice: run 39151562346 COMPLETED FAILURE
and its re-run 39157315158 QUEUED. check_state called that red; the
check that decides the merge is the queued re-run, so it is pending.

check_latest.t27 takes rows with the check's name and run id. Per name,
the largest run id (compared as a number) is live; older rows are
superseded. A commit status is never superseded. A malformed row is
unreadable and supersedes nothing. Live rows are classed by check_state.

check_state's MAX_ROWS is renamed CHECK_MAX_ROWS: queue_cost also exports
MAX_ROWS, and a spec importing both lost the name in both compilers.

t27c 11/11 with 0 vacuous, t27b 11/11, six mutations each fail a test,
gen-c and gcc clean; check_state still 12/12; seals saved and verified.

Refs #10617

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e rollup (#10606)

push_gate.t27 takes req_red from its caller, and the lane set it by eye.
On 2026-10-18 that eye pushed #10585 for a red claw-sarif, which is not a
required check.

required_red.t27 reads check_latest's rows (name, run id, status,
conclusion). A row is required when its job is exactly validate,
check-linked-issue, parse-ratchet or own-language. Only the newest run
per name counts. req_red is true when a live required check fails,
unknown when any row is unreadable, false otherwise. A missing required
check is counted and is not red.

t27c 9/9 with 0 vacuous, t27b 9/9, five mutations each fail a test,
gen-c and gcc clean, seal saved; the five branch seals verify.

Refs #10606, #10617

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…wn runs (#10644)

TRI CLAW's merger job waits in the same ubuntu-latest pool as every
pull_request job. On 2026-10-18 it had 34 runs queued, the oldest 6598 s
old, and one job waited 57 min for a runner. ClawMergeLane reads one row
per merger run (status TAB conclusion TAB age) and prints counts, the
oldest open age, and F merger idle|flowing|starved|unknown (starved: an
open run older than 1800 s; a known starve wins over an unreadable row).

t27c 8/8 with 0 vacuous, t27b 8/8, 7 mutations caught, gen-c clean
(the duplicate-const warning is gen-c's, #10645), seal saved.

Refs #10393

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 of the last 40 merges on 2026-10-18 had GitHub's native auto-merge
enabled (auto_squash_enabled in the timeline); the merger workflow is not
on the merge path. Its last 10 successful runs merged nothing: nine
workflow_run runs each took a runner to log "no bee-reviewed label".
yield_plan reads one row per merger run (event TAB merged TAB no_label
TAB other) and prints a Y line and F merger-yield zero|some|unknown|none.

t27c 15/15 with 0 vacuous, t27b 15/15, 6 new mutations caught (none
BLOCKED), seal re-saved, 6 branch seals verify.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On 2026-10-19, 23 of the repository's 209 queued runs were the merger's
(22 of them workflow_run), the largest single group, while its last 10
runs merged nothing. share_plan reads one row per queued run (workflow
TAB event) and prints an S line and F merger-share low|high|unknown|none;
high at 10% or more, counting each unreadable row as somebody else's.

t27c 23/23 with 0 vacuous, t27b 23/23, 8 new mutations caught (none
BLOCKED; the eighth needed a new test), seal re-saved and verified.
gen-c compiles with warnings (#10645).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) October 18, 2026 21:10
@gHashTag
gHashTag merged commit 7401dc3 into master Oct 18, 2026
34 of 36 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 21:17:53 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 2
FAILING 46
PENDING 0
NO CHECKS YET 0

These columns do not partition: 2 + 46 + 0 + 0 = 48, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=fad12492937a != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant