Repository navigation
feat(browser): the action log credits Playwright MCP's commands to the browser_* call they serve (FD-5503) - #630
Merged
earakely-scale merged 3 commits intoNov 12, 2026
Conversation
…e browser_* call they serve (FD-5503) browser/v1 gains calls/begin and calls/end, which a driver sends around an agent's tool call it serves through a CDP user's connections. The relay credits that user's commands to the call open at the time, or to every one open when calls overlap, as for, and the tab events they cause carry it too. The call's entry takes the tab its commands acted on and keeps what it typed only once each typing command of its own found no password field focused. The page driver brackets each browser_* call so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A call's entry in the browser's log was bounded by the call's own limits, but not the wait for the session lock while another caller's Playwright MCP starts, so a call within every limit could outlast its entry and lose its credit. The whole call is bounded now, from when it asks for its session, and the browser waits that and the closing request's time. A session whose opening is given up on is closed rather than left half open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
earakely-scale
deleted the
edgararakelyan/fd-5503-m859-the-action-log-credits
branch
November 12, 2026 02:32
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
M8.59 (FD-5503). The browser's action log (M8.19) now credits the
browser_*tools (M8.8) to the agent that called them.browser_*call is an entry of its own, as a page tool's call is, giving:for, and so do the tab events those commands cause.Before this, Playwright MCP's commands were logged only as
who: playwright-mcp, naming no agent or tool call, and the call itself had no entry.What changes
browser/v1(agentenv_protocol.website_browser)calls/begin {user, acts?, within_s?}, framework-only, is sent with the agent's call in theAgentEnv-Tool-Callheader, and the role inAgentEnv-Role. It begins the call's entry (via: "mcp",who,tool,call, with noop) and answers with itsentry.calls/end {entry, ok, error?}ends the call. The entry is written with:ok, anderrorwhen it failedargswithin_sis written as never said to have ended, and is credited no more. This covers a driver that is killed mid-call.UNLOGGED_OPS.The relay
"for": <that call's entry>. When several calls are open at once, it gets"for": [<entries>], rather than a guess.for.browser_type'stext,browser_press_key'skeyandbrowser_fill_form's field values.The page driver
browser_*call goes betweencalls/beginandcalls/endfor the userplaywright-mcp, within Playwright MCP's own bound (360 s).readOnlyHint.cancelled.Decisions (FD-5503, in chat with Edgar)
whoon a credited command stays the connection's user (playwright-mcp), withforadded, rather than being rewritten to the agent's role.whokeeps one meaning across every CDP entry.Test plan
calls/beginandcalls/endwrite the call's entry from its header and role, with the URL's credential redacted. Neither op is an entry of its own. A begin without the header is refused, and so is an end for an unknown entry.text,key,fields[].value) keep only their length while a password field has focus.tst/unit/drivers, 1,599 passed, 1 skipped.browser_computer_test.py, 29 of 29. The Playwright MCP test now reads the browser's log after itsbrowser_*drive. It checks:browser_snapshot,browser_type,browser_navigate,browser_clickandbrowser_handle_dialogbrowser_type's entry withwho: defaultand its text keptPage.navigate, everyInput.dispatchMouseEventandPage.handleJavaScriptDialogeachfortheir callforbrowser_navigateUntil #628 merges, that test can rarely time out at
browser_evaluate.Docs
The user guide's browser page should cover:
browser_*call's entry in the action logforon CDP commands and tab events🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge; no new actionable issues were found.Summary
Credits Playwright MCP commands and their tab events to the agent’s
browser_*call.No new issues found. The earlier timeout concern is addressed: the whole call includes the session-lock wait, and the log entry allows another 30 seconds for the closing request.
Diagram
Reviews (3) · Last reviewed commit: "test(browser): the browser's card lists ..." · Reviewed by Greptile