Skip to content

Commit 2781384

Browse files
Merge pull request #158 from kernel/release-please--branches--main--changes--next
release: 0.93.0
2 parents 20d3bba + c9baddf commit 2781384

13 files changed

Lines changed: 127 additions & 15 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.92.0"
2+
".": "0.93.0"
33
}

CHANGELOG.md

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

3+
## [0.93.0](https://github.com/kernel/kernel-python-sdk/compare/v0.92.0...v0.93.0) (2026-08-19)
4+
5+
6+
### Features
7+
8+
* Add proxy_error to browser telemetry event schema ([5973ab6](https://github.com/kernel/kernel-python-sdk/commit/5973ab6c766ee31929a523e3ea21fb000bc6879a))
9+
* Bind managed auth submissions to interactions ([63fb060](https://github.com/kernel/kernel-python-sdk/commit/63fb0606910b17a99f7a584e425fbd77e2d562e5))
10+
* Harden canonical managed auth interactions ([3522fcb](https://github.com/kernel/kernel-python-sdk/commit/3522fcb9e70854ad2900585f5b37222e7f0e1b26))
11+
312
## [0.92.0](https://github.com/kernel/kernel-python-sdk/compare/v0.91.0...v0.92.0) (2026-08-17)
413

514

api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ from kernel.types.browsers import (
146146
BrowserPageNavigationEvent,
147147
BrowserPageNavigationSettledEvent,
148148
BrowserPageTabOpenedEvent,
149+
BrowserProxyErrorEvent,
149150
BrowserServiceCrashedEvent,
150151
BrowserSystemOomKillEvent,
151152
BrowserTelemetryCategoriesConfig,

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.92.0"
3+
version = "0.93.0"
44
description = "The official Python library for the kernel API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

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.92.0" # x-release-please-version
4+
__version__ = "0.93.0" # x-release-please-version

src/kernel/resources/auth/connections.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,7 @@ def submit(
530530
*,
531531
field_values: Dict[str, str] | Omit = omit,
532532
fields: Dict[str, str] | Omit = omit,
533+
interaction_id: str | Omit = omit,
533534
mfa_option_id: str | Omit = omit,
534535
selected_choice_id: str | Omit = omit,
535536
sign_in_option_id: str | Omit = omit,
@@ -552,6 +553,9 @@ def submit(
552553
553554
fields: Map of field name to value
554555
556+
interaction_id: Opaque interaction ID returned with canonical fields and choices. Required for
557+
canonical submissions.
558+
555559
mfa_option_id: The MFA method type to select (when mfa_options were returned)
556560
557561
selected_choice_id: Canonical choice ID selected by the user.
@@ -580,6 +584,7 @@ def submit(
580584
{
581585
"field_values": field_values,
582586
"fields": fields,
587+
"interaction_id": interaction_id,
583588
"mfa_option_id": mfa_option_id,
584589
"selected_choice_id": selected_choice_id,
585590
"sign_in_option_id": sign_in_option_id,
@@ -1143,6 +1148,7 @@ async def submit(
11431148
*,
11441149
field_values: Dict[str, str] | Omit = omit,
11451150
fields: Dict[str, str] | Omit = omit,
1151+
interaction_id: str | Omit = omit,
11461152
mfa_option_id: str | Omit = omit,
11471153
selected_choice_id: str | Omit = omit,
11481154
sign_in_option_id: str | Omit = omit,
@@ -1165,6 +1171,9 @@ async def submit(
11651171
11661172
fields: Map of field name to value
11671173
1174+
interaction_id: Opaque interaction ID returned with canonical fields and choices. Required for
1175+
canonical submissions.
1176+
11681177
mfa_option_id: The MFA method type to select (when mfa_options were returned)
11691178
11701179
selected_choice_id: Canonical choice ID selected by the user.
@@ -1193,6 +1202,7 @@ async def submit(
11931202
{
11941203
"field_values": field_values,
11951204
"fields": fields,
1205+
"interaction_id": interaction_id,
11961206
"mfa_option_id": mfa_option_id,
11971207
"selected_choice_id": selected_choice_id,
11981208
"sign_in_option_id": sign_in_option_id,

src/kernel/types/auth/connection_follow_response.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ class ManagedAuthStateEventField(BaseModel):
9797
id: str
9898
"""Stable field identifier for canonical submit."""
9999

100+
reason: Literal["missing", "rejected"]
101+
"""Why the field requires user input."""
102+
100103
ref: str
101104
"""Credential reference name to store the submitted value under."""
102105

@@ -112,12 +115,6 @@ class ManagedAuthStateEventField(BaseModel):
112115
observed_selector: Optional[str] = None
113116
"""Selector for the visible field, when available."""
114117

115-
replace_existing: Optional[bool] = None
116-
"""
117-
Whether the submitted value must replace an existing credential after explicit
118-
rejection.
119-
"""
120-
121118
required: Optional[bool] = None
122119
"""Whether this field is required."""
123120

@@ -224,6 +221,13 @@ class ManagedAuthStateEvent(BaseModel):
224221
hosted_url: Optional[str] = None
225222
"""URL to redirect user to for hosted login."""
226223

224+
interaction_id: Optional[str] = None
225+
"""Opaque identifier for the current canonical interaction.
226+
227+
Required when submitting fields or choices and changes for each new actionable
228+
pause.
229+
"""
230+
227231
live_view_url: Optional[str] = None
228232
"""Browser live view URL for debugging."""
229233

src/kernel/types/auth/connection_submit_params.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ class ConnectionSubmitParams(TypedDict, total=False):
1515
fields: Dict[str, str]
1616
"""Map of field name to value"""
1717

18+
interaction_id: str
19+
"""Opaque interaction ID returned with canonical fields and choices.
20+
21+
Required for canonical submissions.
22+
"""
23+
1824
mfa_option_id: str
1925
"""The MFA method type to select (when mfa_options were returned)"""
2026

src/kernel/types/auth/managed_auth.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,9 @@ class Field(BaseModel):
206206
id: str
207207
"""Stable field identifier for canonical submit."""
208208

209+
reason: Literal["missing", "rejected"]
210+
"""Why the field requires user input."""
211+
209212
ref: str
210213
"""Credential reference name to store the submitted value under."""
211214

@@ -221,12 +224,6 @@ class Field(BaseModel):
221224
observed_selector: Optional[str] = None
222225
"""Selector for the visible field, when available."""
223226

224-
replace_existing: Optional[bool] = None
225-
"""
226-
Whether the submitted value must replace an existing credential after explicit
227-
rejection.
228-
"""
229-
230227
required: Optional[bool] = None
231228
"""Whether this field is required."""
232229

@@ -504,6 +501,13 @@ class ManagedAuth(BaseModel):
504501
hosted_url: Optional[str] = None
505502
"""URL to redirect user to for hosted login (present when flow in progress)"""
506503

504+
interaction_id: Optional[str] = None
505+
"""Opaque identifier for the current canonical interaction.
506+
507+
Required when submitting fields or choices and changes for each new actionable
508+
pause.
509+
"""
510+
507511
last_auth_at: Optional[datetime] = None
508512
"""Deprecated alias for `last_auth_check_at`.
509513

src/kernel/types/browsers/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
from .browser_telemetry_config import BrowserTelemetryConfig as BrowserTelemetryConfig
4343
from .browser_cdp_connect_event import BrowserCdpConnectEvent as BrowserCdpConnectEvent
4444
from .browser_console_log_event import BrowserConsoleLogEvent as BrowserConsoleLogEvent
45+
from .browser_proxy_error_event import BrowserProxyErrorEvent as BrowserProxyErrorEvent
4546
from .computer_press_key_params import ComputerPressKeyParams as ComputerPressKeyParams
4647
from .computer_type_text_params import ComputerTypeTextParams as ComputerTypeTextParams
4748
from .f_create_directory_params import FCreateDirectoryParams as FCreateDirectoryParams

0 commit comments

Comments
 (0)