From dda0e7b80fe6b104bde97a0b06cf060557501824 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 17 Jan 2026 21:34:31 +0000 Subject: [PATCH 1/3] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2857ba8..8e09c0a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-fc2c80b398a8dd511010ae7cda5e21c353e388ee130aa288974b47af4208b5b8.yml -openapi_spec_hash: 5e06586dbbb9fce12b907f4e32497006 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-1e490dbef30dfa53ccba72524fcba4079f244f2530a4f770c00f8fee707eaa72.yml +openapi_spec_hash: 1fd15429610959f19aed6d3cb170ab9e config_hash: cc7fdd701d995d4b3456d77041c604cf From 33f2a9cd0b5391bd058f6c74900c8d3731b3f990 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 18 Jan 2026 22:56:52 +0000 Subject: [PATCH 2/3] feat(dashboard): add browser replays support for past browsers --- .stats.yml | 4 ++-- api.md | 2 +- browser.go | 45 +++++++++++++++++++++++++++++++++++++-------- browser_test.go | 11 +++++++++-- 4 files changed, 49 insertions(+), 13 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8e09c0a..37fa5b7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-1e490dbef30dfa53ccba72524fcba4079f244f2530a4f770c00f8fee707eaa72.yml -openapi_spec_hash: 1fd15429610959f19aed6d3cb170ab9e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-68729f2ff40476377ead9019c18ea140fc4efbc2e68d7c4fc323bd61ae81f768.yml +openapi_spec_hash: 9eec61481f9059b5fedc13abc3e39338 config_hash: cc7fdd701d995d4b3456d77041c604cf diff --git a/api.md b/api.md index f5dfb8c..5a00389 100644 --- a/api.md +++ b/api.md @@ -81,7 +81,7 @@ Response Types: Methods: - client.Browsers.New(ctx context.Context, body kernel.BrowserNewParams) (\*kernel.BrowserNewResponse, error) -- client.Browsers.Get(ctx context.Context, id string) (\*kernel.BrowserGetResponse, error) +- client.Browsers.Get(ctx context.Context, id string, query kernel.BrowserGetParams) (\*kernel.BrowserGetResponse, error) - client.Browsers.Update(ctx context.Context, id string, body kernel.BrowserUpdateParams) (\*kernel.BrowserUpdateResponse, error) - client.Browsers.List(ctx context.Context, query kernel.BrowserListParams) (\*pagination.OffsetPagination[kernel.BrowserListResponse], error) - client.Browsers.Delete(ctx context.Context, body kernel.BrowserDeleteParams) error diff --git a/browser.go b/browser.go index c8da385..0c27f87 100644 --- a/browser.go +++ b/browser.go @@ -66,14 +66,14 @@ func (r *BrowserService) New(ctx context.Context, body BrowserNewParams, opts .. } // Get information about a browser session. -func (r *BrowserService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *BrowserGetResponse, err error) { +func (r *BrowserService) Get(ctx context.Context, id string, query BrowserGetParams, opts ...option.RequestOption) (res *BrowserGetResponse, err error) { opts = slices.Concat(r.Options, opts) if id == "" { err = errors.New("missing required id parameter") return } path := fmt.Sprintf("browsers/%s", id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) return } @@ -89,8 +89,8 @@ func (r *BrowserService) Update(ctx context.Context, id string, body BrowserUpda return } -// List all browser sessions with pagination support. Use include_deleted=true to -// include soft-deleted sessions in the results. +// List all browser sessions with pagination support. Use status parameter to +// filter by session state. func (r *BrowserService) List(ctx context.Context, query BrowserListParams, opts ...option.RequestOption) (res *pagination.OffsetPagination[BrowserListResponse], err error) { var raw *http.Response opts = slices.Concat(r.Options, opts) @@ -108,8 +108,8 @@ func (r *BrowserService) List(ctx context.Context, query BrowserListParams, opts return res, nil } -// List all browser sessions with pagination support. Use include_deleted=true to -// include soft-deleted sessions in the results. +// List all browser sessions with pagination support. Use status parameter to +// filter by session state. func (r *BrowserService) ListAutoPaging(ctx context.Context, query BrowserListParams, opts ...option.RequestOption) *pagination.OffsetPaginationAutoPager[BrowserListResponse] { return pagination.NewOffsetPaginationAutoPager(r.List(ctx, query, opts...)) } @@ -532,6 +532,20 @@ func (r *BrowserNewParams) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } +type BrowserGetParams struct { + // When true, includes soft-deleted browser sessions in the lookup. + IncludeDeleted param.Opt[bool] `query:"include_deleted,omitzero" json:"-"` + paramObj +} + +// URLQuery serializes [BrowserGetParams]'s query parameters as `url.Values`. +func (r BrowserGetParams) URLQuery() (v url.Values, err error) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + type BrowserUpdateParams struct { // ID of the proxy to use. Omit to leave unchanged, set to empty string to remove // proxy. @@ -548,13 +562,18 @@ func (r *BrowserUpdateParams) UnmarshalJSON(data []byte) error { } type BrowserListParams struct { - // When true, includes soft-deleted browser sessions in the results alongside - // active sessions. + // Deprecated: Use status=all instead. When true, includes soft-deleted browser + // sessions in the results alongside active sessions. IncludeDeleted param.Opt[bool] `query:"include_deleted,omitzero" json:"-"` // Maximum number of results to return. Defaults to 20, maximum 100. Limit param.Opt[int64] `query:"limit,omitzero" json:"-"` // Number of results to skip. Defaults to 0. Offset param.Opt[int64] `query:"offset,omitzero" json:"-"` + // Filter sessions by status. "active" returns only active sessions (default), + // "deleted" returns only soft-deleted sessions, "all" returns both. + // + // Any of "active", "deleted", "all". + Status BrowserListParamsStatus `query:"status,omitzero" json:"-"` paramObj } @@ -566,6 +585,16 @@ func (r BrowserListParams) URLQuery() (v url.Values, err error) { }) } +// Filter sessions by status. "active" returns only active sessions (default), +// "deleted" returns only soft-deleted sessions, "all" returns both. +type BrowserListParamsStatus string + +const ( + BrowserListParamsStatusActive BrowserListParamsStatus = "active" + BrowserListParamsStatusDeleted BrowserListParamsStatus = "deleted" + BrowserListParamsStatusAll BrowserListParamsStatus = "all" +) + type BrowserDeleteParams struct { // Persistent browser identifier PersistentID string `query:"persistent_id,required" json:"-"` diff --git a/browser_test.go b/browser_test.go index d0ab6f5..f0df76c 100644 --- a/browser_test.go +++ b/browser_test.go @@ -63,7 +63,7 @@ func TestBrowserNewWithOptionalParams(t *testing.T) { } } -func TestBrowserGet(t *testing.T) { +func TestBrowserGetWithOptionalParams(t *testing.T) { t.Skip("Prism tests are disabled") baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { @@ -76,7 +76,13 @@ func TestBrowserGet(t *testing.T) { option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), ) - _, err := client.Browsers.Get(context.TODO(), "htzv5orfit78e1m2biiifpbv") + _, err := client.Browsers.Get( + context.TODO(), + "htzv5orfit78e1m2biiifpbv", + kernel.BrowserGetParams{ + IncludeDeleted: kernel.Bool(true), + }, + ) if err != nil { var apierr *kernel.Error if errors.As(err, &apierr) { @@ -132,6 +138,7 @@ func TestBrowserListWithOptionalParams(t *testing.T) { IncludeDeleted: kernel.Bool(true), Limit: kernel.Int(1), Offset: kernel.Int(0), + Status: kernel.BrowserListParamsStatusActive, }) if err != nil { var apierr *kernel.Error From e79b73e03248ad6323ea57039e5d11f97854b036 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 18 Jan 2026 22:57:07 +0000 Subject: [PATCH 3/3] release: 0.27.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ README.md | 2 +- internal/version.go | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index caf5ca3..59acac4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.26.0" + ".": "0.27.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 039f057..40c01fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.27.0 (2026-01-18) + +Full Changelog: [v0.26.0...v0.27.0](https://github.com/kernel/kernel-go-sdk/compare/v0.26.0...v0.27.0) + +### Features + +* add manual dispatch trigger with optional PR number input ([b3020ea](https://github.com/kernel/kernel-go-sdk/commit/b3020eac3fb81e628345bffcab03e45e8556ebc1)) +* **dashboard:** add browser replays support for past browsers ([33f2a9c](https://github.com/kernel/kernel-go-sdk/commit/33f2a9cd0b5391bd058f6c74900c8d3731b3f990)) + + +### Bug Fixes + +* require CLI commands for all SDK methods ([8e3d9be](https://github.com/kernel/kernel-go-sdk/commit/8e3d9be2e555559533d9d935ce7e6a57c06bf29e)) +* update CLI coverage workflow to perform full SDK method enumeration ([23d4b9b](https://github.com/kernel/kernel-go-sdk/commit/23d4b9be60db33c3de40da6666e3c51ded15dba5)) + ## 0.26.0 (2026-01-17) Full Changelog: [v0.25.0...v0.26.0](https://github.com/kernel/kernel-go-sdk/compare/v0.25.0...v0.26.0) diff --git a/README.md b/README.md index 9a24c47..6d76526 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Or to pin the version: ```sh -go get -u 'github.com/kernel/kernel-go-sdk@v0.26.0' +go get -u 'github.com/kernel/kernel-go-sdk@v0.27.0' ``` diff --git a/internal/version.go b/internal/version.go index dc72016..c2280fd 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.26.0" // x-release-please-version +const PackageVersion = "0.27.0" // x-release-please-version