From 6adbf10a729e56c2e082707ace650fcbe04ff905 Mon Sep 17 00:00:00 2001 From: Aladdin Date: Thu, 20 Aug 2026 19:09:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(control-browser):=201.3.0=20=E2=80=94=20reg?= =?UTF-8?q?istration-lag=20playbook=20+=20page=20identity=20via=20tabs=5Fl?= =?UTF-8?q?ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From a real trace (agent told the user to run agent-shell when mcp__browser__page_snapshot briefly failed "not found" after a bridge reconnect, then misidentified the page): - New "Stop" section: "not found in registry" right after (re)connect is transient registration lag — retry next turn or check web_status; NEVER conclude the browser is gone or mention starchild agent-shell (unrelated laptop channel). - New section: "what page is this?" needs only tabs_list (title + url + activeTabId), no snapshot — works for chrome:// pages too. Snapshot is for content, not identity. --- control-browser/SKILL.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/control-browser/SKILL.md b/control-browser/SKILL.md index e82ecb12..98ce66fb 100644 --- a/control-browser/SKILL.md +++ b/control-browser/SKILL.md @@ -1,6 +1,6 @@ --- name: control-browser -version: 1.2.0 +version: 1.3.0 description: | Control the user's Chrome browser via mcp__browser__ tools: snapshots, clicks, typing, batch list operations, multi-step flows, and tab lifecycle. @@ -87,7 +87,27 @@ Core loop: **Refs are invalidated by navigation.** After any navigation, reload, or observed page change, take a fresh `page_snapshot` before clicking or typing. -Never reuse a `ref` across a navigation boundary. + +## Stop: `mcp__browser__*` "not found in registry" ≠ browser is gone + +Right after the extension (re)connects, tool registration can lag a turn — +the call fails with "not found" while the browser IS connected. Never +conclude "no browser is connected" or "I can't see your screen" from this +error alone, and NEVER tell the user to run `starchild agent-shell` — the +laptop/agent-shell channel has nothing to do with browser tools. The +recovery path is exactly one step: call `web_status` (or retry the same +tool once on the next turn — registration self-heals via the per-turn +resync). Only if `web_status` says the bridge is down do you tell the +user to open/enable the extension. + +## Identifying "what page is this?" — tabs_list is enough + +When the user asks what page/site they (or a tab) are on, do NOT take a +snapshot: `tabs_list` already returns every tab's `title` and `url`, and +`activeTabId` marks the one they're looking at. Answer from that — one +tool call, no snapshot, and it works even for internal pages +(`chrome://…`) that cannot be snapshotted. Only snapshot when the user +needs page CONTENT (text, elements), not page identity. ## Tool quick reference