Repository navigation
fix: keep browser tools when resuming a task - #2109
Merged
Merged
Conversation
Douglasymlai
marked this pull request as ready for review
October 25, 2026 17:33
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.
Pull Request
Related Issue
N/A — maintainer-directed repair; no linked issue required for this PR.
Description
Problem
Resume sends no new message, so the browser-intent check had nothing to read. A task that had been using the browser could restart without its browser tools, and the agent then asked the user to check the page.
Cause
The decision to reconnect the embedded browser looked only at the newly submitted message. On Resume that message is empty, so no Eigent-owned browser target was sent and the browser tools were left out of the resumed attempt.
Fix
GET /runs/{id}?include_browser_evidence=truereportsused_browser. Only Resume asks for it, so other run-summary readers skip the extra lookup.Testing Evidence (REQUIRED)
Focused frontend suites (chat store, browser runtime, failure facts, run-state reconciliation, interrupted-run banner): 350 passed. They cover:
Focused backend tests (run controller, run control API, agent model): 87 passed. The run-journal suite gave 328 passed, 1 skipped.
Removing the timeout makes the three stalled-lookup tests fail. Removing the recorded-use hint makes the two recorded-use tests fail.
Type checking, focused ESLint/Prettier, Ruff and
git diff --checkpassed.Real Electron fixture: the production WebViewManager, intent check and resolver returned an exact owned target for original intent and for recorded browser use; destroying the view returned no targets.
A development Electron run with a real model passed Quit → relaunch → Resume on a browser task. Both attempts had the same 62 tools, including the browser tools, and the resumed attempt read a page heading changed while the app was closed. That run was on the build before the final refactor (which moved the browser-use lookup behind the query flag and reworded the unavailable-browser instruction). It was not repeated after the refactor.
I have included human-verified testing evidence in this PR.
This PR includes frontend/UI changes, and I attached screenshot(s) or screen recording(s).
No frontend/UI changes in this PR.
What is the purpose of this pull request?
Contribution Guidelines Acknowledgement