Skip to content

Commit 8d4f4cf

Browse files
authored
Merge pull request #125 from kernel/release-please--branches--main--changes--next
release: 0.70.0
2 parents bd35fc1 + 736c0c7 commit 8d4f4cf

14 files changed

Lines changed: 291 additions & 30 deletions

.release-please-manifest.json

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

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 120
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-cde481b2f320ce48f83db84ae96226b0e7568146c9387c4fefebf286ecb0dd0a.yml
3-
openapi_spec_hash: 6bd86d767290fcd7e2a6aae26dff5417
4-
config_hash: 03c7e57f268c750e2415831662e95969
1+
configured_endpoints: 122
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-d9b82fc5346c9be1bf9c2b18792fdcdec6a80a86153ca765c9e93e597b46fa24.yml
3+
openapi_spec_hash: 9cbaab975acfa421b795d11aa635c57e
4+
config_hash: 99b2b2a25e8067ad9c9214e38e01d64c

CHANGELOG.md

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

3+
## 0.70.0 (2026-06-24)
4+
5+
Full Changelog: [v0.69.0...v0.70.0](https://github.com/kernel/kernel-go-sdk/compare/v0.69.0...v0.70.0)
6+
7+
### Features
8+
9+
* Add GET /browsers/{id}/telemetry/events (read from S2) ([2c3e61e](https://github.com/kernel/kernel-go-sdk/commit/2c3e61ed66a4b8810a0ef33a8abb09555c030a8d))
10+
* Align browser-pool timeout/viewport/fill-rate contract with implementation; reject save_changes on update ([a986c45](https://github.com/kernel/kernel-go-sdk/commit/a986c453ecee67ebf6b5cf39ecb8e9accbd2c1dc))
11+
* api: support per-acquire start_url override on browser pool acquire ([1c675a3](https://github.com/kernel/kernel-go-sdk/commit/1c675a387cb712036cea70ac75dac2026276704b))
12+
* **api:** add GET /extensions/{id_or_name}/metadata ([373f33b](https://github.com/kernel/kernel-go-sdk/commit/373f33b293159fad981ff78770762e07ac80b5ca))
13+
* **api:** resolve GET /org/projects/{id} by ID or name ([395e0a7](https://github.com/kernel/kernel-go-sdk/commit/395e0a7d43e289a1b4dc187ed2af5a347f0dfc2b))
14+
* Forward replay param through telemetry stream passthrough ([ae02eeb](https://github.com/kernel/kernel-go-sdk/commit/ae02eeb4d15611a0221ed06a2600f55460e78184))
15+
16+
17+
### Bug Fixes
18+
19+
* don't misroute telemetry/events to the browser VM ([95487e0](https://github.com/kernel/kernel-go-sdk/commit/95487e0182fb969bbaa4d44425a688084020d943))
20+
321
## 0.69.0 (2026-06-18)
422

523
Full Changelog: [v0.68.0...v0.69.0](https://github.com/kernel/kernel-go-sdk/compare/v0.68.0...v0.69.0)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Or to pin the version:
2828
<!-- x-release-please-start-version -->
2929

3030
```sh
31-
go get -u 'github.com/kernel/kernel-go-sdk@v0.69.0'
31+
go get -u 'github.com/kernel/kernel-go-sdk@v0.70.0'
3232
```
3333

3434
<!-- x-release-please-end -->

api.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,13 @@ Response Types:
141141
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryCategoryConfig">BrowserTelemetryCategoryConfig</a>
142142
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryConfig">BrowserTelemetryConfig</a>
143143
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryEventUnion">BrowserTelemetryEventUnion</a>
144+
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryEventsResponse">BrowserTelemetryEventsResponse</a>
144145
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryStreamResponse">BrowserTelemetryStreamResponse</a>
145146

146147
Methods:
147148

148-
- <code title="get /browsers/{id}/telemetry/stream">client.Browsers.Telemetry.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryService.Stream">Stream</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>, query <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryStreamParams">BrowserTelemetryStreamParams</a>) (\*<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryStreamResponse">BrowserTelemetryStreamResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
149+
- <code title="get /browsers/{id}/telemetry/events">client.Browsers.Telemetry.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryService.Events">Events</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>, query <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryEventsParams">BrowserTelemetryEventsParams</a>) (\*<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk/packages/pagination">pagination</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk/packages/pagination#OffsetPagination">OffsetPagination</a>[<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryEventsResponse">BrowserTelemetryEventsResponse</a>], <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
150+
- <code title="get /browsers/{id}/telemetry/stream">client.Browsers.Telemetry.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryService.Stream">Stream</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>, params <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryStreamParams">BrowserTelemetryStreamParams</a>) (\*<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#BrowserTelemetryStreamResponse">BrowserTelemetryStreamResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
149151

150152
## Replays
151153

@@ -317,6 +319,7 @@ Methods:
317319
Response Types:
318320

319321
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionListResponse">ExtensionListResponse</a>
322+
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionGetResponse">ExtensionGetResponse</a>
320323
- <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionUploadResponse">ExtensionUploadResponse</a>
321324

322325
Methods:
@@ -325,6 +328,7 @@ Methods:
325328
- <code title="delete /extensions/{id_or_name}">client.Extensions.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, idOrName <a href="https://pkg.go.dev/builtin#string">string</a>) <a href="https://pkg.go.dev/builtin#error">error</a></code>
326329
- <code title="get /extensions/{id_or_name}">client.Extensions.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionService.Download">Download</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, idOrName <a href="https://pkg.go.dev/builtin#string">string</a>) (\*http.Response, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
327330
- <code title="get /extensions/from_chrome_store">client.Extensions.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionService.DownloadFromChromeStore">DownloadFromChromeStore</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, query <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionDownloadFromChromeStoreParams">ExtensionDownloadFromChromeStoreParams</a>) (\*http.Response, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
331+
- <code title="get /extensions/{id_or_name}/metadata">client.Extensions.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, idOrName <a href="https://pkg.go.dev/builtin#string">string</a>) (\*<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionGetResponse">ExtensionGetResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
328332
- <code title="post /extensions">client.Extensions.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionService.Upload">Upload</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionUploadParams">ExtensionUploadParams</a>) (\*<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk">kernel</a>.<a href="https://pkg.go.dev/github.com/kernel/kernel-go-sdk#ExtensionUploadResponse">ExtensionUploadResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
329333

330334
# BrowserPools

browserpool.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,9 @@ type BrowserPoolBrowserPoolConfig struct {
198198
ChromePolicy map[string]any `json:"chrome_policy"`
199199
// List of browser extensions to load into the session. Provide each by id or name.
200200
Extensions []shared.BrowserExtension `json:"extensions"`
201-
// Percentage of the pool to fill per minute. Defaults to 10%.
201+
// Percentage of the pool to fill per minute. Defaults to 10. The cap is 25 for
202+
// most organizations but can be raised per-organization, so only the lower bound
203+
// is enforced here.
202204
FillRatePerMinute int64 `json:"fill_rate_per_minute"`
203205
// If true, launches the browser using a headless image. Defaults to false.
204206
Headless bool `json:"headless"`
@@ -224,7 +226,7 @@ type BrowserPoolBrowserPoolConfig struct {
224226
// mechanisms.
225227
Stealth bool `json:"stealth"`
226228
// Default idle timeout in seconds for browsers acquired from this pool before they
227-
// are destroyed. Defaults to 600 seconds if not specified
229+
// are destroyed. Defaults to 600 seconds. Minimum 10, maximum 259200 (72 hours).
228230
TimeoutSeconds int64 `json:"timeout_seconds"`
229231
// Initial browser window size in pixels with optional refresh rate. If omitted,
230232
// image defaults apply (1920x1080@25). For GPU images, the default is
@@ -370,7 +372,9 @@ type BrowserPoolNewParams struct {
370372
// your organization's pooled sessions limit (the sum of all pool sizes cannot
371373
// exceed your limit).
372374
Size int64 `json:"size" api:"required"`
373-
// Percentage of the pool to fill per minute. Defaults to 10%.
375+
// Percentage of the pool to fill per minute. Defaults to 10. The cap is 25 for
376+
// most organizations but can be raised per-organization, so only the lower bound
377+
// is enforced here.
374378
FillRatePerMinute param.Opt[int64] `json:"fill_rate_per_minute,omitzero"`
375379
// If true, launches the browser using a headless image. Defaults to false.
376380
Headless param.Opt[bool] `json:"headless,omitzero"`
@@ -392,7 +396,7 @@ type BrowserPoolNewParams struct {
392396
// mechanisms.
393397
Stealth param.Opt[bool] `json:"stealth,omitzero"`
394398
// Default idle timeout in seconds for browsers acquired from this pool before they
395-
// are destroyed. Defaults to 600 seconds if not specified
399+
// are destroyed. Defaults to 600 seconds. Minimum 10, maximum 259200 (72 hours).
396400
TimeoutSeconds param.Opt[int64] `json:"timeout_seconds,omitzero"`
397401
// Custom Chrome enterprise policy overrides applied to all browsers in this pool.
398402
// Keys are Chrome enterprise policy names; values must match their expected types.
@@ -433,7 +437,9 @@ type BrowserPoolUpdateParams struct {
433437
// Whether to discard all idle browsers and rebuild the pool immediately. Defaults
434438
// to false.
435439
DiscardAllIdle param.Opt[bool] `json:"discard_all_idle,omitzero"`
436-
// Percentage of the pool to fill per minute. Defaults to 10%.
440+
// Percentage of the pool to fill per minute. Defaults to 10. The cap is 25 for
441+
// most organizations but can be raised per-organization, so only the lower bound
442+
// is enforced here.
437443
FillRatePerMinute param.Opt[int64] `json:"fill_rate_per_minute,omitzero"`
438444
// If true, launches the browser using a headless image. Defaults to false.
439445
Headless param.Opt[bool] `json:"headless,omitzero"`
@@ -459,7 +465,7 @@ type BrowserPoolUpdateParams struct {
459465
// mechanisms.
460466
Stealth param.Opt[bool] `json:"stealth,omitzero"`
461467
// Default idle timeout in seconds for browsers acquired from this pool before they
462-
// are destroyed. Defaults to 600 seconds if not specified
468+
// are destroyed. Defaults to 600 seconds. Minimum 10, maximum 259200 (72 hours).
463469
TimeoutSeconds param.Opt[int64] `json:"timeout_seconds,omitzero"`
464470
// Custom Chrome enterprise policy overrides applied to all browsers in this pool.
465471
// Keys are Chrome enterprise policy names; values must match their expected types.
@@ -539,6 +545,10 @@ type BrowserPoolAcquireParams struct {
539545
// project. Applies to this lease only and is cleared when the browser is released
540546
// back to the pool.
541547
Name param.Opt[string] `json:"name,omitzero"`
548+
// Optional URL to navigate the acquired browser to. Overrides the pool's start_url
549+
// for this acquire only. Best-effort: failures to navigate do not fail the
550+
// acquire.
551+
StartURL param.Opt[string] `json:"start_url,omitzero"`
542552
// Optional user-defined key-value tags for the acquired browser session, used to
543553
// find and group sessions later. Applies to this lease only and are cleared when
544554
// the browser is released back to the pool. Up to 50 pairs.

browserpool_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func TestBrowserPoolNewWithOptionalParams(t *testing.T) {
4848
ProxyID: kernel.String("proxy_id"),
4949
StartURL: kernel.String("https://example.com"),
5050
Stealth: kernel.Bool(true),
51-
TimeoutSeconds: kernel.Int(60),
51+
TimeoutSeconds: kernel.Int(10),
5252
Viewport: shared.BrowserViewportParam{
5353
Height: 800,
5454
Width: 1280,
@@ -125,7 +125,7 @@ func TestBrowserPoolUpdateWithOptionalParams(t *testing.T) {
125125
Size: kernel.Int(10),
126126
StartURL: kernel.String("https://example.com"),
127127
Stealth: kernel.Bool(true),
128-
TimeoutSeconds: kernel.Int(60),
128+
TimeoutSeconds: kernel.Int(10),
129129
Viewport: shared.BrowserViewportParam{
130130
Height: 800,
131131
Width: 1280,
@@ -217,6 +217,7 @@ func TestBrowserPoolAcquireWithOptionalParams(t *testing.T) {
217217
kernel.BrowserPoolAcquireParams{
218218
AcquireTimeoutSeconds: kernel.Int(0),
219219
Name: kernel.String("checkout-flow-1"),
220+
StartURL: kernel.String("https://example.com"),
220221
Tags: kernel.Tags{
221222
"team": "backend",
222223
"env": "staging",

0 commit comments

Comments
 (0)