Skip to content

Commit eb43d31

Browse files
authored
Merge pull request #207 from kernel/release-please--branches--main--changes--next
release: 0.137.0
2 parents 3bbc604 + 6d5bceb commit eb43d31

36 files changed

Lines changed: 534 additions & 112 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.136.0"
2+
".": "0.137.0"
33
}

‎CHANGELOG.md‎

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

3+
## [0.137.0](https://github.com/kernel/kernel-python-sdk/compare/v0.136.0...v0.137.0) (2026-10-29)
4+
5+
6+
### Features
7+
8+
* Add request-only fingerprint beta contract ([bca5a05](https://github.com/kernel/kernel-python-sdk/commit/bca5a056f486104f3a9f145c65b78df29a104898))
9+
* Read Shop Pay card status one read at a time and report outcome details ([888e8a2](https://github.com/kernel/kernel-python-sdk/commit/888e8a2d2a64e672941c2c420a0726115727ef42))
10+
* Remove the projects_enabled flag from the API ([bfb22ed](https://github.com/kernel/kernel-python-sdk/commit/bfb22ed009fa5cbe81781ad6fb3d81023571b643))
11+
* route browser REPL and WebMCP calls directly to browser VMs ([1974522](https://github.com/kernel/kernel-python-sdk/commit/1974522e499d2dd7a3cf39713229ef9dd9f70d34))
12+
* Route Evervault alias payment windows through per-window upstreams ([845e6c6](https://github.com/kernel/kernel-python-sdk/commit/845e6c6219be1ec937179236359909aff4137eaf))
13+
* Wire Shop Pay into the vault API ([e5e6b25](https://github.com/kernel/kernel-python-sdk/commit/e5e6b2541b1360a42fbad61acdfd58d5767fa409))
14+
315
## [0.136.0](https://github.com/kernel/kernel-python-sdk/compare/v0.135.0...v0.136.0) (2026-10-28)
416

517

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,9 @@ from kernel import Kernel
203203
client = Kernel()
204204

205205
browser = client.browsers.create(
206-
location={},
206+
fingerprint={"os": "macos"},
207207
)
208-
print(browser.location)
208+
print(browser.fingerprint)
209209
```
210210

211211
## File uploads

‎api.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ Types:
118118
```python
119119
from kernel.types import (
120120
BrowserAllowlistState,
121+
BrowserFingerprint,
121122
BrowserLocation,
122123
BrowserLocationRequest,
123124
BrowserLocationSource,
@@ -634,6 +635,10 @@ from kernel.types.vaults import (
634635
RemovePaymentMethodVaultItemOperationRequest,
635636
RemovePaymentMethodVaultItemOperationResult,
636637
RestartVerificationVaultItemOperationRequest,
638+
ShopPayCardState,
639+
ShopPayCardVaultItemSpec,
640+
ShopPayWalletState,
641+
ShopPayWalletVaultItemSpec,
637642
VaultCardAliases,
638643
VaultCardFillField,
639644
VaultCheckoutContext,

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "kernel"
3-
version = "0.136.0"
3+
version = "0.137.0"
44
description = "The official Python library for the kernel API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

‎src/kernel/_client.py‎

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -316,11 +316,7 @@ def credentials(self) -> CredentialsResource:
316316

317317
@cached_property
318318
def projects(self) -> ProjectsResource:
319-
"""
320-
Create and manage projects for resource isolation within an organization.
321-
When projects are disabled for the organization, project operations return
322-
`404` with code `projects_disabled`.
323-
"""
319+
"""Create and manage projects for resource isolation within an organization."""
324320
from .resources.projects import ProjectsResource
325321

326322
return ProjectsResource(self)
@@ -729,11 +725,7 @@ def credentials(self) -> AsyncCredentialsResource:
729725

730726
@cached_property
731727
def projects(self) -> AsyncProjectsResource:
732-
"""
733-
Create and manage projects for resource isolation within an organization.
734-
When projects are disabled for the organization, project operations return
735-
`404` with code `projects_disabled`.
736-
"""
728+
"""Create and manage projects for resource isolation within an organization."""
737729
from .resources.projects import AsyncProjectsResource
738730

739731
return AsyncProjectsResource(self)
@@ -1042,11 +1034,7 @@ def credentials(self) -> credentials.CredentialsResourceWithRawResponse:
10421034

10431035
@cached_property
10441036
def projects(self) -> projects.ProjectsResourceWithRawResponse:
1045-
"""
1046-
Create and manage projects for resource isolation within an organization.
1047-
When projects are disabled for the organization, project operations return
1048-
`404` with code `projects_disabled`.
1049-
"""
1037+
"""Create and manage projects for resource isolation within an organization."""
10501038
from .resources.projects import ProjectsResourceWithRawResponse
10511039

10521040
return ProjectsResourceWithRawResponse(self._client.projects)
@@ -1187,11 +1175,7 @@ def credentials(self) -> credentials.AsyncCredentialsResourceWithRawResponse:
11871175

11881176
@cached_property
11891177
def projects(self) -> projects.AsyncProjectsResourceWithRawResponse:
1190-
"""
1191-
Create and manage projects for resource isolation within an organization.
1192-
When projects are disabled for the organization, project operations return
1193-
`404` with code `projects_disabled`.
1194-
"""
1178+
"""Create and manage projects for resource isolation within an organization."""
11951179
from .resources.projects import AsyncProjectsResourceWithRawResponse
11961180

11971181
return AsyncProjectsResourceWithRawResponse(self._client.projects)
@@ -1332,11 +1316,7 @@ def credentials(self) -> credentials.CredentialsResourceWithStreamingResponse:
13321316

13331317
@cached_property
13341318
def projects(self) -> projects.ProjectsResourceWithStreamingResponse:
1335-
"""
1336-
Create and manage projects for resource isolation within an organization.
1337-
When projects are disabled for the organization, project operations return
1338-
`404` with code `projects_disabled`.
1339-
"""
1319+
"""Create and manage projects for resource isolation within an organization."""
13401320
from .resources.projects import ProjectsResourceWithStreamingResponse
13411321

13421322
return ProjectsResourceWithStreamingResponse(self._client.projects)
@@ -1477,11 +1457,7 @@ def credentials(self) -> credentials.AsyncCredentialsResourceWithStreamingRespon
14771457

14781458
@cached_property
14791459
def projects(self) -> projects.AsyncProjectsResourceWithStreamingResponse:
1480-
"""
1481-
Create and manage projects for resource isolation within an organization.
1482-
When projects are disabled for the organization, project operations return
1483-
`404` with code `projects_disabled`.
1484-
"""
1460+
"""Create and manage projects for resource isolation within an organization."""
14851461
from .resources.projects import AsyncProjectsResourceWithStreamingResponse
14861462

14871463
return AsyncProjectsResourceWithStreamingResponse(self._client.projects)

‎src/kernel/_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "kernel"
4-
__version__ = "0.136.0" # x-release-please-version
4+
__version__ = "0.137.0" # x-release-please-version

‎src/kernel/lib/browser_routing/routing.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ def browser_routing_config_from_env() -> BrowserRoutingConfig:
6262
"process",
6363
"fs",
6464
"logs/stream",
65+
"repl",
66+
"webmcp",
6567
)
6668
)
6769
if raw.strip() == "":

‎src/kernel/resources/browsers/browsers.py‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
from ...types.browser_memory_request import BrowserMemoryRequest
114114
from ...types.browser_create_response import BrowserCreateResponse
115115
from ...types.browser_update_response import BrowserUpdateResponse
116+
from ...types.browser_fingerprint_param import BrowserFingerprintParam
116117
from ...types.browser_retrieve_response import BrowserRetrieveResponse
117118
from ...types.browser_proxy_config_param import BrowserProxyConfigParam
118119
from ...types.browser_network_config_param import BrowserNetworkConfigParam
@@ -195,6 +196,7 @@ def create(
195196
*,
196197
chrome_policy: Dict[str, object] | Omit = omit,
197198
extensions: Iterable[BrowserExtension] | Omit = omit,
199+
fingerprint: BrowserFingerprintParam | Omit = omit,
198200
gpu: bool | Omit = omit,
199201
headless: bool | Omit = omit,
200202
invocation_id: str | Omit = omit,
@@ -234,6 +236,11 @@ def create(
234236
235237
extensions: List of browser extensions to load into the session. Provide each by id or name.
236238
239+
fingerprint: Closed beta: contact Kernel to enable fingerprint overrides for your
240+
organization. Overrides browser attributes presented to websites for this
241+
session. Currently supports macos and requires stealth=true, headless=false,
242+
gpu=false, and default memory. Omit to preserve the default browser behavior.
243+
237244
gpu: If true, enables GPU acceleration for the browser session. Requires Start-Up or
238245
Enterprise plan, headless=false, and region=us-east.
239246
@@ -340,6 +347,7 @@ def create(
340347
{
341348
"chrome_policy": chrome_policy,
342349
"extensions": extensions,
350+
"fingerprint": fingerprint,
343351
"gpu": gpu,
344352
"headless": headless,
345353
"invocation_id": invocation_id,
@@ -1049,6 +1057,7 @@ async def create(
10491057
*,
10501058
chrome_policy: Dict[str, object] | Omit = omit,
10511059
extensions: Iterable[BrowserExtension] | Omit = omit,
1060+
fingerprint: BrowserFingerprintParam | Omit = omit,
10521061
gpu: bool | Omit = omit,
10531062
headless: bool | Omit = omit,
10541063
invocation_id: str | Omit = omit,
@@ -1088,6 +1097,11 @@ async def create(
10881097
10891098
extensions: List of browser extensions to load into the session. Provide each by id or name.
10901099
1100+
fingerprint: Closed beta: contact Kernel to enable fingerprint overrides for your
1101+
organization. Overrides browser attributes presented to websites for this
1102+
session. Currently supports macos and requires stealth=true, headless=false,
1103+
gpu=false, and default memory. Omit to preserve the default browser behavior.
1104+
10911105
gpu: If true, enables GPU acceleration for the browser session. Requires Start-Up or
10921106
Enterprise plan, headless=false, and region=us-east.
10931107
@@ -1194,6 +1208,7 @@ async def create(
11941208
{
11951209
"chrome_policy": chrome_policy,
11961210
"extensions": extensions,
1211+
"fingerprint": fingerprint,
11971212
"gpu": gpu,
11981213
"headless": headless,
11991214
"invocation_id": invocation_id,

‎src/kernel/resources/projects/limits.py‎

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,7 @@
2424

2525

2626
class LimitsResource(SyncAPIResource):
27-
"""
28-
Create and manage projects for resource isolation within an organization.
29-
When projects are disabled for the organization, project operations return
30-
`404` with code `projects_disabled`.
31-
"""
27+
"""Create and manage projects for resource isolation within an organization."""
3228

3329
@cached_property
3430
def with_raw_response(self) -> LimitsResourceWithRawResponse:
@@ -150,11 +146,7 @@ def update(
150146

151147

152148
class AsyncLimitsResource(AsyncAPIResource):
153-
"""
154-
Create and manage projects for resource isolation within an organization.
155-
When projects are disabled for the organization, project operations return
156-
`404` with code `projects_disabled`.
157-
"""
149+
"""Create and manage projects for resource isolation within an organization."""
158150

159151
@cached_property
160152
def with_raw_response(self) -> AsyncLimitsResourceWithRawResponse:

0 commit comments

Comments
 (0)