Merge branch 'v2/main' into v2/chore/2154-use-connection-lifecycle

This commit is contained in:
Cliff Hall 2026-08-27 10:24:40 -04:00 • committed by GitHub
commit 6bd2841afc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 1279 additions and 53 deletions

View file

@ -552,7 +552,7 @@ describe("AppRenderer", () => {
// pending here. Observed failing exactly once that way, with 0 calls.
//
// The default 1000ms then turned out not to be enough either — it failed
// twice in a row in `npm run ci` (at ~1021ms, still 0 calls) while
// twice in a row in `npm run local:gate` (at ~1021ms, still 0 calls) while
// passing every time this file runs alone, which is the signature of a
// budget that is too tight rather than of a broken observer. Raised
// rather than retried: a `waitFor` that is generous costs nothing on the

View file

@ -108,7 +108,7 @@ async function getTool(client: InspectorClient, name: string): Promise<Tool> {
* legitimate thing to exercise, but `disconnect()` closes the SDK client, which
* rejects every pending request with "Connection closed" — and a floating
* promise makes that an *unhandled* rejection, which vitest counts as a run
* error and fails `npm run ci` even though every test passes (#1947).
* error and fails `npm run local:gate` even though every test passes (#1947).
*
* Attach the handler at call time (not after the assertions) so there is no
* window in which the rejection can escape, then finish through