release: 4.1.0#87
Conversation
fix(client): mark some request bodies as optional
Note that we still want to run tests, as these depend on the metadata.
Pin all GitHub Actions referenced in generated workflows (both first-party `actions/*` and third-party) to immutable commit SHAs. Updating pinned actions is now a deliberate codegen-side bump rather than implicit on every workflow run.
| from __future__ import annotations | ||
|
|
||
| from .voice_deployment import VoiceDeployment as VoiceDeployment | ||
| from .voice_create_params import VoiceCreateParams as VoiceCreateParams |
There was a problem hiding this comment.
Public Response Imports Removed
The 4.1.0 package removes the documented VoiceCreateResponse, VoiceRetrieveResponse, and VoiceUpdateResponse exports. Applications importing these names from brainbase.types.workers.deployments will fail at startup after a minor-version upgrade; compatibility aliases to VoiceDeployment are needed for the 4.x line.
Rule Used: What: never use the word retell.
why: I don't kno... (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: src/brainbase/types/workers/deployments/__init__.py
Line: 3-6
Comment:
**Public Response Imports Removed**
The 4.1.0 package removes the documented `VoiceCreateResponse`, `VoiceRetrieveResponse`, and `VoiceUpdateResponse` exports. Applications importing these names from `brainbase.types.workers.deployments` will fail at startup after a minor-version upgrade; compatibility aliases to `VoiceDeployment` are needed for the 4.x line.
**Rule Used:** What: never use the word retell.
why: I don't kno... ([source](https://app.greptile.com/brainbaselabs/-/custom-context?memory=4fc21456-8242-4885-a8ab-c02e1ce16995))
How can I resolve this? If you propose a fix, please make it concise.| ] | ||
| requires-python = ">= 3.8" | ||
|
|
||
| requires-python = ">= 3.9" |
There was a problem hiding this comment.
Minor Release Drops Python 3.8
Changing requires-python from 3.8 to 3.9 makes this minor release unavailable to existing Python 3.8 installations. Keep the previous runtime floor for the 4.x line or make the compatibility break a major release.
Rule Used: What: never use the word retell.
why: I don't kno... (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: pyproject.toml
Line: 20
Comment:
**Minor Release Drops Python 3.8**
Changing `requires-python` from 3.8 to 3.9 makes this minor release unavailable to existing Python 3.8 installations. Keep the previous runtime floor for the 4.x line or make the compatibility break a major release.
**Rule Used:** What: never use the word retell.
why: I don't kno... ([source](https://app.greptile.com/brainbaselabs/-/custom-context?memory=4fc21456-8242-4885-a8ab-c02e1ce16995))
How can I resolve this? If you propose a fix, please make it concise.| # Remove the field if there are no more dict keys in the path, | ||
| # only "<array>" traversal markers or end. | ||
| if all(p == "<array>" for p in path[index:]): | ||
| item = obj.pop(key) |
There was a problem hiding this comment.
Overlapping File Paths Lose Data
When file-extraction paths share a dictionary key and one remaining path consists only of <array> markers, this branch pops the whole value before the later path can traverse it. A request schema with paths such as files[].file and files.extra can therefore omit the second field or fail extraction.
Rule Used: What: never use the word retell.
why: I don't kno... (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: src/brainbase/_utils/_utils.py
Line: 114
Comment:
**Overlapping File Paths Lose Data**
When file-extraction paths share a dictionary key and one remaining path consists only of `<array>` markers, this branch pops the whole value before the later path can traverse it. A request schema with paths such as `files[].file` and `files.extra` can therefore omit the second field or fail extraction.
**Rule Used:** What: never use the word retell.
why: I don't kno... ([source](https://app.greptile.com/brainbaselabs/-/custom-context?memory=4fc21456-8242-4885-a8ab-c02e1ce16995))
How can I resolve this? If you propose a fix, please make it concise.…t in workflow templates
|
🧪 Testing To try out this version of the SDK: Expires at: Mon, 17 Aug 2026 02:03:09 GMT |
6e76a25 to
a02df1c
Compare
Automated Release PR
4.1.0 (2026-07-18)
Full Changelog: v4.0.0...v4.1.0
Features
NotGivenfor body (#67) (3ad7f25)X-Stainless-Read-Timeoutheader (#63) (a594c75)Bug Fixes
model_dumpandmodel_dump_jsonfor Pydantic v1 (898ca7b)by_aliasunless set (887a8ec)Performance Improvements
Chores
httpx-aiohttpversion to 0.1.9 (7aeb4c8)actions/github-script(bdad5ed)api.mdfiles (034e708)--fixargument to lint script (0b1e68e)test_proxy_environment_variablesmore resilient (f79d30c)test_proxy_environment_variablesmore resilient to env (08e33e4)pyproject.tomlfile (f87b268)actions/checkoutversion (54d6bd9)get_platformtest (ef07d85)Documentation
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