Skip to content

Commit 63a8d33

Browse files
release: 1.11.0 (#734)
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 9c81c01 commit 63a8d33

8 files changed

Lines changed: 57 additions & 12 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,18 @@ jobs:
5858
run: ./scripts/build
5959

6060
- name: Get GitHub OIDC Token
61-
if: github.repository == 'stainless-sdks/runloop-node'
61+
if: |-
62+
github.repository == 'stainless-sdks/runloop-node' &&
63+
!startsWith(github.ref, 'refs/heads/stl/')
6264
id: github-oidc
6365
uses: actions/github-script@v8
6466
with:
6567
script: core.setOutput('github_token', await core.getIDToken());
6668

6769
- name: Upload tarball
68-
if: github.repository == 'stainless-sdks/runloop-node'
70+
if: |-
71+
github.repository == 'stainless-sdks/runloop-node' &&
72+
!startsWith(github.ref, 'refs/heads/stl/')
6973
env:
7074
URL: https://pkg.stainless.com/s
7175
AUTH: ${{ steps.github-oidc.outputs.github_token }}

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.10.3"
2+
".": "1.11.0"
33
}

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
11
# Changelog
22

3+
## 1.11.0 (2026-03-10)
4+
5+
Full Changelog: [v1.10.3...v1.11.0](https://github.com/runloopai/api-client-ts/compare/v1.10.3...v1.11.0)
6+
7+
### Features
8+
9+
* **documentation:** added self-documenting examples ([#733](https://github.com/runloopai/api-client-ts/issues/733)) ([c11402d](https://github.com/runloopai/api-client-ts/commit/c11402d2c8e8493dd05dad63316280921429ee94))
10+
* replace polling with long-poll loop for wait endpoints ([#745](https://github.com/runloopai/api-client-ts/issues/745)) ([9c81c01](https://github.com/runloopai/api-client-ts/commit/9c81c0127354cbabd210a06e556ee52d6ce055b5))
11+
* **sdk:** added secrets as first class concepts and examples ([#739](https://github.com/runloopai/api-client-ts/issues/739)) ([c82944a](https://github.com/runloopai/api-client-ts/commit/c82944a8ffd5342073c247edad72a7ddf69490b7))
12+
13+
14+
### Bug Fixes
15+
16+
* add logs to devboxes, smoke tests & examples ([#742](https://github.com/runloopai/api-client-ts/issues/742)) ([0462122](https://github.com/runloopai/api-client-ts/commit/04621224e5dde6fef942da969fbed84f19053066))
17+
* **client:** preserve URL params already embedded in path ([1a4be5a](https://github.com/runloopai/api-client-ts/commit/1a4be5aaf6597727628db2ebd953f332f0d6fbd4))
18+
* default initial timeout delay for polling reduced to 0 seconds ([#744](https://github.com/runloopai/api-client-ts/issues/744)) ([8694d51](https://github.com/runloopai/api-client-ts/commit/8694d51658fbca53e90f0fa8826eee600768292f))
19+
20+
21+
### Chores
22+
23+
* **ci:** skip uploading artifacts on stainless-internal branches ([7a33109](https://github.com/runloopai/api-client-ts/commit/7a33109ddeb30309f25065b9465045f6d9655da2))
24+
* **documentation:** correct exec advice ([#738](https://github.com/runloopai/api-client-ts/issues/738)) ([4d9624c](https://github.com/runloopai/api-client-ts/commit/4d9624c80bfa4ab1f8490ca093307c0d961a930d))
25+
* **documentation:** fix some broken links and bad example code ([#736](https://github.com/runloopai/api-client-ts/issues/736)) ([842c9bc](https://github.com/runloopai/api-client-ts/commit/842c9bc2ec33aba85ec4b943ebfe86527ec49d05))
26+
* fix smoketest tunnel removal ([#735](https://github.com/runloopai/api-client-ts/issues/735)) ([2b15fa6](https://github.com/runloopai/api-client-ts/commit/2b15fa6f9ea185256d8a2b25008643b12dd6b732))
27+
* **internal:** codegen related update ([7fd0cfd](https://github.com/runloopai/api-client-ts/commit/7fd0cfdf43c2136e019799622cdc514711cb8aaa))
28+
* shard smoketests in workflow ([#743](https://github.com/runloopai/api-client-ts/issues/743)) ([ea55929](https://github.com/runloopai/api-client-ts/commit/ea5592921982a98baaf6766d934f0a2cec079178))
29+
* **test:** do not count install time for mock server timeout ([d0cdc76](https://github.com/runloopai/api-client-ts/commit/d0cdc76bab4382caa170a51e405b7e79c7c13ab4))
30+
* update placeholder string ([77a7e9a](https://github.com/runloopai/api-client-ts/commit/77a7e9aadcd9d470dd059cf6ecd2f76eb3ada470))
31+
332
## 1.10.3 (2026-02-27)
433

534
Full Changelog: [v1.10.2...v1.10.3](https://github.com/runloopai/api-client-ts/compare/v1.10.2...v1.10.3)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@runloop/api-client",
3-
"version": "1.10.3",
3+
"version": "1.11.0",
44
"description": "The official TypeScript library for the Runloop API",
55
"author": "Runloop <support@runloop.ai>",
66
"types": "dist/sdk.d.ts",

scripts/mock

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,22 @@ echo "==> Starting mock server with URL ${URL}"
2121

2222
# Run prism mock on the given spec
2323
if [ "$1" == "--daemon" ]; then
24+
# Pre-install the package so the download doesn't eat into the startup timeout
25+
npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism --version
26+
2427
npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log &
2528

26-
# Wait for server to come online
29+
# Wait for server to come online (max 30s)
2730
echo -n "Waiting for server"
31+
attempts=0
2832
while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do
33+
attempts=$((attempts + 1))
34+
if [ "$attempts" -ge 300 ]; then
35+
echo
36+
echo "Timed out waiting for Prism server to start"
37+
cat .prism.log
38+
exit 1
39+
fi
2940
echo -n "."
3041
sleep 0.1
3142
done

src/core.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -538,8 +538,9 @@ export abstract class APIClient {
538538
: new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));
539539

540540
const defaultQuery = this.defaultQuery();
541-
if (!isEmptyObj(defaultQuery)) {
542-
query = { ...defaultQuery, ...query } as Req;
541+
const pathQuery = Object.fromEntries(url.searchParams);
542+
if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) {
543+
query = { ...pathQuery, ...defaultQuery, ...query } as Req;
543544
}
544545

545546
if (typeof query === 'object' && query && !Array.isArray(query)) {
@@ -632,9 +633,9 @@ export abstract class APIClient {
632633
}
633634
}
634635

635-
// If the API asks us to wait a certain amount of time (and it's a reasonable amount),
636-
// just do what it says, but otherwise calculate a default
637-
if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {
636+
// If the API asks us to wait a certain amount of time, do what it says.
637+
// Otherwise calculate a default.
638+
if (timeoutMillis === undefined) {
638639
const maxRetries = options.maxRetries ?? this.maxRetries;
639640
timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);
640641
}

src/version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const VERSION = '1.10.3'; // x-release-please-version
1+
export const VERSION = '1.11.0'; // x-release-please-version

tests/api-resources/devboxes/devboxes.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ describe('resource devboxes', () => {
549549
test('uploadFile: required and optional params', async () => {
550550
const response = await client.devboxes.uploadFile('id', {
551551
path: 'path',
552-
file: await toFile(Buffer.from('# my file contents'), 'README.md'),
552+
file: await toFile(Buffer.from('Example data'), 'README.md'),
553553
});
554554
});
555555

0 commit comments

Comments
 (0)