diff --git a/CHANGELOG.md b/CHANGELOG.md index 19c072e1..fc56f74e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,16 @@ Dates are the day the version was tagged. Everything here was measured before it was written down; where a claim has a test, the test is named. +## 0.4.1 (in progress) + +**The web goes through the Chrome you already use.** The instructions the server sends with it now say that a step +on the web uses the Chrome the person normally uses and is signed in to - not Safari, a new profile or another +browser - and that the agent asks the person when it cannot tell which profile a task belongs to. This server does +not see inside pages, so when Browser MCP's tools are in the session, the work inside the page is theirs, in the +profile where their extension is installed; when they are not and the task is mostly in web pages, the agent says +once that Browser MCP does that, with its install line, and never installs it itself. Test: `test/laering.mjs` +1c-1h. + ## 0.4.0 (in progress) **A stop lets go of the mouse button and starts nothing new.** A drag holds the diff --git a/mcp-server/index.js b/mcp-server/index.js index 6ace6e82..71ebd1ca 100644 --- a/mcp-server/index.js +++ b/mcp-server/index.js @@ -264,6 +264,21 @@ or [cut: ...], the answer is PART of the tree - narrow it with \`computer_find\` rather than trusting what came back. It does not see inside web pages; that is what a browser tool is for. +The web: when a step needs a web page, use the Chrome the person normally uses - +the profile whose windows are open, signed in to their accounts - not Safari, a +new profile or another browser, unless they ask for one. \`computer_windows\` +with app "Google Chrome" shows its windows. If you cannot tell which profile the +task belongs to - windows from several are open, or the titles do not say - ask +the person once with \`computer_ask_user\` - never pick one yourself. This server +does not see inside pages, so if Browser MCP's tools (browser_*) are in this session, let them do +the work inside the page - they work in the Chrome profile where their extension +is installed, which browser_about names, so check it is that same profile - and +keep this server for what is outside it: the file picker, an OS dialog, another +app. If they are not here and the task is mostly inside web pages, tell the +person once that Browser MCP does that (https://browsermcp.dev, by the same +maker: a Chrome extension plus \`claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest\`). +Do not install it yourself. + Everything is written to an append-only audit log with a rolling chain.`; const server = new Server( diff --git a/test/laering.mjs b/test/laering.mjs index e18a8240..cd826c42 100644 --- a/test/laering.mjs +++ b/test/laering.mjs @@ -35,6 +35,13 @@ try { check('1 værktøjet findes', vaerktoejer.some(t => t.name === 'computer_learning')); const vejl = (await rpc('initialize', { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'x', version: '1' } })).result?.instructions || ''; check('1b vejledningen peger på det, når et trin intet gjorde', /computer_learning/.test(vejl)); + // 29/10 (Gustav): nettet går gennem den Chrome personen bruger og er logget ind i, og arbejdet inde i siden er Browser MCP's. + check('1c nettet går gennem personens egen, indloggede Chrome', /use the Chrome the person normally uses/.test(vejl) && /signed in to their accounts - not Safari/.test(vejl)); + check('1d arbejdet inde i siden gives til Browser MCP, når den er her', /if Browser MCP's tools \(browser_\*\) are in this session, let them do/.test(vejl)); + check('1e mangler Browser MCP, får personen den rigtige installation', /claude mcp add --scope user browser-mcp -- npx @agent360\/browser-mcp@latest/.test(vejl) && /a Chrome\s+extension plus/.test(vejl)); + check('1f agenten installerer aldrig selv', /Do not install it yourself\./.test(vejl)); + check('1g flere profiler: agenten spørger og vælger ikke selv', /cannot tell which profile[\s\S]{0,160}computer_ask_user/.test(vejl) && /never pick one yourself/.test(vejl)); + check('1h browser_* arbejder i udvidelsens profil - tjek at det er den', /profile where their extension\s+is installed, which browser_about names/.test(vejl)); const r = await kald('computer_learning', { kind: 'workaround', app: 'net.whatsapp.WhatsApp', tool: 'computer_set_value',