Skip to content

fix: give the macOS leg a 70-minute ceiling, warning at 60 - #1103

Merged
REPPL merged 2 commits into
mainfrom
fix/macos-ceiling-70
Oct 18, 2026
Merged

REPPL merged 2 commits into
mainfrom
fix/macos-ceiling-70

Conversation

@REPPL

@REPPL REPPL commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

What this changes

The check job's macOS leg gets a 70-minute ceiling, with its warning at 60, up from 60 and 50. The coordinating session decided this on delegation from the technical facilitator (dcn-2610181756328249).

Why. Ten merge-group runs on 2026-10-18:

Leg Race pass Package-time sum Sum ÷ wall loop starts–ends loop
35.1 33.9 5,738 s 2.83 9.5–31.4 1,310 s
42.3 41.0 6,997 s 2.85 10.2–38.3 1,684 s
42.2 40.8 6,927 s 2.83 11.0–37.6 1,597 s
43.8 41.9 7,099 s 2.83 10.8–38.5 1,663 s
37.9 36.2 6,114 s 2.82 8.4–33.1 1,484 s
44.4 42.2 7,155 s 2.82 11.8–38.4 1,594 s
48.6 46.1 7,750 s 2.80 11.2–42.0 1,847 s
49.3 47.4 8,050 s 2.83 11.5–43.2 1,901 s
45.2 43.3 7,331 s 2.82 9.9–39.2 1,758 s
44.8 42.4 7,150 s 2.81 11.2–39.0 1,672 s

Times are in minutes unless marked. One run came within 0.7 minutes of the old 50-minute warning.

  • No single long package: the race pass keeps a steady 2.80 to 2.85 of the runner's three test slots busy. The leg's time is its total work, not one long package: internal/core/implement/loop starts 8 to 12 minutes in and ends 2.5 to 4.2 minutes before the pass does.
  • The runner sets the variation: the same tree's package times summed to between 5,738 and 8,050 seconds.
  • Still under the queue's cap: 70 stays under the merge queue's 90-minute check response timeout, and the warning keeps its 10-minute lead.

The warning message. It named the cap as its warning line plus ten, a second copy of the lead that no test read. The step now carries CEILING_MINUTES, the message names the cap from it, and TestCheckJobWarnsBeforeTheQueueCap holds it to the leg's ceiling. There is still no ${{ }} inside run:.

Unchanged, and why:

  • The per-package -timeout of 40 minutes: the slowest package under race took at most 1,901 seconds (31.7 minutes), a margin of 8.3.
  • release.yml's verify job: it runs the ubuntu race lane over ./internal/..., about 21 minutes, under its own 55-minute ceiling, not this pass.
  • Not taken: starting the loop package first (at most 2 to 3 minutes, against a list pinned in three files), and running it without the race detector on macOS (the macOS-only flakes seen so far came from the race leg).

Records.

Evidence

  • TestRaceLaneBudgetIsDeclaredAndFitsItsJob and TestCheckJobWarnsBeforeTheQueueCap failed before the ci.yml edit and pass after it. The CEILING_MINUTES pin was watched failing before the step carried it.
  • The warning message was run under bash -e with the step's values.
  • make preflight passed on this commit (receipt minted).
  • Opus and Sonnet reviewers on a frozen copy, as asked, since ci.yml is on the CODEOWNERS publish surface: both LAND. They checked the expression, the test pin, zizmor's template-injection rule and the decision's numbers against the table. Their notes are applied in the second commit.

Resolves: iss-2610181711260494
Refs: iss-2610181757540736
Refs: iss-2610180545134593

Assisted-by: Claude:claude-opus-5-5

REPPL added 2 commits October 18, 2026 18:58
Ten merge-group runs on 2026-10-18 took the check job's macOS leg 35.1 to
49.3 minutes, one within a minute of its 50-minute warning. Its one race
pass keeps a steady 2.80 to 2.85 of the runner's three test slots busy, so
the leg is its total work, not one long package, and that work varies with
the runner: the same tree's package times summed to 5,738 to 8,050
seconds. The coordinating session, on delegation from the technical
facilitator, raised the ceiling to 70 and the warning to 60
(dcn-2610181756328249), still under the merge queue's 90-minute response
timeout and with the warning's ten-minute lead. The warning's message
names the cap from its own line and that lead, so it no longer says 60
whatever the ceiling.

Unchanged, and why: the per-package -timeout of 40 minutes, since the
slowest package took at most 31.7 under race; and release.yml's verify job,
which runs the ubuntu race lane, about 21 minutes, under its own 55.

The pass's total work is the longer lever, captured with the package-wide
figure: the claim changes cut one drain test's git processes by a quarter
but the loop and claim packages' by 5.5%, which the loop-speed record's
Outcome now says.

Resolves: iss-2610181711260494
Refs: iss-2610181757540736
Refs: iss-2610180545134593

Assisted-by: Claude:claude-opus-5-5
Review notes on the ceiling change. The warning's message named the cap
as its warning line plus ten, a second copy of the lead no test read, so a
changed lead would leave the tests green and the message naming a cap the
job does not have. The step now carries CEILING_MINUTES, the message names
the cap from it, and the test holds it to the leg's ceiling. The decision
said the loop package ends 3 to 4 minutes before the pass, where the runs
give 2.5 to 4.2, and that one run came within 0.7 minutes of the warning,
now the old 50-minute one; a ci.yml comment still called the ceiling 60.

Refs: iss-2610181711260494

Assisted-by: Claude:claude-opus-5-5
@REPPL
REPPL enabled auto-merge October 18, 2026 19:00
@REPPL
REPPL added this pull request to the merge queue Oct 18, 2026
Merged via the queue into main with commit 84ef417 Oct 18, 2026
14 checks passed
@REPPL
REPPL deleted the fix/macos-ceiling-70 branch October 18, 2026 20:17
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