Skip to content

release: 0.16.0#31

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

release: 0.16.0#31
stainless-app[bot] wants to merge 12 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Contributor

@stainless-app stainless-app bot commented Mar 7, 2026

Automated Release PR

0.16.0 (2026-03-17)

Full Changelog: v0.15.0...v0.16.0

Features

  • Add always-on /metrics endpoint with dual pull/push telemetry (0b3751a)
  • Add strict metadata tags across mutable resources (8b5543e)
  • Rename tag fields from metadata to tags (2f8e29e)
  • Snapshot (c4a0fbb)

Chores

  • ci: skip uploading artifacts on stainless-internal branches (0d9d654)
  • internal: codegen related update (e6a6702)
  • internal: minor cleanup (1917d6d)
  • internal: tweak CI branches (6dc7e68)
  • internal: use explicit returns (923db74)
  • internal: use explicit returns in more places (16131b8)
  • update placeholder string (bea84ac)

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., List methods now require params) while renaming metadata to tags across 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.Snapshots plus client.Instances.Snapshots for creating/restoring snapshots and for listing/getting/deleting/forking snapshots.

Standardizes tagging across mutable resources by adding Tags fields to models and create params, switching instance filtering from metadata to tags, and adding tag-based query params for multiple List endpoints (including Builds, Images, Volumes, Devices, and Ingresses), which also changes those List method 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.

@stainless-app
Copy link
Contributor Author

stainless-app bot commented Mar 7, 2026

🧪 Testing

To try out this version of the SDK:

Download and unzip: 'https://pkg.stainless.com/s/hypeman-go/6dc7e68725e65b75bd7c2aa07d4427909ad2365c/source.zip'. Run 'go mod edit -replace github.com/kernel/hypeman-go=/path/to/unzipped_directory'.

Expires at: Thu, 16 Apr 2026 12:38:10 GMT
Updated at: Tue, 17 Mar 2026 12:38:10 GMT

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.

// 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 {
Copy link

Choose a reason for hiding this comment

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

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.

Fix in Cursor Fix in Web

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from ee5a272 to 7bda7cf Compare March 7, 2026 18:34
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 7bda7cf to 1fcdb42 Compare March 7, 2026 19:52
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 1fcdb42 to ffaf115 Compare March 7, 2026 19:53
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from ffaf115 to 8795b2c Compare March 9, 2026 19:16
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 8795b2c to 9672ea8 Compare March 9, 2026 20:36
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 9672ea8 to b9a554d Compare March 11, 2026 10:37
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from b9a554d to e3c31b4 Compare March 11, 2026 10:55
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from e3c31b4 to 32d3e98 Compare March 11, 2026 11:01
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 32d3e98 to 799915c Compare March 17, 2026 12:38
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.

0 participants