Skip to content

Conversation

@monadoid
Copy link
Contributor

@monadoid monadoid commented Jan 8, 2026

why

Addressing some of the notion comments for stainless python.

what changed

  • Updated examples + readme to show async python examples instead
  • Added a helper for calling session methods without passing session ID each time.
  • Docs only show using uv

test plan


Summary by cubic

Adds sessions.create() that returns a Session/AsyncSession bound to a session_id, so you can call session methods without passing id on every request. Moves examples and docs to AsyncStagehand and fixes session_id state issues.

  • New Features

    • client.sessions.create(...) wraps start and returns a bound Session/AsyncSession.
    • Session helpers expose navigate, observe, act, extract, execute, end (sync and async).
    • Stagehand.sessions now uses SessionsResourceWithHelpers to include create().
    • Updated README and examples to AsyncStagehand and the new create() pattern.
    • Added tests verifying create returns a bound session and methods work.
  • Migration

    • Replace client.sessions.start(...) with client.sessions.create(...).
    • Use the returned session: session.navigate(...), session.act(...), session.extract(...), session.execute(...), session.end().
    • Stop passing id= on each call.

Written for commit ba50c85. Summary will update on new commits.

@monadoid monadoid marked this pull request as ready for review January 9, 2026 22:37
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 9 files

@monadoid monadoid changed the title Added session create helper Addressing stainless notion doc comments Jan 9, 2026
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

3 issues found across 2 files (changes from recent commits).

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="README.md">

<violation number="1" location="README.md:232">
P1: User-facing installation command requires uv, which most users won't have installed. This should use standard pip for general usage instructions.</violation>
</file>

<file name="CONTRIBUTING.md">

<violation number="1" location="CONTRIBUTING.md:94">
P2: Use `uv pip install` instead of `uv run pip install`. The correct uv syntax for pip operations is `uv pip <command>`, not `uv run pip <command>`.</violation>

<violation number="2" location="CONTRIBUTING.md:112">
P2: Use `uv pip install` instead of `uv run pip install`. The correct uv syntax for pip operations is `uv pip <command>`, not `uv run pip <command>`.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@monadoid monadoid changed the title Addressing stainless notion doc comments Addressing (some) stainless notion doc comments Jan 9, 2026
monadoid added a commit to browserbase/stagehand that referenced this pull request Jan 10, 2026
# why
Once [this PR](browserbase/stagehand-python#264)
is merged into core, we no longer need to send `x-language` and
`x-sdk-version` headers in our generated SDKs, since they send the
`x-stainless` equivalents automatically.
# what changed
Thus, this PR removes these from the openapi spec, so that the generated
clients will stop having these fields.
# test plan
Will ensure that new generated sdks work successfully.

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Removed x-language and x-sdk-version headers from the OpenAPI spec and
server types, since generated SDKs now send x-stainless headers
automatically. This simplifies SDK generation and removes redundant
headers.

- **Migration**
- Regenerate SDKs after the core change that adds x-stainless headers is
merged.
- Stop sending x-language and x-sdk-version in clients; rely on
x-stainless headers.

<sup>Written for commit df65fe9.
Summary will update on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
@monadoid monadoid merged commit 8c3a33b into stainless Jan 10, 2026
7 of 8 checks passed
miguelg719 added a commit that referenced this pull request Jan 13, 2026
* Initial commit

* initial commit

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* chore(internal): add missing files argument to base client

* codegen metadata

* feat(api): tweak branding and fix some config fields

* release: 0.1.0 (#250)

* feat(api): manual updates

* feat(api): manual updates

* codegen metadata

* codegen metadata

* feat(api): manual updates

* codegen metadata

* feat(api): manual updates

* feat(api): manual updates

* codegen metadata

* feat(api): manual updates

* codegen metadata

* feat(api): manual updates

* feat(api): manual updates

* feat(api): manual updates

* codegen metadata

* feat(api): manual updates

* chore: speedup initial import

* refactor(internal): switch from rye to uv

* feat(api): manual updates

* feat(api): manual updates

* feat(api): manual updates

* feat(api): manual updates

* feat(api): manual updates

* feat(api): manual updates

* codegen metadata

* feat(api): manual updates

* feat(api): manual updates

* fix: use async_to_httpx_files in patch method

* chore(internal): add `--fix` argument to lint script

* feat(api): manual updates

* docs: add more examples

* feat: [STG-1053] [server] Use fastify-zod-openapi + zod v4 for openapi generation

* chore: update SDK settings

* chore: update SDK settings

* release: 0.1.0

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>

* release: 0.2.0 (#258)

* feat(api): manual updates

* codegen metadata

* docs: prominently feature MCP server setup in root SDK readmes

* feat: Added optional param to force empty object

* release: 0.2.0

* Added x-language and minimal agent example

* lint fix

* Added full example + updated readme

* Added local binary logic

* Added empty body logic for /end endpoint

* lint fix

* Added bundling logic for wheels

* lint fix

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
Co-authored-by: monadoid <sam.finton@gmail.com>

* release: 0.2.1 (#259)

* fix: specify pnpm version 9 in publish workflow

* release: 0.2.1

---------

Co-authored-by: monadoid <sam.finton@gmail.com>
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>

* release: 0.2.2 (#260)

* fix: specify pnpm version 9 in publish workflow

* fix: correct binary names and update macOS runner in publish workflow

* release: 0.2.2

---------

Co-authored-by: monadoid <sam.finton@gmail.com>
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>

* release: 0.2.3 (#261)

* fix: use macos-15-intel runner for darwin-x64 builds

* release: 0.2.3

---------

Co-authored-by: monadoid <sam.finton@gmail.com>
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>

* release: 0.2.4 (#262)

* codegen metadata

* Added x_sdk_version headers + resolved api path

* docs: update README with SDK version headers

* release: 0.2.4

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
Co-authored-by: monadoid <sam.finton@gmail.com>

* Addressing (some) stainless notion doc comments (#264)

* Added session create helper

* Using existing types

* Showing only async python examples

* docs show using uv

* Added local example

* lint fix

* Made frameId optional (#266)

* Made frameId optional

* Added link to local_example in readme.

* Minimal working byob example

* Working bring-your-own-browser-driver example interleaving playwright with stagehand.

* Added logging example (#267)

* Add back in x-sent-at so that start_time and end_time work again (#268)

* Updated readme to mention installing chrome / providing CHROME_PATH (#269)

* release: 0.3.0 (#265)

* feat: Removed requiring x-language and x-sdk-version from openapi spec

* feat: Using provider/model syntax in modelName examples within openapi spec

* release: 0.3.0

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>

* Fix download-binary script to pull latest version of stagehand-server

* Using proper x-sent-at timestamp

* make AsyncSession and Session subclass SessionStartResponse for compat with autogen sdk docs (#271)

* remove x-language and x-sdk-version (#272)

* remove x-language and x-sdk-version

* linting

* browserbase headers not required when server=local and browser=local

* release: 0.3.1 (#270)

* codegen metadata

* release: 0.3.1

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>

* Renamed local_binary_path to _local_stagehand_binary_path, making it internal and clarifying the name

* MODEL_API_KEY is the public facing env, but either MODEL_API_KEY or OPENAI_API_KEY can be used - one is required to be set.

* Removed frame_id empty string passing

* allow passing chrome path as init param not only env var

* Standardize README with Stagehand branding (#275)

- Replace README header with standardized Stagehand branding
- Update docs URL to /v3/sdk/python
- Add 'What is Stagehand?' and 'Why Stagehand?' sections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix media URLs to use absolute GitHub paths (#276)

* Standardize README with Stagehand branding

- Replace README header with standardized Stagehand branding
- Update docs URL to /v3/sdk/python
- Add 'What is Stagehand?' and 'Why Stagehand?' sections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix media URLs to use absolute GitHub paths

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix install command

* Added a minimal playwright Page helper (#274)

* Update README.md (#278)

* release doctor main

---------

Co-authored-by: stainless-sdks[bot] <167585319+stainless-sdks[bot]@users.noreply.github.com>
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
Co-authored-by: monadoid <sam.finton@gmail.com>
Co-authored-by: Sam F <43347795+monadoid@users.noreply.github.com>
Co-authored-by: Nick Sweeting <github@sweeting.me>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants