diff --git a/.release-please-manifest.json b/.release-please-manifest.json index ad502a4b..53079579 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.85.0" + ".": "0.86.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index e1475cae..fcd634ae 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 127 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7b03462454d6fa8390eaebc1b411d3e160501bf96abb93b75d38dfc382d4ce51.yml -openapi_spec_hash: ba55400aafb4759cc06ec139fe528dfc +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-3fc18876d59a47ed6993892cc5f69d7461fe2ca6a94fad43905677955a5adc55.yml +openapi_spec_hash: 75d990158aeb0dac3d3ef8da476e86b9 config_hash: 77ee715aa17061166f9a02b264a21b8d diff --git a/CHANGELOG.md b/CHANGELOG.md index fc63ed28..b177e1d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.86.0 (2026-08-03) + +Full Changelog: [v0.85.0...v0.86.0](https://github.com/kernel/kernel-python-sdk/compare/v0.85.0...v0.86.0) + +### Features + +* Harden managed auth verification and login recovery ([1d83850](https://github.com/kernel/kernel-python-sdk/commit/1d83850b39851ccfe34a229e2489d834609ffeeb)) +* Report the unified concurrency ceiling from the org limits endpoint ([63775d8](https://github.com/kernel/kernel-python-sdk/commit/63775d8640b52f7b26e40343f870370166ab53dc)) + ## 0.85.0 (2026-07-29) Full Changelog: [v0.84.0...v0.85.0](https://github.com/kernel/kernel-python-sdk/compare/v0.84.0...v0.85.0) diff --git a/pyproject.toml b/pyproject.toml index 237d3ac1..9fbdf513 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kernel" -version = "0.85.0" +version = "0.86.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 e7464986..c2d399cd 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.85.0" # x-release-please-version +__version__ = "0.86.0" # x-release-please-version diff --git a/src/kernel/resources/projects/limits.py b/src/kernel/resources/projects/limits.py index f8447024..87227768 100644 --- a/src/kernel/resources/projects/limits.py +++ b/src/kernel/resources/projects/limits.py @@ -113,8 +113,7 @@ def update( unchanged. max_pooled_sessions: Deprecated: pooled browsers now count toward `max_concurrent_sessions`. Requests - that set this field are rejected with a 400 once the unified concurrency limit - is enabled for your organization. + that set this field are rejected with a 400. extra_headers: Send extra headers @@ -233,8 +232,7 @@ async def update( unchanged. max_pooled_sessions: Deprecated: pooled browsers now count toward `max_concurrent_sessions`. Requests - that set this field are rejected with a 400 once the unified concurrency limit - is enabled for your organization. + that set this field are rejected with a 400. extra_headers: Send extra headers diff --git a/src/kernel/types/auth/connection_follow_response.py b/src/kernel/types/auth/connection_follow_response.py index 7d6dfc63..7a0ecd05 100644 --- a/src/kernel/types/auth/connection_follow_response.py +++ b/src/kernel/types/auth/connection_follow_response.py @@ -94,6 +94,12 @@ class ManagedAuthStateEventField(BaseModel): observed_selector: Optional[str] = None """Selector for the visible field, when available.""" + replace_existing: Optional[bool] = None + """ + Whether the submitted value must replace an existing credential after explicit + rejection. + """ + required: Optional[bool] = None """Whether this field is required.""" diff --git a/src/kernel/types/auth/managed_auth.py b/src/kernel/types/auth/managed_auth.py index 73a4d48a..44e32270 100644 --- a/src/kernel/types/auth/managed_auth.py +++ b/src/kernel/types/auth/managed_auth.py @@ -148,6 +148,12 @@ class Field(BaseModel): observed_selector: Optional[str] = None """Selector for the visible field, when available.""" + replace_existing: Optional[bool] = None + """ + Whether the submitted value must replace an existing credential after explicit + rejection. + """ + required: Optional[bool] = None """Whether this field is required.""" diff --git a/src/kernel/types/projects/limit_update_params.py b/src/kernel/types/projects/limit_update_params.py index 8bfb2775..e8bd1b60 100644 --- a/src/kernel/types/projects/limit_update_params.py +++ b/src/kernel/types/projects/limit_update_params.py @@ -25,6 +25,5 @@ class LimitUpdateParams(TypedDict, total=False): max_pooled_sessions: Optional[int] """Deprecated: pooled browsers now count toward `max_concurrent_sessions`. - Requests that set this field are rejected with a 400 once the unified - concurrency limit is enabled for your organization. + Requests that set this field are rejected with a 400. """ diff --git a/src/kernel/types/projects/project_limits.py b/src/kernel/types/projects/project_limits.py index a7f5cd74..712e84c1 100644 --- a/src/kernel/types/projects/project_limits.py +++ b/src/kernel/types/projects/project_limits.py @@ -24,5 +24,5 @@ class ProjectLimits(BaseModel): max_pooled_sessions: Optional[int] = None """Deprecated: pooled browsers now count toward `max_concurrent_sessions`. - Always null once the unified concurrency limit is enabled for your organization. + Always null. """