[pull] main from github:main - #227
Merged
Merged
Conversation
* Stop sendAndWait from emitting an unhandled rejection
`sendAndWait` creates `idlePromise` and registers the event listener that
can reject it, but the first consumer is only attached by the
`Promise.race` further down -- after `await this.send(options)`, a full
JSON-RPC round trip to the CLI.
A `session.error` arriving in that window therefore rejects a promise
that has no handler yet. Node's rejection tracker runs at the following
checkpoint, well before the `session.send` response lands, and classifies
it as unhandled, which terminates the process under the default
`--unhandled-rejections=throw`.
The window is reachable from ordinary, non-fatal traffic. `session.log`
with `{ level: "error" }` emits a `session.error` carrying
`errorType: "notification"` (asserted in test/e2e/session.e2e.test.ts),
so a joined client or extension writing an error log line while another
caller is mid-`sendAndWait` is enough. MCP servers failing to start and
sub-agent errors do the same. A caller cannot defend against this: the
rejection is on the internal promise, not on the one `sendAndWait`
returns, so even correct `.catch`/`try` handling around the call does not
prevent the crash.
Attaching a no-op `catch` marks the promise handled without consuming the
rejection, so the `Promise.race` still observes it and `sendAndWait`
rejects with the original error exactly as before.
The added test drives a session whose `session.send` RPC is held open,
dispatches a `session.error` into the window, and asserts both that no
`unhandledRejection` fires and that `sendAndWait` still rejects. It fails
on the unfixed code with the error captured by the process-level listener.
* Model sendAndWait completion without rejected promise
Represent idle and error events as a resolved outcome so an error received while session.send is pending cannot become an unhandled rejection. Preserve send failure precedence and first-event settlement, with focused ordering tests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: thejesh23 <thejesh23@users.noreply.github.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs(dotnet): clarify working directory fallback * docs: align working directory defaults across SDKs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reuse file-scoped Copilot clients for eligible Rust E2E tests while retaining dedicated clients for startup and lifecycle-sensitive cases. Keep shared router tasks on a persistent runtime and bound harness cleanup.
…ss (#2245) Bumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.4.0. - [Release notes](https://github.com/beaugunderson/ip-address/releases) - [Commits](beaugunderson/ip-address@v10.2.0...v10.4.0) --- updated-dependencies: - dependency-name: ip-address dependency-version: 10.4.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2 updates (#2244) Bumps the npm_and_yarn group with 2 updates in the /scripts/corrections directory: [postcss](https://github.com/postcss/postcss) and [undici](https://github.com/nodejs/undici). Updates `postcss` from 8.5.15 to 8.5.25 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.15...8.5.25) Updates `undici` from 6.27.0 to 6.28.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v6.27.0...v6.28.0) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.25 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: undici dependency-version: 6.28.0 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.25. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.15...8.5.25) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.25 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2242) Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/fastify/fast-uri/releases) - [Commits](fastify/fast-uri@v3.1.4...v3.1.5) --- updated-dependencies: - dependency-name: fast-uri dependency-version: 3.1.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: move SDK development guidance to local READMEs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: simplify SDK development instructions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: address SDK development review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: document Node requirement for SDK tests Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: keep local test commands cross-platform Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…2252) Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.25. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.15...8.5.25) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.25 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…urrent `aborted` field (#2232) The `session.idle` reference tables listed a `backgroundTasks` field of type `BackgroundTasks`. That field was removed from the payload and the docs were never updated; the type name no longer exists in the schema either. The payload's only member today is an optional `aborted` boolean, which was undocumented. Corrects the data-field row and the at-a-glance row in docs/features/streaming-events.md, plus the two Node.js quick-reference tables. Documentation only; no code, schema or generated file is affected. Co-authored-by: examon <examon@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Run Python tests in parallel Use two pytest-xdist workers with file-level scheduling so module-scoped E2E clients and proxies remain together while independent modules run concurrently. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Shard Windows .NET tests across processes Run the slow Windows default-transport suite in two isolated jobs while preserving serial xUnit execution within each test host. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Raise Node E2E timeout budget on Windows Use a 60-second Vitest test and hook budget on Windows runners while preserving the existing 30-second budget elsewhere. This covers both default and in-process transports without weakening individual assertions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 51fbb14d-022f-4acb-bdce-1753cba236f9 * Split Windows .NET target frameworks across runners Run net8.0 and net472 in independent Windows matrix jobs instead of concurrently in one testhost job. This isolates each CLI and replay-proxy fixture graph without increasing the workflow's critical-path test duration. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 51fbb14d-022f-4acb-bdce-1753cba236f9 * Give Rust metadata E2E its own replay fixture Rename the repurposed metadata test and route it to a snapshot that matches its RUST_CONTEXT_INFO prompt. Preserve the existing compaction snapshot used by Python instead of sharing an incompatible conversation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 51fbb14d-022f-4acb-bdce-1753cba236f9 * Keep target frameworks in existing test shards The framework split reduced the measured Windows critical path by only 0.1 minutes while doubling the number of Windows jobs. Preserve the class-level process sharding that reduced the critical path by roughly seven minutes instead. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 51fbb14d-022f-4acb-bdce-1753cba236f9
* Add user prompt transformed hook to all SDKs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address user prompt hook review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Complete hook registration examples Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Synchronize transformed hook test inputs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )