Repository navigation
ci: fix incident regex, add job timeouts, drop stale root jest config - #2178
Conversation
Fixes three CI hygiene issues: the test:music:incident regex no longer misses queueManipulation and playerFactory suites (#2154), every job across all 19 workflow files now sets timeout-minutes so a hang can't burn the 360-minute default (#2162), and the unreferenced root jest.config.cjs that had drifted from packages/backend's config is removed (#2163).
|
Failed to generate code suggestions for PR |
There was a problem hiding this comment.
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, release, and PR-automation workflows so a hung step is killed rather than running to the runner's 6-hour default (docker builds get 60, deploy 45, most gates 10–15). The remaining changes are package-manifest churn — dependency, devDependency, override, and script updates in package.json.
Worth a look
- Incident test script no longer matches playerFactory.test files —
package.json:31· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
All reported issues were addressed across 19 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
playerFactory.test also matches under jest roots (tests/handlers/player), so the incident regex now covers both playerFactory.spec and playerFactory.test instead of dropping the .test file. deploy.yml's internal polling budget (docker wait 1860s, webhook retry 210s, version validate 600s, auth-config smoke 540s, oauth redirect smoke 560s, homelab completion wait 180s) sums to about 3950s (65.8 min); 75 min gives margin over that sum plus checkout/setup overhead. pr-agent.yml raised to 20 min: max of the 10 min floor doubled and 2x the measured p95 (1.2 min), so 20 min covers three sequential LLM review passes over a large diff.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, release, and PR-automation workflows, capping runtimes from 10 minutes for lightweight scripting jobs up to 60/75 minutes for Docker builds and production deploys so a hung step can't consume a full runner allotment.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 13543e3 (diverged from this PR's base — delta is approximate).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
0 issues found across 3 files (changes from recent commits).
Requires human review: Adds timeout-minutes to all CI jobs, fixes a test regex, and deletes a root jest config. Timeout adjustments are operational tradeoffs needing human review.
Re-trigger cubic
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the GitHub Actions workflows so runs are bounded rather than relying on the 6-hour default, with per-job limits scaled to the work (10 for lightweight label/notify/release jobs, 15–30 for CI/test/deploy jobs, 60 for Docker builds, 75 for production deploy).
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the GitHub Actions workflows (CI, deploy, mutation, PR agent, release, stale, etc.), so hung jobs are killed at a per-job budget instead of running to the account default. Limits scale with the work — 60m for docker-build, 75m for deploy, 10–15m for lint/notify/label jobs.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit ecc1e5d, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, release, and automation workflows, capping runtimes from 10 minutes for lightweight scripting jobs up to 60–75 minutes for Docker builds and production deploys so a hung step fails instead of running to the org default.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 2fcef3c, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Graphify review — findings
Adds explicit timeout-minutes to every job across the GitHub Actions workflows, so hung jobs are killed rather than running to the runner's 6-hour default (limits range from 10 minutes for light script jobs up to 60–75 for Docker builds and deploys).
Worth a look
- Root Jest config removed, breaking
jestconsumers that rely on default repository config —jest.config.cjs:1· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 5d4c447, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every CI/CD workflow job so a hung step gets killed instead of running to the runner's 6-hour default — build/test/lint jobs cap at 15–20 min, docker-build at 60, and deploy at 75.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 4b9b152, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every CI/CD workflow job so runs can no longer hang until the 6-hour org default — capping the Docker matrix build at 60 and the production deploy at 75, with most utility jobs at 10–15.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 6d557ec, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Graphify review — findings
Adds explicit timeout-minutes to every CI/CD workflow job so hung runs are killed rather than burning the full runner budget, with per-job limits scaled to the work (10 for label/notify/approve, 15–30 for build/test/deploy, 60 for Docker builds, 75 for production deploy). The truncated package.json changes (dependency, script, override, and prettier/type field updates) appear alongside but aren't shown in detail here.
Worth a look
- test:shared script referenced in test:all but not defined —
package.json· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 3e504e3, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every CI, deploy, release, and automation job so no run can hang past its budget (10–75 minutes depending on the job's weight, e.g. 60 for docker-build, 75 for production deploy, 30 for mutation and staging). The remaining changes are package metadata and dependency-pin churn in package.json (scripts, overrides, devDependencies) plus tooling config for eslint, stryker, and secretlint.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the GitHub Actions workflows so no run can hang indefinitely, with per-job limits scaled to expected duration (10 for lightweight notify/label/guard jobs, 60 for docker-build, 75 for the production deploy).
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit e0928e7, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, security, and automation workflows so no job can hang indefinitely and burn runner minutes — values are scaled per job (10 for lightweight scripting/label/notify jobs, 15–30 for build/test/mutation/security, 60 for Docker builds, and 75 for production deploy).
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit dfe8420, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, mutation, release, and utility workflows so a hung job is killed rather than running to the runner's default 6-hour cap — deploy jobs get the longest budgets (75 for deploy, 60 for docker-build) and lightweight notify/label jobs get 10. The truncated tail also touches package.json scripts, dependencies, and overrides, but the shown diff only covers the workflow timeout additions.
No blocking issues surfaced. 2 lower-confidence candidates did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every CI/CD workflow job so runs can no longer hang until the default 6-hour ceiling — budgets range from 10 minutes for lightweight bot/label jobs up to 60 for Docker builds and 75 for production deploy. The package.json and dependency/override changes round out the diff (bumped tooling, script tweaks).
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit d2eacef, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, mutation, release, and PR-automation workflows, capping each at a per-job budget (10 for lightweight automation, 15–30 for build/test/scan jobs, 60 for Docker builds, 75 for production deploy) so a hung job fails instead of running until the runner's default limit.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the GitHub Actions workflows (10–75 minutes depending on the job's expected duration), so runs that hang no longer occupy runners until the default 6-hour cap.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 0999ba3, 1 commit(s) behind this PR's base.
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds explicit timeout-minutes to every job across the CI, deploy, security, mutation, release, and PR-automation workflows, so a hung step now fails the job at its budget (ranging from 10 minutes for lightweight automation to 60–75 for Docker builds and production deploy) instead of running to the runner's default six-hour cap.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 223 functions depend on the 223 functions this change touches.
Health — this change adds coupling hotspots:
- new:
build-and-push— 0 callers, 7 callees
Verification — 223 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 223 function(s) in the blast radius were not formally verified this run
· 1 grounded finding(s) anchored inline below.
|
|
Resolved the 16 identical graphify-labs threads: timeout-minutes adds no call edges to build-and-push; the bot re-posted the same finding on every update-branch push (see the issue filed for that). |
## Root cause The lockfile guard in `dangerfile.ts` was already keyed on dependency fields via `danger.git.JSONDiffForFile`. The false positive on #2178 came from its catch-all: in `danger ci` that call diffs with local git, and the reusable workflow checks out with `fetch-depth: 50`, so on a heavily rebased PR the base commit is missing, the call throws, and the catch set `depFieldChanged = true`. Reproduced the other way round: `danger pr` (API-backed diff) on #2178 passes with the unchanged file. The issue text said the Dangerfile lives in the org repo; it lives here. Org PR LucasSantana-Dev/.github#16 only added a comment to the workflow and needs no follow-up. ## Change - On a local diff failure, read base and head `package.json` through `danger.github.utils.fileContents` and compare the same `DEP_FIELDS`. - Only if that also fails, `warn` and skip that file instead of failing. ## Verification (local `danger pr`, API path forced by making the local diff throw) | PR | change | result | |---|---|---| | #2178 | `scripts` only | passes | | #2196 | `overrides` changed, lockfile untouched | fails with the lockfile message | Closes #2182 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fixes #2182: the lockfile guard in `dangerfile.ts` no longer fails on scripts-only edits when the local diff is unavailable. Previously, any local diff failure was treated as a dependency change; now the guard re-reads base and head `package.json` via the API and compares the same dependency fields. Only if that API check also fails does it warn and skip the file instead of failing. <sup>Written for commit 7db8844. Summary will update on new commits.</sup> <a href="https://cubic.dev/pr/LucasSantana-Dev/Lucky/pull/2202?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. -->



Summary
Three unrelated CI hygiene fixes bundled into one PR since they all touch
.github/root CI plumbing and were filed together by the same backlog run.test:music:incidentregex so it no longer silently skips the queue-manipulation and player-factory regression suites.timeout-minutesto every job across all 19 workflow files so a hang can't burn the 360-minute GitHub default.jest.config.cjs.Closes #2154
Closes #2162
Closes #2163
#2154 - test:music:incident regex
queueManipulation.specwas split by #1730 intoqueueManipulation.{autoplay,dedup,operations,priority,replenish,scoring}.spec.ts, andplayerFactory.testnever matched because the real file isplayerFactory.spec.ts. Both branches matched zero files, so those two regression guards ran 0 tests with a green check.Fix:
queueManipulation.spec->queueManipulation\..*spec,playerFactory.test->playerFactory\.spec.Verification, every branch matches at least one file:
Full
npm run test:music:incidentrun (afternpm run db:generate, which CI'stest-botjob already runs via thebuild-shareddependency chain):10 suites now run (up from 8 matching before the fix, 2 of which -
queueManipulation.specandplayerFactory.test- matched 0 files).#2162 - timeout-minutes on every job
No job in any of the (now 19, was 18 when the issue was filed) workflow files under
.github/workflows/settimeout-minutes; every job fell back to GitHub's 360-minute cap.Sized from
gh run list --workflow <file> --limit 20history (run-level durations viastartedAt/updatedAt, and per-job durations forci.ymlviagh run view --json jobs), using roughly 2x observed p95 rounded up, with floors of 15 for test/lint jobs, 30 for docker builds, 30 for deploy/webhook-wait jobs, and 10 for trivial label/notify jobs:Not changed -
quality.yml'squalityjob andreview-tools.yml'sdangerjob both call a reusable workflow viauses:. GitHub Actions does not supporttimeout-minuteson a job that calls a reusable workflow (onlyname,uses,with,secrets,needs,if,permissions,strategyare valid there), so these two are left as-is.Verification - every workflow file still parses and actionlint reports zero issues:
git diff --staton the workflow files confirms only thetimeout-minuteslines were added, no reformatting:#2163 - stale root jest.config.cjs
Confirmed nothing references the root
jest.config.cjs(no rootjestscript exists either, only thejestdevDependency entry):All other
jest.config.cjsmentions found in the repo (CHANGELOG.md, docs/TESTING.md, decisions/*.md) refer to the package-scoped configs (packages/backend/jest.config.cjs,packages/bot/jest.config.cjs,packages/shared/jest.config.cjs), not the root one. No doc instructs running barejestfrom the repo root, so nothing needed updating there. Deleted the file.Verification
npm run test:music:incident- 10/10 suites, 135/135 tests passing.npm run type:check- clean across shared/bot/backend/frontend.python3 -c "import yaml,glob;..."andactionlint- all 19 workflow files parse, zero lint findings.git diff --staton touched workflow files - additions only, no reformatting.Summary by cubic
Fixes #2154, #2162, and #2163: the music incident check now matches all relevant suites, eligible GitHub Actions jobs have bounded runtimes, and the unused root Jest config is removed. This prevents false-green checks, limits hung jobs, and removes stale configuration.
Details
playerFactory.specandplayerFactory.test, plus splitqueueManipulationsuites.actionlintreports no issues.Written for commit ea04bd8. Summary will update on new commits.