release: 0.5.0#13
Conversation
|
Firetiger deploy monitoring skipped This PR didn't match the auto-monitor filter configured on your GitHub connection:
Reason: This is an automated release PR with only internal bootstrap script changes, not a modification to kernel API endpoints or Temporal workflows. To monitor this PR anyway, reply with |
|
🧪 Testing To try out this version of the SDK: Expires at: Fri, 17 Jul 2026 02:18:49 GMT |
d3308ac to
f31252b
Compare
| } | ||
| } | ||
| options.defaultHeaders = { ...parsed, ...options.defaultHeaders }; | ||
| } |
There was a problem hiding this comment.
Object spread breaks non-Record defaultHeaders types
Medium Severity
When HYPEMAN_CUSTOM_HEADERS is set, the new code merges env headers into options.defaultHeaders via object spread. However, HeadersLike accepts a Headers instance, an array of header tuples, or a branded NullableHeaders — none of which spread into a plain object correctly. A user-supplied Headers instance is silently dropped (no enumerable own properties); arrays produce numeric-key objects; NullableHeaders exposes its internal values/nulls/brand fields. Downstream buildHeaders/iterateHeaders then treats the result as a record and corrupts the headers.
Reviewed by Cursor Bugbot for commit f31252b. Configure here.
34cdd30 to
1e1dd24
Compare
8796aae to
2f48827
Compare
| const parsed: Record<string, string> = {}; | ||
| for (const line of customHeadersEnv.split('\n')) { | ||
| const colon = line.indexOf(':'); | ||
| if (colon >= 0) { |
There was a problem hiding this comment.
Empty header name allowed when line starts with colon
Low Severity
The HYPEMAN_CUSTOM_HEADERS parser uses colon >= 0 which accepts lines starting with :, producing a header with an empty-string name (""). Using colon > 0 would correctly skip such malformed lines, since HTTP header names cannot be empty.
Reviewed by Cursor Bugbot for commit 2f48827. Configure here.
2f48827 to
dd4d2d3
Compare
dd4d2d3 to
4c8ba35
Compare
4c8ba35 to
76b4242
Compare
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.
76b4242 to
2618405
Compare
2618405 to
750e597
Compare
750e597 to
2c7bcbe
Compare
2c7bcbe to
9ca9e66
Compare
9ca9e66 to
8405ea9
Compare
8405ea9 to
c846491
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c846491. Configure here.
| // line as the type declaration, which doesn't work. So we convert to // @ts-ignore | ||
| // on its own line to properly suppresses errors. | ||
| if (file.endsWith('.d.ts') || file.endsWith('.d.mts') || file.endsWith('.d.cts')) { | ||
| transformed = transformed.replace(/\/\*\* @ts-ignore\b[^*]*\*\/ /gm, '// @ts-ignore\n'); |
There was a problem hiding this comment.
Postprocess misplaces ts-ignore line
Medium Severity
The new declaration post-pass rewrites collapsed /** @ts-ignore */ comments to a standalone // @ts-ignore, but the regex only consumes text through the first */ when a /* prettier-ignore */ suffix sits on the same line. That inserts // @ts-ignore immediately above the prettier-ignore comment, so suppression applies to that comment line instead of the following type alias where the emitter actually needs it.
Reviewed by Cursor Bugbot for commit c846491. Configure here.
c846491 to
a38888c
Compare


Automated Release PR
0.5.0 (2026-06-17)
Full Changelog: v0.4.0...v0.5.0
Features
Bug Fixes
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
Public API and HTTP client behavior change (new instance types, custom headers env, optional-body content-type), which affects consumers even though most churn is release and tooling.
Overview
Release 0.5.0 bumps the package and lockfiles, refreshes OpenAPI metadata in
.stats.yml, and documents the release inCHANGELOG.md.The generated SDK surface grows for instances: new types and exports for health checks (HTTP/TCP/exec,
InstanceHealthStatus) and restart policy (RestartPolicy,RestartStatus), reflected inapi.mdandsrc/client.tsre-exports.Client behavior changes include parsing
HYPEMAN_CUSTOM_HEADERSinto default request headers, and adjustingbuildBodyso operations that define an optional body still get a content-type when the caller omits the body. Build postprocessing now rewrites collapsed@ts-ignorecomments in declaration files.Tooling and CI updates pin GitHub Actions to commit SHAs, run Prettier separately from ESLint (drop
eslint-plugin-prettier), add a Prettier check toscripts/lint, upgradetsc-multito v1.1.11, and hardenscripts/bootstrapenv handling.Reviewed by Cursor Bugbot for commit a38888c. Bugbot is set up for automated code reviews on this repo. Configure here.