Skip to content

Conversation

@miguelg719
Copy link
Collaborator

@miguelg719 miguelg719 commented Jan 13, 2026

why

what changed

test plan


Summary by cubic

Removed legacy x-language and x-sdk-version headers from session start/end APIs to match the backend and reduce unused params. Also fixed Pydantic init order in Session/AsyncSession and added dotenv for local development.

  • Refactors

    • Removed x_language and x_sdk_version from sessions_helpers.create() (sync/async) and Session/AsyncSession.end().
    • Call super().init() first in Session and AsyncSession to properly initialize Pydantic internals.
  • Dependencies

    • Added dotenv>=0.9.9 to dev dependencies.

Written for commit 8a28a35. Summary will update on new commits.

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.

1 issue found across 4 files

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="uv.lock">

<violation number="1" location="uv.lock:1410">
P2: The `dotenv` package being added to production dependencies is a wrapper package around `python-dotenv`, not the actual implementation. The project already depends on `python-dotenv>=1.0.0`. Using `dotenv` instead of `python-dotenv` directly adds unnecessary indirection and could cause confusion. If this dependency is needed for dev purposes only, it should not be in `requires-dist` (which makes it a production dependency). Consider using `python-dotenv` directly instead.</violation>
</file>

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

uv.lock Outdated
{ name = "aiohttp", marker = "extra == 'aiohttp'" },
{ name = "anyio", specifier = ">=3.5.0,<5" },
{ name = "distro", specifier = ">=1.7.0,<2" },
{ name = "dotenv", specifier = ">=0.9.9" },
Copy link

@cubic-dev-ai cubic-dev-ai bot Jan 13, 2026

Choose a reason for hiding this comment

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

P2: The dotenv package being added to production dependencies is a wrapper package around python-dotenv, not the actual implementation. The project already depends on python-dotenv>=1.0.0. Using dotenv instead of python-dotenv directly adds unnecessary indirection and could cause confusion. If this dependency is needed for dev purposes only, it should not be in requires-dist (which makes it a production dependency). Consider using python-dotenv directly instead.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At uv.lock, line 1410:

<comment>The `dotenv` package being added to production dependencies is a wrapper package around `python-dotenv`, not the actual implementation. The project already depends on `python-dotenv>=1.0.0`. Using `dotenv` instead of `python-dotenv` directly adds unnecessary indirection and could cause confusion. If this dependency is needed for dev purposes only, it should not be in `requires-dist` (which makes it a production dependency). Consider using `python-dotenv` directly instead.</comment>

<file context>
@@ -1386,6 +1407,7 @@ requires-dist = [
     { name = "aiohttp", marker = "extra == 'aiohttp'" },
     { name = "anyio", specifier = ">=3.5.0,<5" },
     { name = "distro", specifier = ">=1.7.0,<2" },
+    { name = "dotenv", specifier = ">=0.9.9" },
     { name = "httpx", specifier = ">=0.23.0,<1" },
     { name = "httpx-aiohttp", marker = "extra == 'aiohttp'", specifier = ">=0.1.9" },
</file context>

✅ Addressed in 8a28a35

@miguelg719 miguelg719 merged commit 531183c into stainless Jan 13, 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 <[email protected]>

* release: 0.2.1 (#259)

* fix: specify pnpm version 9 in publish workflow

* release: 0.2.1

---------

Co-authored-by: monadoid <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Fix media URLs to use absolute GitHub paths

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

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>

---------

Co-authored-by: Claude Sonnet 4.5 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Sam F <[email protected]>
Co-authored-by: Nick Sweeting <[email protected]>
Co-authored-by: Claude Sonnet 4.5 <[email protected]>
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