From 1185eae6d84aadd098de9429a24192187a00a74c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 03:41:36 +0000 Subject: [PATCH 1/5] chore(internal): codegen related update --- src/client.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client.ts b/src/client.ts index 73d0810..6741d2a 100644 --- a/src/client.ts +++ b/src/client.ts @@ -716,9 +716,9 @@ export class Kernel { } } - // If the API asks us to wait a certain amount of time (and it's a reasonable amount), - // just do what it says, but otherwise calculate a default - if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) { + // If the API asks us to wait a certain amount of time, just do what it + // says, but otherwise calculate a default + if (timeoutMillis === undefined) { const maxRetries = options.maxRetries ?? this.maxRetries; timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries); } From 2e40c24ead5d5d2b8a98d0dde705e62d346b63ae Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:44:41 +0000 Subject: [PATCH 2/5] chore(ci): skip uploading artifacts on stainless-internal branches --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 230c4ad..95e91fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,14 +55,18 @@ jobs: run: ./scripts/build - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/kernel-typescript' + if: |- + github.repository == 'stainless-sdks/kernel-typescript' && + !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc uses: actions/github-script@v8 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Upload tarball - if: github.repository == 'stainless-sdks/kernel-typescript' + if: |- + github.repository == 'stainless-sdks/kernel-typescript' && + !startsWith(github.ref, 'refs/heads/stl/') env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} From 7608d8b49713c24693c52d2eee64284f974158af Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:46:41 +0000 Subject: [PATCH 3/5] chore: update placeholder string --- tests/api-resources/browsers/browsers.test.ts | 4 ++-- tests/api-resources/browsers/fs/fs.test.ts | 12 ++++++------ tests/api-resources/extensions.test.ts | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 7647427..e4f9997 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -148,7 +148,7 @@ describe('resource browsers', () => { // Mock server tests are disabled test.skip('loadExtensions: only required params', async () => { const responsePromise = client.browsers.loadExtensions('id', { - extensions: [{ name: 'name', zip_file: await toFile(Buffer.from('# my file contents'), 'README.md') }], + extensions: [{ name: 'name', zip_file: await toFile(Buffer.from('Example data'), 'README.md') }], }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -162,7 +162,7 @@ describe('resource browsers', () => { // Mock server tests are disabled test.skip('loadExtensions: required and optional params', async () => { const response = await client.browsers.loadExtensions('id', { - extensions: [{ name: 'name', zip_file: await toFile(Buffer.from('# my file contents'), 'README.md') }], + extensions: [{ name: 'name', zip_file: await toFile(Buffer.from('Example data'), 'README.md') }], }); }); }); diff --git a/tests/api-resources/browsers/fs/fs.test.ts b/tests/api-resources/browsers/fs/fs.test.ts index 086e98f..6dcd3db 100644 --- a/tests/api-resources/browsers/fs/fs.test.ts +++ b/tests/api-resources/browsers/fs/fs.test.ts @@ -145,7 +145,7 @@ describe('resource fs', () => { // Mock server tests are disabled test.skip('upload: only required params', async () => { const responsePromise = client.browsers.fs.upload('id', { - files: [{ dest_path: '/J!', file: await toFile(Buffer.from('# my file contents'), 'README.md') }], + files: [{ dest_path: '/J!', file: await toFile(Buffer.from('Example data'), 'README.md') }], }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -159,7 +159,7 @@ describe('resource fs', () => { // Mock server tests are disabled test.skip('upload: required and optional params', async () => { const response = await client.browsers.fs.upload('id', { - files: [{ dest_path: '/J!', file: await toFile(Buffer.from('# my file contents'), 'README.md') }], + files: [{ dest_path: '/J!', file: await toFile(Buffer.from('Example data'), 'README.md') }], }); }); @@ -167,7 +167,7 @@ describe('resource fs', () => { test.skip('uploadZip: only required params', async () => { const responsePromise = client.browsers.fs.uploadZip('id', { dest_path: '/J!', - zip_file: await toFile(Buffer.from('# my file contents'), 'README.md'), + zip_file: await toFile(Buffer.from('Example data'), 'README.md'), }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -182,7 +182,7 @@ describe('resource fs', () => { test.skip('uploadZip: required and optional params', async () => { const response = await client.browsers.fs.uploadZip('id', { dest_path: '/J!', - zip_file: await toFile(Buffer.from('# my file contents'), 'README.md'), + zip_file: await toFile(Buffer.from('Example data'), 'README.md'), }); }); @@ -190,7 +190,7 @@ describe('resource fs', () => { test.skip('writeFile: only required params', async () => { const responsePromise = client.browsers.fs.writeFile( 'id', - await toFile(Buffer.from('# my file contents'), 'README.md'), + await toFile(Buffer.from('Example data'), 'README.md'), { path: '/J!' }, ); const rawResponse = await responsePromise.asResponse(); @@ -206,7 +206,7 @@ describe('resource fs', () => { test.skip('writeFile: required and optional params', async () => { const response = await client.browsers.fs.writeFile( 'id', - await toFile(Buffer.from('# my file contents'), 'README.md'), + await toFile(Buffer.from('Example data'), 'README.md'), { path: '/J!', mode: '0611' }, ); }); diff --git a/tests/api-resources/extensions.test.ts b/tests/api-resources/extensions.test.ts index 65c2ef3..9a00e8c 100644 --- a/tests/api-resources/extensions.test.ts +++ b/tests/api-resources/extensions.test.ts @@ -40,7 +40,7 @@ describe('resource extensions', () => { // Mock server tests are disabled test.skip('upload: only required params', async () => { const responsePromise = client.extensions.upload({ - file: await toFile(Buffer.from('# my file contents'), 'README.md'), + file: await toFile(Buffer.from('Example data'), 'README.md'), }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -54,7 +54,7 @@ describe('resource extensions', () => { // Mock server tests are disabled test.skip('upload: required and optional params', async () => { const response = await client.extensions.upload({ - file: await toFile(Buffer.from('# my file contents'), 'README.md'), + file: await toFile(Buffer.from('Example data'), 'README.md'), name: 'name', }); }); From d7ab66fa9cb44f5b56113ff57f745b86d10e4ba8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:50:11 +0000 Subject: [PATCH 4/5] fix(client): preserve URL params already embedded in path --- src/client.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/client.ts b/src/client.ts index 6741d2a..81e51e9 100644 --- a/src/client.ts +++ b/src/client.ts @@ -382,8 +382,9 @@ export class Kernel { : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path)); const defaultQuery = this.defaultQuery(); - if (!isEmptyObj(defaultQuery)) { - query = { ...defaultQuery, ...query }; + const pathQuery = Object.fromEntries(url.searchParams); + if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) { + query = { ...pathQuery, ...defaultQuery, ...query }; } if (typeof query === 'object' && query && !Array.isArray(query)) { From 21eb629142901703e0df3ec72ee4c6a497add349 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:50:29 +0000 Subject: [PATCH 5/5] release: 0.42.2 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/version.ts | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index cede7a5..a623f13 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.42.1" + ".": "0.42.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 3403de7..0e64961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.42.2 (2026-03-07) + +Full Changelog: [v0.42.1...v0.42.2](https://github.com/kernel/kernel-node-sdk/compare/v0.42.1...v0.42.2) + +### Bug Fixes + +* **client:** preserve URL params already embedded in path ([d7ab66f](https://github.com/kernel/kernel-node-sdk/commit/d7ab66fa9cb44f5b56113ff57f745b86d10e4ba8)) + + +### Chores + +* **ci:** skip uploading artifacts on stainless-internal branches ([2e40c24](https://github.com/kernel/kernel-node-sdk/commit/2e40c24ead5d5d2b8a98d0dde705e62d346b63ae)) +* **internal:** codegen related update ([1185eae](https://github.com/kernel/kernel-node-sdk/commit/1185eae6d84aadd098de9429a24192187a00a74c)) +* update placeholder string ([7608d8b](https://github.com/kernel/kernel-node-sdk/commit/7608d8b49713c24693c52d2eee64284f974158af)) + ## 0.42.1 (2026-03-05) Full Changelog: [v0.42.0...v0.42.1](https://github.com/kernel/kernel-node-sdk/compare/v0.42.0...v0.42.1) diff --git a/package-lock.json b/package-lock.json index 6d85c3b..3238c0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@onkernel/sdk", - "version": "0.42.1", + "version": "0.42.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@onkernel/sdk", - "version": "0.42.1", + "version": "0.42.2", "license": "Apache-2.0", "devDependencies": { "@arethetypeswrong/cli": "^0.17.0", diff --git a/package.json b/package.json index 4529916..a1938a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.42.1", + "version": "0.42.2", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", "types": "dist/index.d.ts", diff --git a/src/version.ts b/src/version.ts index 7c38063..b124093 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.42.1'; // x-release-please-version +export const VERSION = '0.42.2'; // x-release-please-version