Conversation
0c71a37 to
2c270b6
Compare
2c270b6 to
50de99c
Compare
50de99c to
ebfd646
Compare
|
🧪 Testing To try out this version of the SDK: Expires at: Mon, 06 Apr 2026 13:19:19 GMT |
ebfd646 to
f22e587
Compare
f22e587 to
36280e6
Compare
36280e6 to
a3cb455
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| elif not files: | ||
| # Don't set content when JSON is sent as multipart/form-data, | ||
| # since httpx's content param overrides other body arguments | ||
| kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None |
There was a problem hiding this comment.
JSON body dropped when files provided
Medium Severity
_build_request now skips JSON serialization whenever files is present. For requests that pass both json_data and files without an explicit multipart Content-Type path, json_data is silently omitted and only file parts are sent. This changes request semantics and can drop required non-file fields.
| elif not files: | ||
| # Don't set content when JSON is sent as multipart/form-data, | ||
| # since httpx's content param overrides other body arguments | ||
| kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None |
There was a problem hiding this comment.
Null JSON payload no longer sent
Low Severity
Switching from kwargs["json"] to kwargs["content"] now skips serialization when json_data is None, so body-less non-GET requests send an empty payload instead of JSON null. This changes wire behavior for endpoints that distinguish empty body from explicit null.
a3cb455 to
2b223bb
Compare
2b223bb to
e24fe5a
Compare
e24fe5a to
9091ce5
Compare
9091ce5 to
db59fb5
Compare
db59fb5 to
ef0d457
Compare
ef0d457 to
2aaf240
Compare
2aaf240 to
4a25327
Compare
4a25327 to
ac7e415
Compare
ac7e415 to
4282013
Compare


Automated Release PR
0.9.0 (2026-03-07)
Full Changelog: v0.8.0...v0.9.0
Features
Chores
actions/github-script(e66afb6)api.mdfiles (c9b690d)test_proxy_environment_variablesmore resilient (dccf020)test_proxy_environment_variablesmore resilient to env (c450803)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
Note
Medium Risk
Medium risk because it changes core request-body serialization (switching some JSON payloads to custom byte encoding) and touches SSE streaming plumbing, which could affect API request/stream behavior across the SDK.
Overview
Bumps the SDK to v0.9.0 (manifest/pyproject/version file), refreshes the tracked OpenAPI spec, and updates generated API types including adding
mcp_servers/ConfigMcpServertoconverseconfig and expanding supportedllm_modelliterals (e.g.gemini-3-flash-preview).Updates the HTTP client to use a new
openapi_dumps()JSON serializer (supportingdatetime+pydantic.BaseModelwith aliases) when building request bodies, adjustsmodel_dump()compat to acceptby_alias, and threads requestoptionsthrough SSEStream/AsyncStreamconstruction.Also tightens CI/release tooling: skips OIDC/artifact uploads on
stl/*branches and upgradesactions/github-script, improves./scripts/mockdaemon startup reliability/timeouts, updates formatting to run across allapi.mdfiles, bumps lockfile dependencies, and makes proxy/file-related tests more resilient.Written by Cursor Bugbot for commit 4282013. This will update automatically on new commits. Configure here.