Skip to content

fix(ci): raise security/quality job timeouts for observed setup variance - #601

Merged
qnbs merged 1 commit into
mainfrom
fix/ci-quality-security-timeout-budget
Sep 4, 2026
Merged

fix(ci): raise security/quality job timeouts for observed setup variance#601
qnbs merged 1 commit into
mainfrom
fix/ci-quality-security-timeout-budget

Conversation

@qnbs

@qnbs qnbs commented Sep 4, 2026

Copy link
Copy Markdown
Owner

User description

Summary

Four independent timeout-cancellations occurred within ~2 hours of CI activity across two different jobs, all traced to the same root cause: the shared ./.github/actions/setup composite (pnpm install --frozen-lockfile, with pnpm-store caching already configured via cache: pnpm on actions/setup-node) took 7+ minutes on affected runs instead of its typical ~1-2 minutes -- consistent with this repo's already-documented npm-registry/CDN edge-node variance (the same class of issue noted in this repo for pnpm audit's decode failures), not a caching misconfiguration or a code regression.

Direct evidence (job step timestamps, independently confirmed on two different jobs):

  • Security Audit (main, commit c0f372b3, first attempt): setup ran 00:24:06-00:31:28 (7m22s), leaving pnpm audit running until the 10-minute job timeout cancelled it -- OSV scan / gitleaks / dependency-review never got to run at all.
  • Quality Gate (Node 22) (PR fix(e2e): eliminate WelcomePortal startup/navigation nondeterminism (#532) #596, second consecutive attempt): setup ran 00:47:10-00:54:37 (7m27s), leaving Vitest cut off by the 15-minute job timeout mid-run, even though lint/typecheck/every other gate had already passed in the remaining ~11 seconds.
  • Separately, Quality Gate (Node 24) succeeded at both 9m17s and 14m7s on different runs of otherwise-identical content -- a 50%+ swing from runner/network variance alone.

Fix

  • security job: timeout-minutes: 10 -> 15
  • quality job: timeout-minutes: 15 -> 22

Both sized to comfortably absorb a slow (~7-8 min) setup stacked with a normal-length run of the job's own real work, without weakening or skipping any test, lint, or security gate -- this only changes how long CI is willing to wait, not what it checks.

Test plan

  • pnpm run workflow-policy:check -- clean (permissions, needs graph, action pins all structurally sound)
  • pnpm run lint -- clean
  • pnpm run ci:prepush -- all local checks PASS
  • Fresh CI on this PR itself

Summary by Sourcery

Increase security and quality CI job timeouts to accommodate transient dependency setup delays.

Bug Fixes:

  • Increase the Security Audit job timeout to prevent cancellation during unusually slow dependency setup.
  • Increase the Quality Gate job timeout to prevent cancellation during CI runtime variance.

CI:

  • Raise CI time limits for security and quality jobs while preserving all existing validation checks.

CodeAnt-AI Description

Prevent CI security and quality checks from being cancelled during slow setup

What Changed

  • Security audits can now run for up to 15 minutes instead of 10
  • Quality checks can now run for up to 22 minutes instead of 15
  • Existing security, lint, typecheck, and test checks remain unchanged

Impact

✅ Fewer security scan cancellations
✅ Fewer interrupted test runs
✅ CI tolerates slower dependency installation

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.


Summary by cubic

Raises the security and quality job timeouts so CI stops cancelling runs when the shared setup step is slow. Setup occasionally takes 7+ minutes instead of the usual 1–2 minutes due to registry/CDN variance, which caused four timeout-cancellations in two hours. security goes from 10 to 15 minutes and quality from 15 to 22 minutes; both still run the same checks.

Written for commit 7b0d14c. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Chores
    • Extended the time limits for security and quality checks to allow longer-running validation tasks to complete.

Four independent timeout-cancellations occurred within ~2 hours of CI
activity across two different jobs, all traced to the same root cause:
the shared ./.github/actions/setup composite (pnpm install --frozen-lockfile,
with pnpm-store caching already configured) took 7+ minutes on affected
runs instead of its typical ~1-2 minutes -- consistent with this repo's
already-documented npm-registry/CDN edge-node variance (the same class of
issue noted for `pnpm audit`'s decode failures), not a caching
misconfiguration or a code regression.

Direct evidence (job step timestamps, both confirmed independently):
- Security Audit (2026-09-04, commit c0f372b first attempt): setup
  00:24:06-00:31:28 (7m22s), leaving pnpm audit only until the 10-minute
  job timeout before OSV scan / gitleaks / dependency-review never got to
  run at all.
- Quality Gate Node 22 (PR #596, second consecutive attempt): setup
  00:47:10-00:54:37 (7m27s), leaving Vitest cut off by the 15-minute job
  timeout mid-run even though lint/typecheck/other gates all passed in
  the remaining ~11 seconds.
- Separately, Quality Gate Node 24 succeeded at both 9m17s and 14m7s on
  different runs of otherwise-identical content -- a 50%+ swing from
  runner/network variance alone.

security: 10 -> 15 minutes. quality: 15 -> 22 minutes. Both sized to
comfortably absorb a slow (~7-8 min) setup stacked with a normal-length
run of the job's own real work, without weakening or skipping any test,
lint, or security gate.
@codeant-ai

codeant-ai Bot commented Sep 4, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR 7b0d14c Sep 04, 2026 · 01:08 01:10

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @qnbs, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 4 hours and 41 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@codeant-ai

codeant-ai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
worldscript-studio Ready Ready Preview Sep 4, 2026 1:09am UTC

@sourcery-ai

sourcery-ai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

The workflow extends the security and quality job timeouts to absorb occasional 7–8 minute dependency setup delays, preventing otherwise valid CI runs from being cancelled while preserving the existing checks and job dependencies.

Flow diagram for extended CI job timeouts

flowchart TD
    P[workflow-policy] --> S[Security Audit<br/>timeout 15 minutes]
    S --> Q[Quality Gate<br/>timeout 22 minutes]
    Setup[Shared dependency setup<br/>7-8 minute variance] -. absorbs .-> S
    Setup -. absorbs .-> Q
Loading

File-Level Changes

Change Details Files
Increase CI timeout budgets for security and quality jobs to tolerate documented setup-time variance without changing validation coverage.
  • Raise the security audit timeout from 10 to 15 minutes.
  • Raise the quality gate timeout from 15 to 22 minutes.
  • Retain all existing security, lint, typecheck, test, and policy steps unchanged.
.github/workflows/ci.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@what-the-diff

what-the-diff Bot commented Sep 4, 2026

Copy link
Copy Markdown

PR Summary

  • Extended Timeout for Security Audit Job
    Security checks during audits are crucial in ensuring system protection. To ensure thoroughness, the timeout for this job has been increased from 10 minutes to 15 minutes.

  • Extended Timeout for Quality Gate Job
    Quality checks are essential for maintaining our software's high standards. Therefore, we've expanded the timeout for this job from 15 minutes to 22 minutes, providing more time to thoroughly assess each software release.

@codeant-ai codeant-ai Bot added the size:XS This PR changes 0-9 lines, ignoring generated files label Sep 4, 2026
@deepsource-io

deepsource-io Bot commented Sep 4, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in c0f372b...7b0d14c on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Docker Sep 4, 2026 1:08a.m. Review ↗
Python Sep 4, 2026 1:08a.m. Review ↗
Rust Sep 4, 2026 1:08a.m. Review ↗
Shell Sep 4, 2026 1:08a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@codeant-ai

codeant-ai Bot commented Sep 4, 2026

Copy link
Copy Markdown

🏁 CodeAnt Quality Gate Results

Commit: 7b0d14cc
Scan Time: 2026-09-04 01:10:16 UTC

✅ Overall Status: PASSED

Quality Gate Details

Quality Gate Status Details
Secrets ✅ PASSED 0 secrets found
Duplicate Code ✅ PASSED 0.0% duplicated
SAST ✅ PASSED No security issues
Bugs ✅ PASSED Rating S: No bugs
IAC ✅ PASSED Rating S: No issues

View Full Results

@amazon-q-developer amazon-q-developer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

This PR appropriately addresses documented CI timeout failures by raising budget limits for the security and quality jobs. The changes are backed by clear evidence of setup-time variance from npm registry CDN edge-node issues.

Changes reviewed:

  • security job: timeout increased from 10 to 15 minutes (line 65)
  • quality job: timeout increased from 15 to 22 minutes (line 262)

The timeout values are sized to accommodate documented slow (~7-8 min) setup times while maintaining all existing gates. No functional issues, security concerns, or logic errors identified.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No application code in the PR — skipped Code Health checks.

See analysis details in CodeScene

Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Essentials

Run ID: 266ee700-fcbe-4e1c-8f0f-20fc513db7d0

📥 Commits

Reviewing files that changed from the base of the PR and between c0f372b and 7b0d14c.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.


📝 Walkthrough

Walkthrough

The CI workflow increases the security job timeout from 10 to 15 minutes and the quality job timeout from 15 to 22 minutes.

Changes

CI timeout updates

Layer / File(s) Summary
Job timeout adjustments
.github/workflows/ci.yml
The security job timeout increases to 15 minutes. The quality job timeout increases to 22 minutes.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 7b0d1

Security and quality CI jobs receive additional time to complete existing checks during setup variability, without changing the checks themselves. The change is ready to merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: increasing the CI timeouts for the security and quality jobs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ci-quality-security-timeout-budget

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@qnbs
qnbs merged commit b1d201d into main Sep 4, 2026
42 checks passed
@qnbs
qnbs deleted the fix/ci-quality-security-timeout-budget branch September 4, 2026 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS This PR changes 0-9 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant