fix(core): handle AbortError thrown during processTurn#21296
fix(core): handle AbortError thrown during processTurn#21296gsquared94 merged 2 commits intogoogle-gemini:mainfrom
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses an issue where unhandled Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces error handling for AbortError within the sendMessageStream method, wrapping the processTurn generator in a try...catch block to map AbortError to a UserCancelled event and prevent unhandled exceptions. A security audit confirmed that these changes are security-neutral and improve robustness by gracefully handling cancellations, with no high or critical security vulnerabilities identified. A new regression test has also been included to verify this behavior.
6f3ff7f to
d20259a
Compare
gsquared94
left a comment
There was a problem hiding this comment.
I think this fix complements #21123
…#21296) Co-authored-by: Gaurav <39389231+gsquared94@users.noreply.github.com>
…#21296) Co-authored-by: Gaurav <39389231+gsquared94@users.noreply.github.com>
…#21296) Co-authored-by: Gaurav <39389231+gsquared94@users.noreply.github.com>
…#21296) Co-authored-by: Gaurav <39389231+gsquared94@users.noreply.github.com>
Summary
AbortErrorinGeminiClient.sendMessageStream()when thrown from async work insideprocessTurnUserCancelledevent instead of allowing the stream generator to throwprocessTurnsetup (loopDetector.turnStarted) to reject withAbortErrorWhy
Issue #21122 reports unhandled
AbortErrorcrashes during stream generation. Some aborts can surface fromprocessTurninternals beforeTurn.run()has a chance to convert them into stream events. This patch handles that boundary safely.Testing
pnpm -C packages/core test -- src/core/client.test.ts(failed in this environment becausevitestis not installed in local workspace path)