Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.123.0"
".": "0.124.0"
}
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## [0.124.0](https://github.com/kernel/kernel-python-sdk/compare/v0.123.0...v0.124.0) (2026-10-13)


### Features

* Accept intent creation without a fixed status ([e6e016a](https://github.com/kernel/kernel-python-sdk/commit/e6e016a5cea493c505b16a05cb8ad2fa6ed9f13b))
* Complete Visa vault verification and transaction reporting ([fc4b0de](https://github.com/kernel/kernel-python-sdk/commit/fc4b0de79e3242361ef7b11acbd2cbaeb058265e))


### Bug Fixes

* seal browser pool acquire SDK results ([4d81af2](https://github.com/kernel/kernel-python-sdk/commit/4d81af2b6103571b59cd1bb520eb85e28488b51c))

## [0.123.0](https://github.com/kernel/kernel-python-sdk/compare/v0.122.0...v0.123.0) (2026-10-09)


Expand Down
2 changes: 2 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,7 @@ from kernel.types.vaults import (
CardVaultItemSpec,
CardVaultItemState,
CollectVaultItemOperationRequest,
ConfirmTransactionVaultItemOperationRequest,
CredentialAccountVaultItem,
CredentialAccountVaultItemRequest,
CredentialCollectionAction,
Expand Down Expand Up @@ -610,6 +611,7 @@ from kernel.types.vaults import (
OnePasswordRecoverVaultItemOperationRequest,
OnePasswordRequestAccessVaultItemOperationRequest,
PrepareCheckoutVaultItemOperationRequest,
RestartVerificationVaultItemOperationRequest,
VaultCardAliases,
VaultCardFillField,
VaultCheckoutContext,
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kernel"
version = "0.123.0"
version = "0.124.0"
description = "The official Python library for the kernel API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
9 changes: 8 additions & 1 deletion src/kernel/_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import httpx
import pydantic

from ._types import NoneType
from ._types import NoneType, NoContentAsNone
from ._utils import is_given, extract_type_arg, is_annotated_type, is_type_alias_type, extract_type_var_from_base
from ._models import BaseModel, is_basemodel
from ._constants import RAW_RESPONSE_HEADER, OVERRIDE_CAST_TO_HEADER
Expand Down Expand Up @@ -185,6 +185,13 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
return cast(R, None)

response = self.http_response
if (
response.status_code == 204
and to is None
and isinstance(origin, type)
and issubclass(origin, NoContentAsNone)
):
return cast(R, None)
if cast_to == str:
return cast(R, response.text)

Expand Down
6 changes: 6 additions & 0 deletions src/kernel/_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@
Query = Mapping[str, object]
Body = object
AnyMapping = Mapping[str, object]


class NoContentAsNone:
pass


ModelT = TypeVar("ModelT", bound=pydantic.BaseModel)
_T = TypeVar("_T")

Expand Down
2 changes: 1 addition & 1 deletion src/kernel/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "kernel"
__version__ = "0.123.0" # x-release-please-version
__version__ = "0.124.0" # x-release-please-version
4 changes: 2 additions & 2 deletions src/kernel/resources/browser_pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ def acquire(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> BrowserPoolAcquireResponse:
) -> Optional[BrowserPoolAcquireResponse]:
"""Long-polling endpoint to acquire a browser from the pool.

Returns immediately
Expand Down Expand Up @@ -1199,7 +1199,7 @@ async def acquire(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> BrowserPoolAcquireResponse:
) -> Optional[BrowserPoolAcquireResponse]:
"""Long-polling endpoint to acquire a browser from the pool.

Returns immediately
Expand Down
8 changes: 0 additions & 8 deletions src/kernel/resources/browsers/playwright/playwright.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,6 @@ def execute(
executors are not removed automatically while the browser runs; when it shuts
down, they are removed and their tabs closed.

A named call to a browser whose image predates executors fails with 400 instead
of running on the active tab; calls without 'executor' keep working on every
image.

Args:
code: TypeScript/JavaScript code to execute. The code has access to 'page', 'context',
and 'browser' variables. It runs within a function, so you can use a return
Expand Down Expand Up @@ -244,10 +240,6 @@ async def execute(
executors are not removed automatically while the browser runs; when it shuts
down, they are removed and their tabs closed.

A named call to a browser whose image predates executors fails with 400 instead
of running on the active tab; calls without 'executor' keep working on every
image.

Args:
code: TypeScript/JavaScript code to execute. The code has access to 'page', 'context',
and 'browser' variables. It runs within a function, so you can use a return
Expand Down
Loading
Loading