Skip to content

ci(gate): raise the default full-gate timeout to 90m fleet-wide - #45

Merged
forkwright merged 1 commit into
mainfrom
chore/hybrid-gate-timeout-90
Aug 18, 2026
Merged

ci(gate): raise the default full-gate timeout to 90m fleet-wide#45
forkwright merged 1 commit into
mainfrom
chore/hybrid-gate-timeout-90

Conversation

@forkwright

Copy link
Copy Markdown
Owner

The 45m default canceled full-gate builds at 45m+seconds on five repos in one day (2026-08-18, cold caches after the billing-outage expiry): harmonia#718 (45m15s), stathmos#127 (30m15s, local gate), typikon#176 (45m20s), akroasis#392 (45m20s), aletheia#6888 (45m15s). Each repo bumped its own caller to 60-90m today; the default should cover the fleet cold-cache p95 so the next repo does not rediscover it. Ceiling for runaway jobs, not a budget. Repos with explicit overrides are untouched.

This also stops the per-repo whack-a-mole this failure shape produced — the shared reusable is the right rung for the default.

@forkwright
forkwright merged commit d74efb1 into main Aug 18, 2026
1 check passed
forkwright added a commit to forkwright/hamma that referenced this pull request Aug 18, 2026
…99)

The pinned reusable SHA (df92942b, 2026-08-15) predates the 90m
full-gate-timeout default raise (forkwright/.github#45), so this repo
keeps the stale 45m budget forever — the cold-cache cancel class
measured today (logismos died at 45m30s mid apt-install). Re-pin to
d74efb1d2d87 (current .github main, which carries the 90m default + the
release-please Bot-author waiver fix).

The stale-pin class is kanon#3515 (.github has no tags, so dependabot
cannot propose these bumps — nothing reports the drift).

Co-authored-by: forkwright <cody@forkwright.com>
forkwright added a commit to forkwright/sphragis that referenced this pull request Aug 18, 2026
…42)

The pinned reusable SHA (df92942b, 2026-08-15) predates the 90m
full-gate-timeout default raise (forkwright/.github#45), so this repo
keeps the stale 45m budget forever — the cold-cache cancel class
measured today (logismos died at 45m30s mid apt-install). Re-pin to
d74efb1d2d87 (current .github main, which carries the 90m default + the
release-please Bot-author waiver fix).

The stale-pin class is kanon#3515 (.github has no tags, so dependabot
cannot propose these bumps — nothing reports the drift).

Co-authored-by: forkwright <cody@forkwright.com>
forkwright added a commit to forkwright/heurema that referenced this pull request Aug 18, 2026
…31)

The pinned reusable SHA (df92942b, 2026-08-15) predates the 90m
full-gate-timeout default raise (forkwright/.github#45), so this repo
keeps the stale 45m budget forever — the cold-cache cancel class
measured today (logismos died at 45m30s mid apt-install). Re-pin to
d74efb1d2d87 (current .github main, which carries the 90m default + the
release-please Bot-author waiver fix).

The stale-pin class is kanon#3515 (.github has no tags, so dependabot
cannot propose these bumps — nothing reports the drift).

Co-authored-by: forkwright <cody@forkwright.com>
forkwright added a commit to forkwright/epistole that referenced this pull request Aug 18, 2026
…123)

The pinned reusable SHA (df92942b, 2026-08-15) predates the 90m
full-gate-timeout default raise (forkwright/.github#45), so this repo
keeps the stale 45m budget forever — the cold-cache cancel class
measured today (logismos died at 45m30s mid apt-install). Re-pin to
d74efb1d2d87 (current .github main, which carries the 90m default + the
release-please Bot-author waiver fix).

The stale-pin class is kanon#3515 (.github has no tags, so dependabot
cannot propose these bumps — nothing reports the drift).

Co-authored-by: forkwright <cody@forkwright.com>
forkwright added a commit to forkwright/epitelesis that referenced this pull request Aug 18, 2026
The local hybrid-gate adapter hardcoded a 45m timeout on full-gate-build
— the one consumer the reusables 90m default raise
(forkwright/.github#45) cannot reach. Same cold-cache cancel class
measured across five repos today (kanon#10081). Ceiling for runaway
jobs, not a target.

Co-authored-by: forkwright <cody@forkwright.com>
forkwright added a commit to forkwright/thumos that referenced this pull request Aug 18, 2026
…efault (#853)

Two budget fixes from the kanon#10081 fleet audit:

1. kernel (i686 tests + armv7a build): warm p95 is 26m of its 30m budget
across six sampled runs — a cold cache cancels it. Raised to 60m.
2. The pinned hybrid-gate SHA (230c932f) predates the 90m full-gate
default (forkwright/.github#45), so thumos kept the stale 45m budget.
Re-pinned to d74efb1d2d87 (current .github main; also carries the
release-please Bot-author waiver fix).

Co-authored-by: forkwright <cody@forkwright.com>
@forkwright
forkwright deleted the chore/hybrid-gate-timeout-90 branch August 19, 2026 15:57
forkwright added a commit to forkwright/epitelesis that referenced this pull request Sep 3, 2026
…tion (#36)

## Finding

Two false assertions in this repo's own documentation:

1. `_llm/current_state.toml`'s `contract_status` claims the breaking v1
invocation/supervisor contract is "implemented on the convergence branch
and awaits exact-head hosted compilation and gate evidence." No
convergence branch exists (`gh api repos/forkwright/epitelesis/branches`
lists only `main`), and the contract has been shipped and enforced since
v0.3.0.

2. `hybrid-gate-adapter.yml`'s `timeout-minutes: 90` comment cites a
kanon issue number that does not exist in that repo today. The number it
actually meant is `forkwright/.github#45`, a merged PR that raised the
fleet reusable's `full_gate_timeout_minutes` default to 90.

## Evidence

- `gh api repos/forkwright/epitelesis/branches --jq '.[].name'` → `main`
only.
- `CHANGELOG.md` v0.3.0 entry (2026-07-28): "⚠ BREAKING CHANGES: enforce
the v1 invocation lifecycle contract (#17)".
- `gh pr view 34 --repo forkwright/epitelesis --json statusCheckRollup`
and the same for PR #35: both show `gate / full-gate-build` and `gate /
gate-attestation` green, merged onto `main` on 2026-08-25/26.
- `gh issue list --repo forkwright/kanon --state all --limit 1` →
kanon's highest issue number is far below the one cited in the adapter
comment; the cited number does not resolve (`gh issue view` on it 404s).
- `gh pr view 45 --repo forkwright/.github --json title,state,mergedAt`
→ merged, "ci(gate): raise the default full-gate timeout to 90m
fleet-wide" — this is what the comment actually meant to cite.

## Why this matters

`current_state.toml` is declared as this repo's canonical
machine-readable state doc (`_llm/current_state.toml`, listed in its own
`source_docs`). An agent or tool reading it for the contract's real
status is told to look for a branch that doesn't exist and to wait for
evidence that already landed five weeks ago — the opposite of what the
file exists to prevent.

The dead issue citation in the workflow comment sends the next reader
chasing a number that resolves to nothing, right at the point where the
comment is explaining *why* a value needs manual upkeep at all (this job
is a hand-copy of the fleet reusable, not a `workflow_call` consumer of
it, so it never inherits the reusable's own default and must be kept in
sync by hand -- that fact was missing from the original comment too).

## Desired correction

- `current_state.toml`: state that the contract is implemented and
enforced on `main`, verified by the hosted full gate, and refresh
`updated`. Done in this PR.
- `hybrid-gate-adapter.yml`: point the citation at the PR that actually
raised the default (`forkwright/.github#45`), and state plainly that
this file hand-copies the fleet reusable rather than calling it. Done in
this PR.

**Not done in this PR, reported separately:** the deeper substrate-drift
this hand-copy represents -- replacing the ~185-line duplicate with a
direct `uses: forkwright/.github/.github/workflows/hybrid-gate.yml@main`
call, matching `forkwright/zetesis`'s pattern -- is out of scope here.
Verified via `forkwright/zetesis`'s live branch protection (`gh api
repos/forkwright/zetesis/branches/main/protection`), the fleet
reusable's own aggregation job is named `gate`, so a direct call would
produce required-check context `gate / gate`, not this repo's current
`gate / gate-attestation` (confirmed via this repo's own branch
protection). That rename would break branch protection until coordinated
with a protection update, which is out of this lane's authority. Flagged
inline in the workflow comment and reported to the orchestrator.

Done when: `current_state.toml` and the workflow comment both state only
claims that are true today, and neither cites a resource that doesn't
exist.

Co-authored-by: forkwright <cody@forkwright.com>
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