Skip to content

release: 1.1.0#265

Open
stainless-app[bot] wants to merge 26 commits intomainfrom
release-please--branches--main--changes--next
Open

release: 1.1.0#265
stainless-app[bot] wants to merge 26 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Contributor

@stainless-app stainless-app bot commented Feb 12, 2026

Automated Release PR

1.1.0 (2026-03-04)

Full Changelog: v1.0.0...v1.1.0

Features

  • api: add uploads (multipart) subresource to files (f510cc9)
  • api: api update (e95f5f1)
  • api: api update (eb27c60)
  • api: api update (c4be5ae)
  • api: api update (153c4ba)
  • api: api update (216baf6)
  • api: api update (8fef561)
  • api: api update (10a541d)
  • api: files uploads (multipart) subresource (93a98e6)
  • api: manual updates (e38a505)
  • api: manual updates (860868e)
  • api: manual updates (33abdc9)
  • use multipart uploads API for large files automatically with optional config (#18) (ff0f83f)

Bug Fixes

  • cancel orphaned upload tasks and fix file size calc for io bytes (#21) (46aea64)
  • count uploaded bytes correctly even if parts finish out of order (#20) (eb8af86)
  • do not block event loop for read_part on async coroutine in multipart upload (#19) (537f825)

Chores

  • format all api.md files (d167e2d)
  • internal: add request options to SSE classes (f241bf6)
  • internal: fix lint error on Python 3.14 (72f3d05)
  • internal: make test_proxy_environment_variables more resilient (d0ec2d9)
  • internal: make test_proxy_environment_variables more resilient to env (c287c24)
  • update mock server docs (b3523db)

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.create to 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.uploads subresource (create, retrieve, list, abort, complete) with generated types/tests and docs updates.

Changes files.create behavior. client.files.create() (sync/async) now optionally/automatically uses multipart uploads for large files (default threshold 100MB) via new MultipartUploadOptions/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 image field), updates search option schemas/docs, and bumps version metadata to 1.1.0.

Written by Cursor Bugbot for commit 53d0bc7. This will update automatically on new commits. Configure here.

@stainless-app
Copy link
Contributor Author

stainless-app bot commented Feb 12, 2026

🧪 Testing

To try out this version of the SDK:

pip install 'https://pkg.stainless.com/s/mixedbread-python/46aea647e9aa19ee8095dd1bafe8c54d9f1d7bb9/mixedbread-1.0.0-py3-none-any.whl'

Expires at: Fri, 03 Apr 2026 19:08:41 GMT
Updated at: Wed, 04 Mar 2026 19:08:41 GMT

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 9db4085 to 0c997e3 Compare February 13, 2026 07:35
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 0c997e3 to 6294065 Compare February 17, 2026 20:29
@stainless-app stainless-app bot changed the title release: 1.0.1 release: 1.1.0 Feb 18, 2026
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from 3733596 to e8e9492 Compare February 18, 2026 17:46
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from e8e9492 to b451b68 Compare February 20, 2026 07:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from b451b68 to 5ac67dd Compare February 20, 2026 11:25
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 5ac67dd to c20b35d Compare February 20, 2026 23:29
"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)'"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from c20b35d to 150959e Compare February 24, 2026 12:12
"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)'"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 150959e to db612f0 Compare February 24, 2026 12:23
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from db612f0 to cd547ae Compare February 25, 2026 00:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from cd547ae to 5e394d7 Compare February 25, 2026 12:39
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 5e394d7 to f5d1b6a Compare February 25, 2026 13:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from bf7bbdd to 08d7596 Compare March 2, 2026 19:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 08d7596 to 3e0e9dd Compare March 3, 2026 12:43
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 3e0e9dd to 109e33c Compare March 3, 2026 13:02
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 109e33c to 970db20 Compare March 3, 2026 13:29
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 970db20 to 18a432b Compare March 3, 2026 19:51
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 18a432b to bdf4109 Compare March 3, 2026 19:52
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from bdf4109 to 6819150 Compare March 3, 2026 19:54
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 6819150 to e7f93f4 Compare March 4, 2026 00:34
…tional config (#18)

* feat: use multipart uploads API for large files

* chore: use right type for multipart upload param

* chore: lint fixes
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from e7f93f4 to 285da82 Compare March 4, 2026 16:50
@aavshr aavshr requested a review from joeldierkes March 4, 2026 18:11
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 285da82 to 4270fd0 Compare March 4, 2026 18:34
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 4270fd0 to 1a86a7a Compare March 4, 2026 18:49
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 1a86a7a to 53d0bc7 Compare March 4, 2026 19:08
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant