You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Smoke and CI wall-clock budgets: the five rows #2323 left as "assess" #2333
Split out of #2323, which enumerated every wall-clock budget in the repo's test
gates and fixed the Vitest, Testing Library and Playwright ones. Five rows in
its Group F/G were marked assess — they need a read that survey did not do,
and #2323 says so explicitly under "Follow-up work identified but not in scope".
The cheap, definite one (F6, hoisting the 19 scattered Playwright locator
budgets into scripts/lib/browser-timeouts.mjs) was folded in; these are the
rest.
Each needs the same two questions answered that #2323 answered for the others: is this a ceiling on a poll or a fixed sleep, and is the number one
somebody chose for a machine running three or four concurrent worktree gates.
#
Site
Current
What to decide
F1
scripts/lib/announced-child.mjs:48-49
timeoutMs = 30_000, pollMs = 250
Bounds test-server readiness for every smoke that needs one, so it gates the widest surface of the five.
F4
scripts/lib/mcp-app-flow.mjs:177-179
goto 30_000, connect 45_000, ready 45_000
Predates browser-timeouts.mjs and duplicates its ui/roundTrip split by hand. Either adopt those constants or say why this flow differs.
F5
scripts/lib/deep-link-connect.mjs:60-61
goto 30_000, connect 45_000
Deliberately mirrors F4 — keep them shared, don't fork. Same call as F4.
F7
scripts/lib/pty.mjs:133
spawnSync(…, { timeout: 5000 })
Probes for script(1). A 5s bound on a process spawn under 8x oversubscription is thin, and its expiry means "no pty available" rather than "slow", so a false negative silently changes what the TUI smoke tests.
G1
.github/workflows/main.yml — no timeout-minutes on any job or step (5 jobs)
GitHub's 360 min default
Set an explicit per-job budget as a hung-job guard, not as a flake fix. Nothing in #2323's evidence implicates CI — GitHub runners are not the contended machine. sdk-watch.yml:119 already does this (timeout-minutes: 20) and is the precedent.
Each of the five rows is either changed with a comment saying what the budget
covers, or recorded on this issue as "keep, the default is correct" with the
reasoning.
F4 and F5 end up sharing whatever they end up with.
If any Playwright budget moves, it moves in scripts/lib/browser-timeouts.mjs
(or joins it), not at a call site.
Activity
fix: address Copilot review round 1 (#2333)
Merge pull request #2349 from modelcontextprotocol/v2/chore/2333-smok…
docs: point the timeout rule at the smoke/CI follow-up
chore: state the smoke-helper and CI wall-clock budgets (modelcontext…
docs: bring quality-gate.md up to date after modelcontextprotocol#2338 …