release: 0.52.0#103
Conversation
Mirror the Python SDK example by demonstrating both kernel.browsers.fetch (streaming, returns Response) and kernel.browsers.curl (buffered JSON envelope), with comments noting when to use each. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
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 documentation and formatting changes, not a kernel API endpoint or Temporal workflow change. To monitor this PR anyway, reply with |
|
🧪 Testing To try out this version of the SDK: Expires at: Fri, 29 May 2026 14:37:50 GMT |
dac84c3 to
7c1360d
Compare
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.
Reviewed by Cursor Bugbot for commit 7c1360d. Configure here.
| parsed[line.substring(0, colon).trim()] = line.substring(colon + 1).trim(); | ||
| } | ||
| } | ||
| options.defaultHeaders = { ...parsed, ...options.defaultHeaders }; |
There was a problem hiding this comment.
Object spread silently drops non-plain-object defaultHeaders
Medium Severity
When KERNEL_CUSTOM_HEADERS is set, options.defaultHeaders is merged via object spread ({ ...parsed, ...options.defaultHeaders }). However, defaultHeaders is typed as HeadersLike, which includes Headers instances, 2D arrays, and NullableHeaders. Spreading a Headers instance produces an empty object because its entries aren't own enumerable properties, silently discarding all user-supplied default headers. A safe merge would need to go through buildHeaders or convert via Object.fromEntries.
Reviewed by Cursor Bugbot for commit 7c1360d. Configure here.
7c1360d to
6f8510b
Compare
6f8510b to
fb01eec
Compare
fb01eec to
423b12e
Compare
|
🤖 Release is at https://github.com/kernel/kernel-node-sdk/releases/tag/v0.52.0 🌻 |


Automated Release PR
0.52.0 (2026-04-29)
Full Changelog: v0.51.0...v0.52.0
Features
Chores
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
Note
Medium Risk
Changes request header construction via a new env-var merge, which can affect all outgoing API calls if misconfigured. The rest is mostly tooling/docs/versioning with low runtime impact.
Overview
Bumps the SDK to v0.52.0 (manifest/package/version updates) and refreshes release metadata (changelog and OpenAPI spec pointers).
Adds support for setting default request headers via the
KERNEL_CUSTOM_HEADERSenvironment variable (merged intodefaultHeadersat client construction).Updates formatting/linting workflow by removing
eslint-plugin-prettier, running Prettier as a separate step (includingprettier --checkinscripts/lint), broadening Prettier targeting in format scripts, and improving build postprocessing to rewrite problematic/** @ts-ignore */in emitted.d.tsfiles. Also updates the browser routing example to show both streamingfetchand bufferedcurlusage, and tweaks profile download docs to reflect the binary tarball response.Reviewed by Cursor Bugbot for commit 423b12e. Bugbot is set up for automated code reviews on this repo. Configure here.