Skip to content

ci: remove timeout-minutes (owner #827, no time limits) - #462

Merged
luisleo526 merged 2 commits into
mainfrom
ci/tmo-engine-2
Oct 20, 2026
Merged

luisleo526 merged 2 commits into
mainfrom
ci/tmo-engine-2

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

Owner rule #827 (no time limits in CI): delete every timeout-minutes: line in this repo's workflows. GitHub's own 6 h job maximum stays the only hang catcher.

  • Deletion only: 0/6 ci.yml, 0/2 corpus-parity.yml, 0/2 native-live.yml (10 lines); nothing else changed.
  • grep -rnE '^[[:space:]]*timeout-minutes:' .github/ prints nothing on this head.
  • TypeSafe diff guard: PASS (literal_hack / scope_creep / debug_left 0.0 / 0.01 / 0.0).

🤖 Generated with Claude Code

Replaces #460: same tree (a56cef36), but the second commit's message now names the four doc deletions the doc-reverts check requires. #460's pushed head carried the old message, and a branch is never force-pushed, so this is a new branch.

luisleo526 and others added 2 commits October 20, 2026 18:40
…ve.yml (owner #827)

Deletion-only sweep: 10 timeout-minutes lines removed.
grep -rn timeout-minutes .github/ prints nothing; git diff --numstat shows 0 added.

Co-Authored-By: Claude Code <[email protected]>
#827)

The deletion commit 85d03d6 removed every timeout-minutes declaration, but
the repository's own contract still required the deleted 360-minute deadlines:
ci_preflight.py's JOB_RUNNERS carried a minutes member and runner_findings
asserted it, and test_ci_preflight.py's table asserted that a changed 360 still
fails and that removing it fails too. The preflight therefore refused the
sweep head (rj-20261020t104302-5cba28: ci-workflow-contract and preflight-tests,
10 findings "must allow 360 minutes").

Now no job or step may declare timeout-minutes. JOB_RUNNERS holds (runner,
command); runner_findings reports one finding per affected job when the job
declares it at job level, at any step level, as a step's first key, or as a
quoted key. Runner labels, PF_CI_LABELS, core-count sizing and every other
contract are unchanged, and no workflow file is touched.

The must-fail table keeps a changed value failing (360 -> 30/45/60/10) with the
new message; the removal row now passes with an empty finding list; anchors that
used the deleted line moved to `steps:`; the minutes == 360 assertion is
replaced by an assertion that the source workflows carry no timeout-minutes,
plus new coverage for job-level, step-level, first-key and quoted-key
declarations.

docs/ci.md says the repository declares no job or step time limit and GitHub's
6 h platform maximum is the only bound; measured durations stay as historical
context. check_doc_reverts names the four deleted sentences this commit
supersedes, each stated here so the deletion stays attributable:
"The native workflow retains only its 360-minute job envelopes, with no
verification-step deadline." (7da487a); "Under the owner rule, no
required-check stage, row, step, profile or matrix entry may carry a time limit
of this repository's; the only hang catcher is the platform's own 360-minute
job maximum, which every job below carries." (7da487a); "The table below
reports each job's measured duration and the platform maximum that replaced its
old limit, so the margin the removal buys stays visible." (2394ba2); "The
numbers are measured durations, not a two-times multiplier." (2394ba2).

Co-Authored-By: Claude Code <[email protected]>
@luisleo526
luisleo526 merged commit 7d79006 into main Oct 20, 2026
22 checks passed
luisleo526 added a commit that referenced this pull request Oct 20, 2026
Both intents kept: D3 (macOS Debug excluded from pull-request builds, its
ci.yml matrix exclude and docs/ci.md build row) and #462 (no timeout-minutes
anywhere; scripts/ci_preflight.py requires their absence). The single
conflict, docs/ci.md's preflight row, takes main's wording (owner #827
removed every declared job timeout; GitHub's 6 h platform maximum); the
build row keeps the D3 text.

Co-Authored-By: Claude Code <[email protected]>
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