Skip to content

Conversation

@stainless-app
Copy link
Contributor

@stainless-app stainless-app bot commented Jan 26, 2026

Automated Release PR

3.5.0 (2026-01-27)

Full Changelog: v3.4.7...v3.5.0

Features

  • [feat]: add support for local caching of agent when using api (2) (b32a290)
  • add v3 integration tests matching cloud exactly (64847ef)
  • api: manual updates (24ede05)
  • api: manual updates (3dac57a)
  • client: add support for binary request streaming (ae2f587)
  • End endpoint cleanup (ba74968)
  • Include replay endpoint in stainless spec so SDK clients can get run metrics (fb4c3f9)
  • move Stainless compatibility transforms from gen-openapi.ts into stainless.yml (3f5b25c)
  • x-stainless-any fix, optional frame id, ModelConfigString fix (6d46ed2)

Chores


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

@stainless-app
Copy link
Contributor Author

stainless-app bot commented Jan 26, 2026

🧪 Testing

To try out this version of the SDK, run:

pip install 'https://pkg.stainless.com/s/stagehand-python/64847ef9e065b3fda3acaadcc87fa36c607d5ab1/stagehand_alpha-3.4.7-py3-none-any.whl'

Expires at: Thu, 26 Feb 2026 02:23:32 GMT
Updated at: Tue, 27 Jan 2026 02:23:32 GMT

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 24 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.
Architecture diagram
sequenceDiagram
    participant User as "User Code"
    participant SDK as "Stagehand SDK"
    participant Pydoll as "Pydoll (CDP Lib)"
    participant API as "Stagehand/BB API"
    participant Browser as "Remote Browser"

    note over User,Browser: Flow: Session Start & Mixed CDP/SDK Control

    %% 1. Session Initialization (Renamed & Auth Logic)
    User->>SDK: client.sessions.start(model="...", browser=...)
    note right of User: CHANGED: Replaces .create()<br/>(Legacy .create calls .start internally)

    SDK->>SDK: _requires_browserbase_credentials()
    alt CHANGED: Browser is local
        SDK->>SDK: Skip API Key/Project ID check
    else Browser is remote/default
        SDK->>SDK: Validate Browserbase Env Vars
    end

    SDK->>API: POST /sessions
    API->>Browser: Spawn Instance
    Browser-->>API: WebSocket Debug URL (wss://...)
    API-->>SDK: Session Data (id, cdp_url)
    SDK-->>User: Session Helper

    %% 2. Pydoll Attachment (New Feature/Example)
    note over User,Browser: NEW: Direct CDP Attachment (Pydoll Example)

    User->>User: Normalize cdp_url (wss -> ws)
    User->>Pydoll: Chrome().connect(cdp_url)
    Pydoll->>Browser: WebSocket Upgrade
    Browser-->>Pydoll: Connection Established
    
    Pydoll->>Browser: Target.attachToTarget(flatten=True)
    Browser-->>Pydoll: sessionId (CDP specific)

    User->>Pydoll: Navigate & Get Frame Tree
    Pydoll->>Browser: Page.navigate / Page.getFrameTree
    Browser-->>Pydoll: Frame Details
    Pydoll-->>User: Return frame_id

    %% 3. Hybrid SDK Action
    User->>SDK: session.observe(instruction="...", frame_id=frame_id)
    note right of User: NEW: SDK actions accept<br/>explicit frame_id
    
    SDK->>API: POST /sessions/{id}/observe
    note right of SDK: Request Body includes:<br/>{ "frameId": "..." }
    
    API->>Browser: Execute AI Action in specific frame
    Browser-->>API: Action Result
    API-->>SDK: JSON Response
    SDK-->>User: SessionObserveResponse
Loading

@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch from 8bfbd23 to 2aea9e1 Compare January 27, 2026 00:09
@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch from 2aea9e1 to f8e03bf Compare January 27, 2026 00:14
@stainless-app stainless-app bot changed the title release: 3.4.8 release: 3.5.0 Jan 27, 2026
@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch 2 times, most recently from 7b5c7b2 to f7726ac Compare January 27, 2026 00:15
@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch 2 times, most recently from fd25208 to dde6607 Compare January 27, 2026 00:26
@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch from dde6607 to 4d386ca Compare January 27, 2026 00:43
@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch from 4d386ca to fcd1b53 Compare January 27, 2026 02:23
@stainless-app stainless-app bot force-pushed the release-please--branches--stainless--changes--next branch from fcd1b53 to 396a905 Compare January 27, 2026 02:23
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