Skip to content

The gate is one suite's clock, not a grouping problem - #24

Merged
JulienMartel merged 1 commit into
mainfrom
worktree-bats-grouped-by-need
Sep 16, 2026
Merged

JulienMartel merged 1 commit into
mainfrom
worktree-bats-grouped-by-need

Conversation

@JulienMartel

Copy link
Copy Markdown
Contributor

factory's Tests job is 129s and its bats step is 118s of it, which made it
look like haus's shell half before that was cut four ways. It is not the same
shape, and the step list's own need boundary — the snug checkout only
agent-surface and presentation read — is the split that proves it: the
painter half is 9s, under the ~11s a Linux job costs, and the half left behind
is still a 121s job. Eight seconds for a second runner request.

Timed per file from the per-line timestamps gh api .../jobs/<id>/logs
carries, five PR runs: factory-watchdog is 88s of the 118, and 55s of that 88
is wall clock on purpose — 36s in the two suspend cases, which stub sleep so
awake-seconds and wall-seconds can be told apart, and 19s in seven waits for an
absence, which cannot poll. A Mac 2.8x slower on every other suite runs those
two suspend cases in 35s against the runner's 36, which is the tell.

No split, then; the arithmetic goes in the job's banner instead, so the next
reader inherits the measurement rather than the impression. Also checked what
haus turned up: nothing here is held open past its last ok — summed per-case
timestamps come to 118.1s against the step's own 117.8s.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

factory's Tests job is 129s and its `bats` step is 118s of it, which made it
look like haus's shell half before that was cut four ways. It is not the same
shape, and the step list's own need boundary — the snug checkout only
`agent-surface` and `presentation` read — is the split that proves it: the
painter half is 9s, under the ~11s a Linux job costs, and the half left behind
is still a 121s job. Eight seconds for a second runner request.

Timed per file from the per-line timestamps `gh api .../jobs/<id>/logs`
carries, five PR runs: factory-watchdog is 88s of the 118, and 55s of that 88
is wall clock on purpose — 36s in the two suspend cases, which stub `sleep` so
awake-seconds and wall-seconds can be told apart, and 19s in seven waits for an
absence, which cannot poll. A Mac 2.8x slower on every other suite runs those
two suspend cases in 35s against the runner's 36, which is the tell.

No split, then; the arithmetic goes in the job's banner instead, so the next
reader inherits the measurement rather than the impression. Also checked what
haus turned up: nothing here is held open past its last `ok` — summed per-case
timestamps come to 118.1s against the step's own 117.8s.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@JulienMartel
JulienMartel merged commit 84a822d into main Sep 16, 2026
1 check passed
@JulienMartel
JulienMartel deleted the worktree-bats-grouped-by-need branch September 16, 2026 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant