Merge pull request #2357 from modelcontextprotocol/v2/chore/2356-stale-gate-comments

docs: correct two stale gate comments after #2354 (gate-lease MAX_WAIT_MS, main.yml table pointer)
This commit is contained in:
Cliff Hall 2026-09-13 18:36:07 -04:00 • committed by GitHub
commit 96b0531196
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 7 deletions

View file

@ -130,7 +130,7 @@ jobs:
# non-Chromium `SMOKE_BROWSER` to any workflow.
# `npm run test:scripts` fails if you do (scripts/lib/workflow-gate.mjs,
# #2146). `npm run smoke` and `smoke:web:chromium` belong here and are
# not affected. The canonical CI-vs-local table is in the root README.
# not affected. The canonical CI-vs-local split is docs/quality-gate.md.
#
# End-to-end smokes through the built launcher (--help dispatch + prod
# CLI/web). Not part of any client's `validate`: it needs the

View file

@ -106,12 +106,16 @@ export const PROGRESS_MS = 60_000;
/**
* How long a waiter waits before giving up.
*
* A dead holder releases within {@link STALE_MS}, so this only ever expires
* against a *live* holder that is still running after 45 minutes — four
* queued quiet gates are ~18 minutes, so a holder that long is a hung gate, and
* the right outcome is a loud failure naming it rather than a fifth process
* joining the pile. An unbounded wait would be a task that looks like progress
* and can never succeed.
* This is a *total queueing budget*: it counts from the waiter's first attempt
* and is not reset when the holder ahead releases and another queued gate
* takes the lease. A dead holder releases within {@link STALE_MS}, so it
* expires against a live gate that has hung, a dead holder's lock directory
* that could not be removed, or a queue of healthy gates deeper than the
* budget covers — about ten at ~4.5 minutes each. The right outcome in every
* case is a loud failure naming whichever gate holds the lease at that moment
* rather than another process joining the pile; an unbounded wait would be a
* task that looks like progress and can never succeed. Keep this in step with
* the lease section of docs/quality-gate.md (#2354), which owns the prose.
*/
export const MAX_WAIT_MS = 45 * 60_000;