From 96a4f241bdf8dffe57c91140bf33f54a2c21a223 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 03:19:04 +0000 Subject: [PATCH 1/5] chore(internal): fix lint error on Python 3.14 --- src/kernel/_utils/_compat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kernel/_utils/_compat.py b/src/kernel/_utils/_compat.py index dd703233..2c70b299 100644 --- a/src/kernel/_utils/_compat.py +++ b/src/kernel/_utils/_compat.py @@ -26,7 +26,7 @@ def is_union(tp: Optional[Type[Any]]) -> bool: else: import types - return tp is Union or tp is types.UnionType + return tp is Union or tp is types.UnionType # type: ignore[comparison-overlap] def is_typeddict(tp: Type[Any]) -> bool: From 9d160d798b25fc5416a2cce84b2ad8e2fc46f801 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 18:00:27 +0000 Subject: [PATCH 2/5] feat: Add error_code field to ManagedAuthSession and related components --- .stats.yml | 4 ++-- src/kernel/types/auth/connection_follow_response.py | 3 +++ src/kernel/types/auth/managed_auth.py | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 00007d67..f7218213 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 100 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-82fd51be8dc9b6ad425425f9eb747dd337df494a030d03d37f101e2236c85548.yml -openapi_spec_hash: ab396816e2b7da9938d42ec5a41cc8e1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-b7d469021adcd1493f74dad38746ffa3817dcf86a0a12561a88eb554824e3ffb.yml +openapi_spec_hash: 4134c95bf3012dca38797ca56d62395b config_hash: 27c0ea01aeb797a1767af139851c5b66 diff --git a/src/kernel/types/auth/connection_follow_response.py b/src/kernel/types/auth/connection_follow_response.py index e54d5c10..06ffaeab 100644 --- a/src/kernel/types/auth/connection_follow_response.py +++ b/src/kernel/types/auth/connection_follow_response.py @@ -95,6 +95,9 @@ class ManagedAuthStateEvent(BaseModel): discovered_fields: Optional[List[ManagedAuthStateEventDiscoveredField]] = None """Fields awaiting input (present when flow_step=AWAITING_INPUT).""" + error_code: Optional[str] = None + """Machine-readable error code (present when flow_status=FAILED).""" + error_message: Optional[str] = None """Error message (present when flow_status=FAILED).""" diff --git a/src/kernel/types/auth/managed_auth.py b/src/kernel/types/auth/managed_auth.py index 04a67432..de607c9e 100644 --- a/src/kernel/types/auth/managed_auth.py +++ b/src/kernel/types/auth/managed_auth.py @@ -155,6 +155,9 @@ class ManagedAuth(BaseModel): discovered_fields: Optional[List[DiscoveredField]] = None """Fields awaiting input (present when flow_step=awaiting_input)""" + error_code: Optional[str] = None + """Machine-readable error code (present when flow_status=failed)""" + error_message: Optional[str] = None """Error message (present when flow_status=failed)""" From c4ea333ede664dbaa38911b1f97310e0b8a9618f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 03:12:08 +0000 Subject: [PATCH 3/5] chore: format all `api.md` files --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1ede9229..9eabe4e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ format = { chain = [ # run formatting again to fix any inconsistencies when imports are stripped "format:ruff", ]} -"format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md" +"format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'" "format:ruff" = "ruff format" "lint" = { chain = [ From 6463d9fdb94477867d82fd69630688878c79b182 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 22:14:31 +0000 Subject: [PATCH 4/5] feat: Allow arbitrary viewport dimensions --- .stats.yml | 4 +- src/kernel/resources/browser_pools.py | 56 +++++++++---------- src/kernel/resources/browsers/browsers.py | 28 +++++----- src/kernel/types/browser_create_params.py | 14 ++--- src/kernel/types/browser_create_response.py | 14 ++--- src/kernel/types/browser_list_response.py | 14 ++--- src/kernel/types/browser_pool.py | 14 ++--- .../types/browser_pool_acquire_response.py | 14 ++--- .../types/browser_pool_create_params.py | 14 ++--- .../types/browser_pool_update_params.py | 14 ++--- src/kernel/types/browser_retrieve_response.py | 14 ++--- src/kernel/types/browser_update_response.py | 14 ++--- .../invocation_list_browsers_response.py | 14 ++--- src/kernel/types/shared/browser_viewport.py | 9 +-- .../types/shared_params/browser_viewport.py | 9 +-- 15 files changed, 124 insertions(+), 122 deletions(-) diff --git a/.stats.yml b/.stats.yml index f7218213..264b8c9d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 100 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-b7d469021adcd1493f74dad38746ffa3817dcf86a0a12561a88eb554824e3ffb.yml -openapi_spec_hash: 4134c95bf3012dca38797ca56d62395b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-47ee6a2b624baddb41a681feff758bf1893cd3d65edf3ab51219ebe4d942932b.yml +openapi_spec_hash: 76178c41ede593e76bfacb176057d2f0 config_hash: 27c0ea01aeb797a1767af139851c5b66 diff --git a/src/kernel/resources/browser_pools.py b/src/kernel/resources/browser_pools.py index 4f6ad8b2..9177d678 100644 --- a/src/kernel/resources/browser_pools.py +++ b/src/kernel/resources/browser_pools.py @@ -108,13 +108,13 @@ def create( are destroyed. Defaults to 600 seconds if not specified viewport: Initial browser window size in pixels with optional refresh rate. If omitted, - image defaults apply (1920x1080@25). Only specific viewport configurations are - supported. The server will reject unsupported combinations. Supported - resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, - 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will - be automatically determined from the width and height if they match a supported - configuration exactly. Note: Higher resolutions may affect the responsiveness of - live view browser + image defaults apply (1920x1080@25). Arbitrary viewport dimensions are accepted, + but the following configurations are known-good and fully tested: 2560x1440@10, + 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording + behavior. If refresh_rate is not provided, it will be automatically determined + based on the resolution (higher resolutions use lower refresh rates to keep + bandwidth reasonable). extra_headers: Send extra headers @@ -240,13 +240,13 @@ def update( are destroyed. Defaults to 600 seconds if not specified viewport: Initial browser window size in pixels with optional refresh rate. If omitted, - image defaults apply (1920x1080@25). Only specific viewport configurations are - supported. The server will reject unsupported combinations. Supported - resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, - 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will - be automatically determined from the width and height if they match a supported - configuration exactly. Note: Higher resolutions may affect the responsiveness of - live view browser + image defaults apply (1920x1080@25). Arbitrary viewport dimensions are accepted, + but the following configurations are known-good and fully tested: 2560x1440@10, + 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording + behavior. If refresh_rate is not provided, it will be automatically determined + based on the resolution (higher resolutions use lower refresh rates to keep + bandwidth reasonable). extra_headers: Send extra headers @@ -546,13 +546,13 @@ async def create( are destroyed. Defaults to 600 seconds if not specified viewport: Initial browser window size in pixels with optional refresh rate. If omitted, - image defaults apply (1920x1080@25). Only specific viewport configurations are - supported. The server will reject unsupported combinations. Supported - resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, - 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will - be automatically determined from the width and height if they match a supported - configuration exactly. Note: Higher resolutions may affect the responsiveness of - live view browser + image defaults apply (1920x1080@25). Arbitrary viewport dimensions are accepted, + but the following configurations are known-good and fully tested: 2560x1440@10, + 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording + behavior. If refresh_rate is not provided, it will be automatically determined + based on the resolution (higher resolutions use lower refresh rates to keep + bandwidth reasonable). extra_headers: Send extra headers @@ -678,13 +678,13 @@ async def update( are destroyed. Defaults to 600 seconds if not specified viewport: Initial browser window size in pixels with optional refresh rate. If omitted, - image defaults apply (1920x1080@25). Only specific viewport configurations are - supported. The server will reject unsupported combinations. Supported - resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, - 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will - be automatically determined from the width and height if they match a supported - configuration exactly. Note: Higher resolutions may affect the responsiveness of - live view browser + image defaults apply (1920x1080@25). Arbitrary viewport dimensions are accepted, + but the following configurations are known-good and fully tested: 2560x1440@10, + 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording + behavior. If refresh_rate is not provided, it will be automatically determined + based on the resolution (higher resolutions use lower refresh rates to keep + bandwidth reasonable). extra_headers: Send extra headers diff --git a/src/kernel/resources/browsers/browsers.py b/src/kernel/resources/browsers/browsers.py index 4b61d8d8..fe0e5ab9 100644 --- a/src/kernel/resources/browsers/browsers.py +++ b/src/kernel/resources/browsers/browsers.py @@ -185,13 +185,13 @@ def create( see is +/- 5 seconds around the specified value. viewport: Initial browser window size in pixels with optional refresh rate. If omitted, - image defaults apply (1920x1080@25). Only specific viewport configurations are - supported. The server will reject unsupported combinations. Supported - resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, - 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will - be automatically determined from the width and height if they match a supported - configuration exactly. Note: Higher resolutions may affect the responsiveness of - live view browser + image defaults apply (1920x1080@25). Arbitrary viewport dimensions are accepted, + but the following configurations are known-good and fully tested: 2560x1440@10, + 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording + behavior. If refresh_rate is not provided, it will be automatically determined + based on the resolution (higher resolutions use lower refresh rates to keep + bandwidth reasonable). extra_headers: Send extra headers @@ -596,13 +596,13 @@ async def create( see is +/- 5 seconds around the specified value. viewport: Initial browser window size in pixels with optional refresh rate. If omitted, - image defaults apply (1920x1080@25). Only specific viewport configurations are - supported. The server will reject unsupported combinations. Supported - resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, - 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will - be automatically determined from the width and height if they match a supported - configuration exactly. Note: Higher resolutions may affect the responsiveness of - live view browser + image defaults apply (1920x1080@25). Arbitrary viewport dimensions are accepted, + but the following configurations are known-good and fully tested: 2560x1440@10, + 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording + behavior. If refresh_rate is not provided, it will be automatically determined + based on the resolution (higher resolutions use lower refresh rates to keep + bandwidth reasonable). extra_headers: Send extra headers diff --git a/src/kernel/types/browser_create_params.py b/src/kernel/types/browser_create_params.py index 1e93fa6d..3a6297b9 100644 --- a/src/kernel/types/browser_create_params.py +++ b/src/kernel/types/browser_create_params.py @@ -69,11 +69,11 @@ class BrowserCreateParams(TypedDict, total=False): viewport: BrowserViewport """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_create_response.py b/src/kernel/types/browser_create_response.py index b6c28acf..898f9fa5 100644 --- a/src/kernel/types/browser_create_response.py +++ b/src/kernel/types/browser_create_response.py @@ -54,11 +54,11 @@ class BrowserCreateResponse(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_list_response.py b/src/kernel/types/browser_list_response.py index d99546d5..f687b176 100644 --- a/src/kernel/types/browser_list_response.py +++ b/src/kernel/types/browser_list_response.py @@ -54,11 +54,11 @@ class BrowserListResponse(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool.py b/src/kernel/types/browser_pool.py index fbbf2cb6..fc4e0f1d 100644 --- a/src/kernel/types/browser_pool.py +++ b/src/kernel/types/browser_pool.py @@ -70,13 +70,13 @@ class BrowserPoolConfig(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool_acquire_response.py b/src/kernel/types/browser_pool_acquire_response.py index 3175b398..581168c6 100644 --- a/src/kernel/types/browser_pool_acquire_response.py +++ b/src/kernel/types/browser_pool_acquire_response.py @@ -54,11 +54,11 @@ class BrowserPoolAcquireResponse(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool_create_params.py b/src/kernel/types/browser_pool_create_params.py index 81deaa68..78268a50 100644 --- a/src/kernel/types/browser_pool_create_params.py +++ b/src/kernel/types/browser_pool_create_params.py @@ -69,11 +69,11 @@ class BrowserPoolCreateParams(TypedDict, total=False): viewport: BrowserViewport """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool_update_params.py b/src/kernel/types/browser_pool_update_params.py index 63487086..74b76a63 100644 --- a/src/kernel/types/browser_pool_update_params.py +++ b/src/kernel/types/browser_pool_update_params.py @@ -75,11 +75,11 @@ class BrowserPoolUpdateParams(TypedDict, total=False): viewport: BrowserViewport """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_retrieve_response.py b/src/kernel/types/browser_retrieve_response.py index 09210e8c..454cbd64 100644 --- a/src/kernel/types/browser_retrieve_response.py +++ b/src/kernel/types/browser_retrieve_response.py @@ -54,11 +54,11 @@ class BrowserRetrieveResponse(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_update_response.py b/src/kernel/types/browser_update_response.py index 01c34be5..8f451736 100644 --- a/src/kernel/types/browser_update_response.py +++ b/src/kernel/types/browser_update_response.py @@ -54,11 +54,11 @@ class BrowserUpdateResponse(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/invocation_list_browsers_response.py b/src/kernel/types/invocation_list_browsers_response.py index 4d41a298..619fdcea 100644 --- a/src/kernel/types/invocation_list_browsers_response.py +++ b/src/kernel/types/invocation_list_browsers_response.py @@ -54,13 +54,13 @@ class Browser(BaseModel): viewport: Optional[BrowserViewport] = None """Initial browser window size in pixels with optional refresh rate. - If omitted, image defaults apply (1920x1080@25). Only specific viewport - configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 If refresh_rate is not - provided, it will be automatically determined from the width and height if they - match a supported configuration exactly. Note: Higher resolutions may affect the - responsiveness of live view browser + If omitted, image defaults apply (1920x1080@25). Arbitrary viewport dimensions + are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, + 1200x800@60. Viewports outside this list may exhibit unstable live view or + recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/shared/browser_viewport.py b/src/kernel/types/shared/browser_viewport.py index 2329dd75..dacac1f2 100644 --- a/src/kernel/types/shared/browser_viewport.py +++ b/src/kernel/types/shared/browser_viewport.py @@ -11,10 +11,11 @@ class BrowserViewport(BaseModel): """Initial browser window size in pixels with optional refresh rate. If omitted, image defaults apply (1920x1080@25). - Only specific viewport configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 - If refresh_rate is not provided, it will be automatically determined from the width and height if they match a supported configuration exactly. - Note: Higher resolutions may affect the responsiveness of live view browser + Arbitrary viewport dimensions are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording behavior. + If refresh_rate is not provided, it will be automatically determined based on the resolution + (higher resolutions use lower refresh rates to keep bandwidth reasonable). """ height: int diff --git a/src/kernel/types/shared_params/browser_viewport.py b/src/kernel/types/shared_params/browser_viewport.py index 7041ea55..f98ece82 100644 --- a/src/kernel/types/shared_params/browser_viewport.py +++ b/src/kernel/types/shared_params/browser_viewport.py @@ -11,10 +11,11 @@ class BrowserViewport(TypedDict, total=False): """Initial browser window size in pixels with optional refresh rate. If omitted, image defaults apply (1920x1080@25). - Only specific viewport configurations are supported. The server will reject unsupported combinations. - Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60 - If refresh_rate is not provided, it will be automatically determined from the width and height if they match a supported configuration exactly. - Note: Higher resolutions may affect the responsiveness of live view browser + Arbitrary viewport dimensions are accepted, but the following configurations are known-good and fully tested: + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + Viewports outside this list may exhibit unstable live view or recording behavior. + If refresh_rate is not provided, it will be automatically determined based on the resolution + (higher resolutions use lower refresh rates to keep bandwidth reasonable). """ height: Required[int] From 38e5906f78cf4edb3d02625fc6d9f37814c0bff7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 22:14:50 +0000 Subject: [PATCH 5/5] release: 0.34.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/kernel/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 57dc0c3d..e4e1c3ce 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.33.0" + ".": "0.34.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 37533b7a..66086231 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.34.0 (2026-02-13) + +Full Changelog: [v0.33.0...v0.34.0](https://github.com/kernel/kernel-python-sdk/compare/v0.33.0...v0.34.0) + +### Features + +* Add error_code field to ManagedAuthSession and related components ([9d160d7](https://github.com/kernel/kernel-python-sdk/commit/9d160d798b25fc5416a2cce84b2ad8e2fc46f801)) +* Allow arbitrary viewport dimensions ([6463d9f](https://github.com/kernel/kernel-python-sdk/commit/6463d9fdb94477867d82fd69630688878c79b182)) + + +### Chores + +* format all `api.md` files ([c4ea333](https://github.com/kernel/kernel-python-sdk/commit/c4ea333ede664dbaa38911b1f97310e0b8a9618f)) +* **internal:** fix lint error on Python 3.14 ([96a4f24](https://github.com/kernel/kernel-python-sdk/commit/96a4f241bdf8dffe57c91140bf33f54a2c21a223)) + ## 0.33.0 (2026-02-11) Full Changelog: [v0.32.0...v0.33.0](https://github.com/kernel/kernel-python-sdk/compare/v0.32.0...v0.33.0) diff --git a/pyproject.toml b/pyproject.toml index 9eabe4e5..b7f4fe64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kernel" -version = "0.33.0" +version = "0.34.0" description = "The official Python library for the kernel API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/kernel/_version.py b/src/kernel/_version.py index 8f653388..23d2f207 100644 --- a/src/kernel/_version.py +++ b/src/kernel/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "kernel" -__version__ = "0.33.0" # x-release-please-version +__version__ = "0.34.0" # x-release-please-version