Conversation
|
🧪 Testing To try out this version of the SDK: Expires at: Sat, 02 May 2026 05:26:58 GMT |
|
Canary encountered an internal error while analyzing this PR. |
6972295 to
d19a5b9
Compare
Confidence Score: 5/5 - Safe to Merge
|
d19a5b9 to
76a7033
Compare
Confidence Score: 5/5 - Safe to Merge
|
76a7033 to
abd5f3a
Compare
Confidence Score: 5/5 - Safe to Merge
|
abd5f3a to
651d17f
Compare
Confidence Score: 5/5 - Safe to Merge
|
651d17f to
fc292db
Compare
Confidence Score: 5/5 - Safe to Merge
|
fc292db to
08cc52a
Compare
Confidence Score: 5/5 - Safe to Merge
|
Release version edited manuallyThe Pull Request version has been manually set to If you instead want to use the version number |
08cc52a to
15abf4d
Compare
Confidence Score: 5/5 - Safe to Merge
|
15abf4d to
2dbef30
Compare
Confidence Score: 5/5 - Safe to Merge
|
2dbef30 to
b86942f
Compare
Confidence Score: 5/5 - Safe to Merge
|
b86942f to
dd246c5
Compare
Confidence Score: 5/5 - Safe to Merge
|
0b83ccb to
d4e4451
Compare
Confidence Score: 5/5 - Safe to Merge
|
Confidence Score: 5/5 - Safe to Merge
|
d4e4451 to
a7b2b11
Compare
eb78e16 to
54b8168
Compare
Confidence Score: 3/5 - Review RecommendedLikely safe but review recommended — this patch release adds Gmail Actions support, a memory search Key Findings:
Files requiring special attention
|
54b8168 to
655717f
Compare
| ...(codeTool !== undefined && { includeCodeTool: codeTool }), | ||
| ...(docsTools !== undefined && { includeDocsTools: docsTools }), | ||
| codeExecutionMode: defaultOptions.codeExecutionMode, | ||
| docsSearchMode: defaultOptions.docsSearchMode, | ||
| docsDir: defaultOptions.docsDir, | ||
| }; | ||
| } |
There was a problem hiding this comment.
Correctness: The returned McpOptions object is missing several properties from defaultOptions that are defined in the McpOptions type: stainlessApiKey, codeAllowHttpGets, codeAllowedMethods, codeBlockedMethods, and customInstructionsPath. These will be silently dropped when parseQueryOptions is called, potentially causing features like auth and method filtering to stop working for HTTP connections.
🤖 AI Agent Prompt for Cursor/Windsurf
📋 Copy this prompt to your AI coding assistant (Cursor, Windsurf, etc.) to get help fixing this issue
In packages/mcp-server/src/options.ts, the `parseQueryOptions` function (lines 179-185) returns a `McpOptions` object that is missing several properties from `defaultOptions`: `stainlessApiKey`, `codeAllowHttpGets`, `codeAllowedMethods`, `codeBlockedMethods`, and `customInstructionsPath`. These are defined in the `McpOptions` type but are not forwarded through, so they will be silently dropped. Add these properties to the returned object: `stainlessApiKey: defaultOptions.stainlessApiKey`, `codeAllowHttpGets: defaultOptions.codeAllowHttpGets`, `codeAllowedMethods: defaultOptions.codeAllowedMethods`, `codeBlockedMethods: defaultOptions.codeBlockedMethods`, `customInstructionsPath: defaultOptions.customInstructionsPath`.
Confidence Score: 3/5 - Review RecommendedLikely safe but review recommended — this patch release introduces useful extensions to Gmail Actions integration and MCP server capabilities, but has two substantive correctness issues that should be addressed. In Key Findings:
Files requiring special attention
|
655717f to
873125d
Compare
873125d to
f0c2e07
Compare
Confidence Score: 3/5 - Review RecommendedLikely safe but review recommended — this PR delivers a solid patch release expanding Gmail Actions support and MCP server enhancements, but two unresolved correctness concerns from a prior review remain open. Specifically, the static Key Findings:
Files requiring special attention
|
Confidence Score: 3/5 - Review RecommendedLikely safe but review recommended — this patch release introduces valuable API surface expansions (Gmail Actions support, MCP server enhancements) and appears clean in the new review pass, but two pre-existing unresolved correctness issues remain open that were not addressed before merge. Specifically, the static Key Findings:
Files requiring special attention
|
f0c2e07 to
f6d4f44
Compare
Confidence Score: 3/5 - Review RecommendedLikely safe but review recommended — this patch release adds Gmail Actions support, MCP server enhancements, and mock server migration, but two pre-existing unresolved correctness issues in the MCP server package remain open. Specifically, the static Key Findings:
Files requiring special attention
|
f6d4f44 to
1c7f58a
Compare
abfdae3 to
5a4091a
Compare
5a4091a to
0820f08
Compare
0820f08 to
edf717d
Compare
| import { Hyperspell, ClientOptions } from 'hyperspell'; | ||
|
|
||
| async function tseval(code: string) { |
There was a problem hiding this comment.
Correctness: Buffer is used as a global, but in a Deno environment (evidenced by the export default { fetch } pattern and Deno stack trace parsing) it is not globally available without an explicit import { Buffer } from 'node:buffer' — this will throw a ReferenceError at runtime when tseval is called.
🤖 AI Agent Prompt for Cursor/Windsurf
📋 Copy this prompt to your AI coding assistant (Cursor, Windsurf, etc.) to get help fixing this issue
In `packages/mcp-server/src/code-tool-worker.ts`, the `tseval` function introduced at line 8-10 uses `Buffer` as a global. This file runs in a Deno environment (see `export default { fetch }` at the bottom and the Deno-specific stack trace comment in `parseError`). In Deno, `Buffer` is not a global and must be explicitly imported. Add `import { Buffer } from 'node:buffer';` at the top of the file alongside the existing `node:path` and `node:util` imports to prevent a ReferenceError at runtime.
| const log_lines: string[] = []; | ||
| const err_lines: string[] = []; | ||
| const console = { | ||
| const originalConsole = globalThis.console; | ||
| globalThis.console = { | ||
| ...originalConsole, | ||
| log: (...args: unknown[]) => { | ||
| log_lines.push(util.format(...args)); | ||
| }, |
There was a problem hiding this comment.
Correctness: 🔴 Mutating globalThis.console is not safe for concurrent requests: if two fetch calls overlap, Request B will capture Request A's patched console as its originalConsole, and the finally restore in B will leave the global pointing at A's interceptor instead of the real console, permanently leaking log capture across requests.
🤖 AI Agent Prompt for Cursor/Windsurf
📋 Copy this prompt to your AI coding assistant (Cursor, Windsurf, etc.) to get help fixing this issue
In packages/mcp-server/src/code-tool-worker.ts, lines 271-278, the code patches `globalThis.console` to intercept log output from user-supplied code. Because `fetch` is async and can be called concurrently, multiple requests can interleave: Request B may snapshot Request A's already-patched console as its 'originalConsole', causing the finally-restore in B to leave `globalThis.console` pointing at A's interceptor. Fix by either: (1) using an AsyncLocalStorage context to scope the console override per-request without mutating shared global state, or (2) running the user code in an isolated worker where `console` can be safely replaced without affecting other concurrent requests.
Confidence Score: 1/5 - Blocking IssuesNot safe to merge — Key Findings:
Files requiring special attention
|
Automated Release PR
0.35.1 (2026-04-02)
Full Changelog: v0.35.0...v0.35.1
Features
Bug Fixes
oidcdir (a305f3d)Chores
Refactors
This pull request is managed by Stainless's GitHub App.
The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.
For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.
🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions