Conversation
|
🧪 Testing To try out this version of the SDK: Expires at: Fri, 03 Apr 2026 19:08:41 GMT |
9db4085 to
0c997e3
Compare
0c997e3 to
6294065
Compare
3733596 to
e8e9492
Compare
e8e9492 to
b451b68
Compare
b451b68 to
5ac67dd
Compare
5ac67dd to
c20b35d
Compare
| "format:ruff", | ||
| ]} | ||
| "format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md" | ||
| "format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'" |
There was a problem hiding this comment.
Unquoted find expansion breaks doc formatting
Low Severity
format:docs uses $(find . -type f -name api.md) unquoted inside bash -c, so any api.md path containing whitespace or shell-special characters gets split into multiple arguments, causing scripts/utils/ruffen-docs.py to receive invalid filenames.
c20b35d to
150959e
Compare
| "format:ruff", | ||
| ]} | ||
| "format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md" | ||
| "format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'" |
There was a problem hiding this comment.
Find command searches through excluded directories
Low Severity
The find . -type f -name api.md command recursively searches all directories including .venv, .git, __pycache__, and .mypy_cache. This causes unnecessary performance overhead searching through large dependency directories and could format unintended files if they happen to be named api.md. The command should exclude these directories using -not -path patterns or limit search depth with -maxdepth.
150959e to
db612f0
Compare
db612f0 to
cd547ae
Compare
cd547ae to
5e394d7
Compare
5e394d7 to
f5d1b6a
Compare
bf7bbdd to
08d7596
Compare
08d7596 to
3e0e9dd
Compare
3e0e9dd to
109e33c
Compare
109e33c to
970db20
Compare
970db20 to
18a432b
Compare
18a432b to
bdf4109
Compare
bdf4109 to
6819150
Compare
6819150 to
e7f93f4
Compare
…tional config (#18) * feat: use multipart uploads API for large files * chore: use right type for multipart upload param * chore: lint fixes
e7f93f4 to
285da82
Compare
285da82 to
4270fd0
Compare
4270fd0 to
1a86a7a
Compare
1a86a7a to
53d0bc7
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| _use_multipart = False | ||
|
|
||
| if _use_multipart: | ||
| return multipart_create_sync(self.uploads, file, _opts) |
There was a problem hiding this comment.
Multipart upload silently drops user request options
Medium Severity
When the multipart upload path is taken (either via auto-detection with multipart_upload=None or explicitly), the extra_headers, extra_query, extra_body, and timeout parameters are silently ignored. The call to multipart_create_sync/multipart_create_async only forwards the uploads resource, file, and _opts — none of the user-provided request options. This is especially surprising in the default auto-detect case, where a user consistently passing timeout=600 would see it respected for small files but silently dropped for files exceeding the 100MB threshold.


Automated Release PR
1.1.0 (2026-03-04)
Full Changelog: v1.0.0...v1.1.0
Features
Bug Fixes
Chores
api.mdfiles (d167e2d)test_proxy_environment_variablesmore resilient (d0ec2d9)test_proxy_environment_variablesmore resilient to env (c287c24)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
Introduces new multipart upload flow and changes default behavior of
files.createto conditionally use it for large files, which could affect upload correctness/performance and error handling. Additional model/schema updates are low risk but broad and may impact downstream typing/serialization expectations.Overview
Adds multipart file uploads. Introduces a new
files.uploadssubresource (create,retrieve,list,abort,complete) with generated types/tests and docs updates.Changes
files.createbehavior.client.files.create()(sync/async) now optionally/automatically uses multipart uploads for large files (default threshold 100MB) via newMultipartUploadOptions/PartUploadEvent, including concurrent part uploads, progress callbacks, and best-effort abort on failure.Misc API/internal updates. Propagates request options into SSE stream classes, tweaks proxy env var tests for resilience, expands several response models (e.g., image metadata/external IDs, parsing job
imagefield), updates search option schemas/docs, and bumps version metadata to1.1.0.Written by Cursor Bugbot for commit 53d0bc7. This will update automatically on new commits. Configure here.