Skip to content

release: 0.57.0#103

Merged
stainless-app[bot] merged 7 commits into
mainfrom
release-please--branches--main--changes--next
May 22, 2026
Merged

release: 0.57.0#103
stainless-app[bot] merged 7 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app Bot commented May 19, 2026

Automated Release PR

0.57.0 (2026-05-22)

Full Changelog: v0.56.0...v0.57.0

Features

  • [kernel-1116] browser events api integration (bfd4043)
  • api: type can_reauth_reason as an enum on ManagedAuth (c9a6c75)
  • browsers: accept chrome_policy on POST /browsers (KERNEL-1216) (b1807a2)
  • EOL persistent browsers: openapi limits (253be85)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions


Note

Medium Risk
Medium risk due to new SSE streaming surface area and multiple breaking API removals/shape changes (deprecated persistent browser delete/persistence fields, project limit fields). Main logic is generated client code, but it changes request/response schemas and public SDK methods.

Overview
Bumps the SDK to 0.57.0 and updates the generated client to match a new OpenAPI spec.

Adds a new browsers.telemetry.stream() SSE endpoint (sync/async, raw/streaming variants) plus a large set of typed browser telemetry event models, and wires telemetry configuration into POST /browsers and PATCH /browsers/{id}.

Extends browser session APIs to accept/return chrome_policy overrides, updates docs/examples accordingly, and removes end-of-life persistent browser support (drops persistence fields, DELETE /browsers by persistent_id, and max_persistent_sessions project limit overrides) while refining some endpoint docstrings (e.g., browser pool start_url, proxy checks).

Reviewed by Cursor Bugbot for commit e81bfa4. Bugbot is set up for automated code reviews on this repo. Configure here.

@firetiger-agent
Copy link
Copy Markdown

Firetiger deploy monitoring skipped

This PR didn't match the auto-monitor filter configured on your GitHub connection:

Any PR that changes the kernel API. Monitor changes to API endpoints (packages/api/cmd/api/) and Temporal workflows (packages/api/lib/temporal) in the kernel repo

Reason: This is an automated release PR for the Python SDK, not a direct change to kernel API endpoints or Temporal workflows in the kernel repo.

To monitor this PR anyway, reply with @firetiger monitor this.

@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented May 19, 2026

🧪 Testing

To try out this version of the SDK:

pip install 'https://pkg.stainless.com/s/kernel-python/253be85c497bf65329c484e28a3732b3bd5b3208/kernel-0.56.0-py3-none-any.whl'

Expires at: Sun, 21 Jun 2026 16:49:25 GMT
Updated at: Fri, 22 May 2026 16:49:25 GMT

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 7365ae7 to f0b2dc9 Compare May 21, 2026 18:53
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f0b2dc9. Configure here.

if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
extra_headers = {"Accept": "text/event-stream", **(extra_headers or {})}
extra_headers = {**strip_not_given({"Last-Event-ID": last_event_id}), **(extra_headers or {})}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Omit sentinel not stripped by strip_not_given for header

High Severity

The last_event_id parameter defaults to omit (an Omit instance), but strip_not_given only removes values that are isinstance(value, NotGiven). Since Omit and NotGiven are unrelated classes, strip_not_given({"Last-Event-ID": omit}) keeps the key with the Omit sentinel object as its value instead of removing it. This causes a garbage Last-Event-ID header (the repr of the Omit object) to be sent on every telemetry stream request where the user doesn't explicitly provide last_event_id.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f0b2dc9. Configure here.

Copy link
Copy Markdown

@IlyaasK IlyaasK May 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked this on the PR branch and I believe this is a false positive.

strip_not_given({"Last-Event-ID": last_event_id}) does not remove omit, since strip_not_given only strips NotGiven. But request headers are later passed through _build_headers(...), which calls _merge_mappings(...) in src/kernel/_base_client.py. _merge_mappings(...) explicitly removes values that are instances of Omit before httpx.Headers is constructed.

I verified with httpx.MockTransport on this branch:

  • default sync client.browsers.telemetry.stream("browser_123") does not send Last-Event-ID
  • default async stream also does not send Last-Event-ID
  • last_event_id="42" correctly sends Last-Event-ID: 42

So the Omit sentinel does not leak onto the wire.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from f0b2dc9 to 465e53e Compare May 22, 2026 16:38
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 465e53e to 595485d Compare May 22, 2026 16:49
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 595485d to 07edad8 Compare May 22, 2026 19:17
@IlyaasK IlyaasK self-requested a review May 22, 2026 19:51
@IlyaasK
Copy link
Copy Markdown

IlyaasK commented May 22, 2026

review test

Copy link
Copy Markdown

@IlyaasK IlyaasK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@stainless-app stainless-app Bot merged commit 6ae8ac9 into main May 22, 2026
11 checks passed
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented May 22, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant