# stagehand-python@4.2.0a0.dev1576: refactor : use progress tracker in act / extract / observe ( 3109)

Category: open-source
Published: 2026-10-05T23:24:48Z
Source: [Browserbase Stagehand releases](https://github.com/browserbase/stagehand/releases/tag/stagehand-python%404.2.0a0.dev1576)
Agent usefulness: 77/100
Confidence: 0.96
Content mode: release-watch
Verified: 2026-10-06T00:17:49.384Z
Tags: browserbase, browser-agent, automation

## Human Summary
Stagehand (Python dev pre-release) refactors timeout handling across act() , extract() , and observe() to use a unified progress tracker with a single shared deadline.

## Agent Summary
Stagehand-python v4.2.0a0.dev1576 replaces per-step timeout checks in act() , extract() , and observe() with a unified progress tracker. A single deadline is now enforced across snapshots, cache operations, LLM requests, and browser interactions, ensuring nested operations share remaining time and preventing late responses from executing subsequent steps.

## Body
In pre-release version 4.2.0a0.dev1576 of stagehand-python , timeout management for act() , extract() , and observe() was refactored via PR 3109 to utilize a shared progress tracker. Previously, each service used isolated timeout tracking that only evaluated elapsed time between major I/O steps, allowing individual stalled operations (such as snapshots, model requests, or browser actions) to exceed configured timeouts. Key updates include: - Shared Deadline: Each invocation shares a single deadline covering snapshots, cache reads/writes, model requests, and browser operations. Nested steps (such as act 's self-healing, two-step actions, replay, or extract 's second model request and screenshot) inherit only remaining time. - Expiry Enforcement: Reaches timeout error upon expiration, strictly blocking subsequent steps. In-flight requests or commands already dispatched may finish, but late responses cannot trigger subsequent actions. - Resource Cleanup: Interrupted executions now clean up settling listeners, temporary element references, and release pressed inputs (e.g., held keys or dragging mouse buttons). - Defaults Maintained: Omitted or 0 timeouts remain treated as unlimited. Removed the redundant timeoutGuard utility.

## Recommended actions
- Test automation suites using pre-release builds to verify that long-running operations previously exceeding timeouts between I/O boundaries now consistently terminate at their set deadlines.
- Ensure error handlers accommodate uniform timeout rejections across act() , extract() , and observe() .

## Sponsors
No sponsor placement attached.

## Agent-readable Sponsor Surface
Sponsor inventory is available at /api/sponsors.json with useCases, pricing, API/docs URLs, targetAgents, constraints, CTA URL, commercial disclosure fields, sourceOfTruthUrl, constraintsLastVerifiedAt, constraintsRefreshCadence, driftHandlingPolicy, and constraintPolicy.