Conversation
|
🧪 Testing To try out this version of the SDK: Expires at: Thu, 16 Apr 2026 12:38:10 GMT |
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.
| // If the API asks us to wait a certain amount of time (and it's a reasonable amount), | ||
| // just do what it says. | ||
|
|
||
| if retryAfterDelay, ok := parseRetryAfterHeader(res); ok && 0 <= retryAfterDelay && retryAfterDelay < time.Minute { |
There was a problem hiding this comment.
Retry delay upper bound removed, risking indefinite blocking
Medium Severity
The retryDelay function previously capped the server's Retry-After value at one minute (retryAfterDelay < time.Minute), falling through to exponential backoff (max 8 seconds) for larger values. The new code removes this upper bound entirely via return max(0, retryAfterDelay), so a misconfigured or adversarial server returning a very large Retry-After (e.g. hours or days) will cause the client to block for that entire duration. The select on ctx.Done() at line 468 only helps if the caller set a context deadline — callers using context.Background() would hang indefinitely.
ee5a272 to
7bda7cf
Compare
7bda7cf to
1fcdb42
Compare
1fcdb42 to
ffaf115
Compare
ffaf115 to
8795b2c
Compare
8795b2c to
9672ea8
Compare
9672ea8 to
b9a554d
Compare
b9a554d to
e3c31b4
Compare
e3c31b4 to
32d3e98
Compare
32d3e98 to
799915c
Compare


Automated Release PR
0.16.0 (2026-03-17)
Full Changelog: v0.15.0...v0.16.0
Features
Chores
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
This release adds new Snapshot APIs and changes several public method signatures (e.g.,
Listmethods now require params) while renamingmetadatatotagsacross resources, so downstream integrations may break or change behavior when upgrading.Overview
Bumps the SDK to v0.16.0 (manifest, README pin, changelog, and package version) and updates CI branch filtering to avoid artifact uploads on internal
stl/*branches.Introduces full snapshot support: adds
client.Snapshotsplusclient.Instances.Snapshotsfor creating/restoring snapshots and for listing/getting/deleting/forking snapshots.Standardizes tagging across mutable resources by adding
Tagsfields to models and create params, switching instance filtering frommetadatatotags, and adding tag-based query params for multipleListendpoints (includingBuilds,Images,Volumes,Devices, andIngresses), which also changes thoseListmethod signatures to take an explicit params struct.Includes small internal robustness tweaks (explicit returns/ignored errors, improved retry-after handling) and updates tests/docs to match the new params and tagging behavior.
Written by Cursor Bugbot for commit 799915c. This will update automatically on new commits. Configure here.