fix(evals): honor disabled harness observations - #2829
Open
shrey150 wants to merge 1 commit into
Open
Conversation
🦋 Changeset detectedLatest commit: 74ba0a9 The changes in this PR will be included in the next version bump. This PR includes changesets to release 11 packages
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 |
Signed-off-by: Shrey Pandya <shrey@browserbase.com>
shrey150
force-pushed
the
agent/eve-eval-observations
branch
from
August 27, 2026 05:20
28208f8 to
74ba0a9
Compare
shrey150
marked this pull request as ready for review
August 27, 2026 05:21
Contributor
There was a problem hiding this comment.
No issues found across 3 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Architecture diagram
sequenceDiagram
participant CLI as Eval CLI
participant Harness as External Harness
participant Adapter as Claude Code Adapter
participant Recorder as ObservationRecorder
participant Browser as Browserbase Session
Note over CLI,Browser: Claude Code Adapter Runtime Flow
CLI->>Harness: Launch external harness (claude_code)
Harness->>Adapter: prepareAgentMountAdapter(input)
Adapter->>Adapter: read env EVAL_HARNESS_OBSERVATIONS
alt EVAL_HARNESS_OBSERVATIONS=none
Note over Adapter: Observations disabled
Adapter->>Adapter: createObservationRecorder() returns undefined
Adapter-->>Harness: Adapter ready without recorder
Harness->>Browser: Run agent tool calls
Note over Harness,Browser: No per-step evidence capture - no accessibility tree scans
Browser-->>Harness: Clean tool results
else Observations enabled (default/all)
Note over Adapter: Observations enabled
Adapter->>Adapter: check running.captureEvidence exists
Adapter->>Recorder: new ObservationRecorder(captureEvidence)
Recorder-->>Adapter: Recorder instance
Adapter-->>Harness: Adapter ready with recorder
Harness->>Browser: Run agent tool calls
Browser-->>Harness: Tool result
Harness->>Recorder: record(step observation)
Recorder->>Browser: Capture accessibility tree evidence
Browser-->>Recorder: ProbeEvidence
Recorder-->>Harness: Indexed observation
end
Note over CLI,Harness: Fallback path when no capture provided
alt No captureEvidence available
Adapter->>Adapter: createObservationRecorder(undefined) returns undefined
Adapter-->>Harness: Adapter ready without recorder
end
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EVAL_HARNESS_OBSERVATIONS=nonewhen the Claude Code adapter mounts a browser toolWhy
This surfaced while comparing the Eve package in #2822 with the
claude_code+stagehand_codeOnline-Mind2Web baseline on live Browserbase sessions. The harness already exposes and testsEVAL_HARNESS_OBSERVATIONS=none, but the Claude Code adapter constructedObservationRecorderunconditionally whenever the tool exposedcaptureEvidence.That made the setting ineffective. On pages with stale or detached frames, every completed run-tool call started another accessibility-tree capture. The timeout returned control to the harness without cancelling the underlying capture, so the captures continued emitting
DOM.getFrameOwnerandAccessibility.getFullAXTreefailures and prevented a useful baseline run.Minimal reproduction before this change:
Despite
none, the adapter still invoked per-step evidence capture. After this change, the same five-case live run emitted no per-step stale-frame flood and all owned Browserbase sessions completed. A later normal-budget run exposed a separate unhandledpage.gotoRPC-timeout failure; that is not addressed here.This is a generic eval-harness fix rather than an Eve adapter. Eve's native eval runner already provides the package/tool-call evidence needed for #2822.
Validation
claude_code+stagehand_codeBrowserbase run with observations disabledNo changeset is included because the eval package is private.
Summary by cubic
Honors
EVAL_HARNESS_OBSERVATIONS=nonein the Claude Code adapter so the setting actually suppresses per-step evidence capture instead of always recording when the tool exposescaptureEvidence.ObservationRecorderunconditionally oncaptureEvidence, so thenonesetting had no effect and per-step accessibility-tree captures kept running.createObservationRecorder()that returnsundefinedwhen observations are disabled or no capture is provided.Written for commit 74ba0a9. Summary will update on new commits.