Skip to content

Conversation

@seanmcguire12
Copy link
Member

@seanmcguire12 seanmcguire12 commented Dec 4, 2025

why

  • to show the full error stack

what changed

  • added causedBy to the stagehand default error class

test plan


Summary by cubic

Adds causedBy to StagehandDefaultError to retain the underlying error and make full stacks easier to debug.

  • New Features
    • StagehandDefaultError now sets causedBy when constructed with Error or StagehandError.
    • Keeps existing message format; no breaking changes.

Written for commit ce21a92. Summary will update automatically on new commits.

@changeset-bot
Copy link

changeset-bot bot commented Dec 4, 2025

🦋 Changeset detected

Latest commit: ce21a92

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

@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 3 files

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Dec 4, 2025

Greptile Overview

Greptile Summary

Added causedBy property to StagehandDefaultError to preserve the complete error chain when wrapping errors with user-friendly messages.

  • Enhanced error traceability by storing original error in causedBy property
  • Allows debugging tools and error handlers to access the full error stack
  • Maintains backward compatibility as property is optional
  • Includes minor whitespace cleanup in aisdk example

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • Simple, well-scoped change that adds an optional property for error chain preservation without breaking existing behavior or introducing new logic paths
  • No files require special attention

Important Files Changed

File Analysis

Filename Score Overview
types/stagehandErrors.ts 5/5 Added causedBy property to preserve original error chain
examples/external_clients/aisdk.ts 5/5 Removed unnecessary blank line (whitespace cleanup)
.changeset/swift-hands-divide.md 5/5 Added changeset documenting the error chain enhancement

Sequence Diagram

sequenceDiagram
    participant Code as Application Code
    participant Error as Original Error
    participant SDE as StagehandDefaultError
    participant Stack as Error Stack

    Code->>Error: throws unknown error
    Error->>SDE: new StagehandDefaultError(err)
    SDE->>SDE: Check if Error instance
    SDE->>SDE: Set this.causedBy = error
    SDE->>SDE: Wrap with user-friendly message
    SDE->>Stack: Preserve original error chain
    SDE->>Code: throw wrapped error with causedBy
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

2 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@seanmcguire12 seanmcguire12 merged commit 223e158 into v2 Dec 5, 2025
15 of 16 checks passed
@github-actions github-actions bot mentioned this pull request Dec 5, 2025
seanmcguire12 pushed a commit that referenced this pull request Dec 5, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to v2, this PR will
be updated.


# Releases
## @browserbasehq/[email protected]

### Patch Changes

- [#1275](#1275)
[`a372b3c`](a372b3c)
Thanks [@miguelg719](https://github.com/miguelg719)! - Remove process
exit on signal handler

- [#1143](#1143)
[`fc06d40`](fc06d40)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add logger
param to external aisdk client

- [#1137](#1137)
[`2dbac99`](2dbac99)
Thanks [@miguelg719](https://github.com/miguelg719)! - Add haiku 4.5
computer use support

- [#1116](#1116)
[`b419fc3`](b419fc3)
Thanks [@tkattkat](https://github.com/tkattkat)! - patch stagehand agent
api support

- [#1362](#1362)
[`f26333e`](f26333e)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - use CDP to
find scrollable nodes instead of injected JS

- [#1125](#1125)
[`cbff109`](cbff109)
Thanks [@tkattkat](https://github.com/tkattkat)! - update cua agents key
& system prompt handling

- [#1363](#1363)
[`223e158`](223e158)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add
causedBy to StagehandDefaultError

- [#1123](#1123)
[`f426ba5`](f426ba5)
Thanks [@tkattkat](https://github.com/tkattkat)! - Add pageUrl &
timestamp to agent actions

- [#1365](#1365)
[`2f71b02`](2f71b02)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - export
getAccessibilityTree()

- [#1366](#1366)
[`e098b0d`](e098b0d)
Thanks [@miguelg719](https://github.com/miguelg719)! - Update finding
scrollable nodes using CDP

## @browserbasehq/[email protected]

### Patch Changes

- Updated dependencies
\[[`a372b3c`](a372b3c),
[`fc06d40`](fc06d40),
[`2dbac99`](2dbac99),
[`b419fc3`](b419fc3),
[`f26333e`](f26333e),
[`cbff109`](cbff109),
[`223e158`](223e158),
[`f426ba5`](f426ba5),
[`2f71b02`](2f71b02),
[`e098b0d`](e098b0d)]:
    -   @browserbasehq/[email protected]

## @browserbasehq/[email protected]

### Patch Changes

- Updated dependencies
\[[`a372b3c`](a372b3c),
[`fc06d40`](fc06d40),
[`2dbac99`](2dbac99),
[`b419fc3`](b419fc3),
[`f26333e`](f26333e),
[`cbff109`](cbff109),
[`223e158`](223e158),
[`f426ba5`](f426ba5),
[`2f71b02`](2f71b02),
[`e098b0d`](e098b0d)]:
    -   @browserbasehq/[email protected]


<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Publish Stagehand 2.5.3 and bump evals (1.1.3) and examples (1.0.12).
Improves stability, CDP-based scrolling, and adds better logging and
error context.

- **New Features**
  - Haiku 4.5 computer-use support.
  - Export getAccessibilityTree().
  - Logger param for the external AISDK client.
  - Page URL and timestamp on agent actions.
  - causedBy on StagehandDefaultError for richer error context.

- **Bug Fixes**
  - Detect scrollable nodes via CDP (removed injected JS).
  - Refined CDP scrollable node detection.
  - Do not exit the process on signal handler.
  - Patch agent API support and update CUA key/system prompt handling.

<sup>Written for commit 6b62062.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.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