From 87ac85780aabcccc9195ae74b18b01b76abab227 Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Fri, 7 Aug 2026 05:53:30 +0200 Subject: [PATCH 1/3] fix(profiles): drop lightpanda, ego-browser is the default browser now MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit so `core` shipped a skill that asks for a server nothing provides. Every session carried it, and the smart-loader kept offering it with "needs MCP: lightpanda". ego-browser covers the same ground — headless navigation, scraping, DOM extraction — and it also paints pixels, which was lightpanda's stated gap. - `core` and `browser` no longer declare `browser/lightpanda`. - The `browser` persona named Lightpanda as its default engine and explained how to fall back to Chromium for screenshots. Rewritten around ego-browser, with the playwright MCP kept for the case ego-browser genuinely doesn't cover: Firefox and WebKit. `summon.test.ts` keyed its mcp_status assertion off browser/lightpanda + core. That pair can no longer reach the "ok" branch, and it only passed this long because the committed catalog index was stale and still named core as a lightpanda provider. Rebuilt on deployment/coolify + backend: the summoned profile ships the skill, a different profile supplies the MCP, which is the distinction the test exists to make. Comment left in place so nobody restores the old pair. Full suite: 3023 pass, 0 fail. Co-Authored-By: Claude Opus 5 (1M context) --- profiles/browser/profile.yaml | 25 ++++++++++++------------- profiles/core/profile.yaml | 1 - 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/profiles/browser/profile.yaml b/profiles/browser/profile.yaml index 4f2e86f0..3e96083d 100644 --- a/profiles/browser/profile.yaml +++ b/profiles/browser/profile.yaml @@ -5,7 +5,6 @@ inherits: core skills: local: - - browser/lightpanda - browser/agent-browser # vercel-labs/agent-browser — Rust browser CLI, ref-based automation, daemon-backed - browser/playwright # drives the Playwright MCP (Chromium/Firefox/WebKit): screenshot-verify UI, repro bugs npx: @@ -16,8 +15,8 @@ skills: mcps: # Playwright — Microsoft's official Playwright MCP (`npx @playwright/mcp@latest`). # Full Chromium/Firefox/WebKit with real screenshots, network log, a11y snapshot; - # tools appear as mcp__playwright__*. Pairs with the browser/playwright skill for - # pixel-true visual verification (the gap lightpanda can't fill). + # tools appear as mcp__playwright__*. Pairs with the browser/playwright skill + # when a task needs Firefox or WebKit — ego-browser covers Chromium. - playwright plugins: @@ -33,18 +32,18 @@ persona: | `final_runs/run_/`, and visually self-verify the result before declaring the task done. - ## Default browser engine: Lightpanda + ## Default browser engine: ego-browser - Lightpanda is your default browser. It is a fast, low-memory headless browser - exposed over MCP (`mcp__lightpanda__*`) and as a CLI at `/home/deadpool/lightpanda`. - Use it for headless navigation, scraping, and DOM/markdown extraction. For pure - scrape/render jobs, `lightpanda fetch --dump markdown` is the fastest path. - See the `browser/lightpanda` skill for all three modes (mcp / serve / fetch). + ego-browser is your default browser, inherited from core. One JS heredoc drives + a real Chromium over CDP — navigation, forms, clicks, semantic snapshots with + element refs, screenshots, downloads — so a whole interaction costs one bash + round trip instead of a dozen tool calls. It reuses your real logins, and each + agent gets its own task space. See the `browser/ego-browser` skill. - Lightpanda does **not** paint pixels. The moment a task needs a real screenshot - to visually verify a page, switch to full Chromium via Webwright (below). You can - also point Webwright/Playwright at lightpanda as a low-memory CDP backend with - `lightpanda serve --port 9222` + `connectOverCDP("ws://127.0.0.1:9222")`. + Reach for Webwright (below) when you need its plugin workflow — the run + directory, the action log, the pinned Playwright workspace. Reach for the + `playwright` MCP when you need Firefox or WebKit specifically; ego-browser is + Chromium only. ## Operating loop diff --git a/profiles/core/profile.yaml b/profiles/core/profile.yaml index 25ed0860..73a6c374 100644 --- a/profiles/core/profile.yaml +++ b/profiles/core/profile.yaml @@ -152,7 +152,6 @@ skills: - security/trivy-scan # /trivy-scan — pre-merge supply-chain gate (Trivy: dependency CVEs + secrets + IaC misconfig). Hard-blocks HIGH/CRITICAL. Invoked by code-review-deep Pass 0 + ship Step 9.0. # ── Browser ── - browser/ego-browser # DEFAULT browser path. One JS heredoc drives a real Chromium (navigate, forms, clicks, snapshot, screenshots) instead of many MCP tool-call round trips — chosen for token cost. Reuses the user's real logins. Linux port lives in ~/Documents/ego-lite-linux (package/ego-linux). - - browser/lightpanda # Lightpanda — fast headless browser for scraping, DOM dump, CDP. Pairs with lightpanda MCP. # ── Source-fetching ── - tools/opensrc # opensrc — fetch dependency source (npm/PyPI/crates/GitHub) so agents read implementations, not just types - tools/context7 # context7 — fetch up-to-date, version-specific library/API docs. Pairs with the context7 MCP (in core's mcps). From b252ef89c942cf70db86065549a76004a8c7c0b9 Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Fri, 7 Aug 2026 05:56:10 +0200 Subject: [PATCH 2/3] docs(profiles): route the browser guidance to ego-browser MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four personas still told agents to reach for lightpanda, which no profile can supply any more — commerce and webshop each carried a "which browser when" section naming it as the scrape/read engine, and gstack and x-growth-bot both described core as shipping the lightpanda MCP. ego-browser takes that slot. The old split existed because lightpanda painted no pixels, so the guidance had to hand off to something else the moment a task needed a screenshot; ego-browser does both, so the rule of thumb collapses to one engine. agent-browser and webwright keep their entries — the persistent Rust daemon and the long-horizon mission workflow are still theirs — and the tables still list three engines, just with the first one swapped. Left one deliberate mention: the gstack comment now records that core *used to* ship lightpanda, so the next person to read it knows the MCP went away rather than wondering if it was never there. Co-Authored-By: Claude Opus 5 (1M context) --- profiles/commerce/profile.yaml | 16 ++++++++-------- profiles/gstack/profile.yaml | 3 ++- profiles/webshop/profile.yaml | 14 ++++++++------ profiles/x-growth-bot/profile.yaml | 2 +- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/profiles/commerce/profile.yaml b/profiles/commerce/profile.yaml index 40ca388e..7f2586f1 100644 --- a/profiles/commerce/profile.yaml +++ b/profiles/commerce/profile.yaml @@ -140,10 +140,11 @@ persona: | Three browser engines, distinct sweet spots — pick by the job, don't default to one: - - **lightpanda** (MCP / `lightpanda fetch --dump markdown`) — the - lightest. Headless, renders DOM + JS but paints **no pixels**. Use for - scraping, DOM/markdown extraction, "what's on this URL", cheap bulk - navigation. Fastest, lowest memory. Can't screenshot. + - **ego-browser** (JS heredoc) — the default, inherited from core. One bash + round trip drives a real Chromium: navigate, fill, click, semantic + snapshot with `@ref` handles, screenshot, download. Use for scraping, + extraction, "what's on this URL", cheap bulk navigation — and for + anything that needs a picture, since it paints pixels too. - **agent-browser** (CLI) — the interactive default. `snapshot -i` → act on `@ref` → `screenshot`. Use to drive and visually verify one flow: login, add-to-cart, checkout QA, "does this storefront render @@ -153,10 +154,9 @@ persona: | artifacts to `final_runs/`. Use for autonomous end-to-end missions, not a handful of commands. - Rule of thumb: scrape/read → lightpanda; drive+verify one flow → - agent-browser; autonomous multi-step mission → webwright. (lightpanda - can also back agent-browser/webwright as a low-memory CDP engine via - `lightpanda serve`.) + Rule of thumb: scrape/read or drive+verify one flow → ego-browser; reach + for agent-browser when you want its persistent Rust daemon; autonomous + multi-step mission → webwright. ## Surface router diff --git a/profiles/gstack/profile.yaml b/profiles/gstack/profile.yaml index d2cfdcf3..59b45ccd 100644 --- a/profiles/gstack/profile.yaml +++ b/profiles/gstack/profile.yaml @@ -165,7 +165,8 @@ skills: # ── GitHub / worktree safety ─────────────────────────────────────────────── - github/gitguardex -# lightpanda is inherited from core; cue-tty-watch is NOT (core ships lightpanda only). +# cue-tty-watch is NOT inherited from core — core ships dataforseo, codegraph, +# context7 and headroom. (It used to ship lightpanda; that MCP is gone.) mcps: - gbrain # gstack/setup-gbrain + gstack/sync-gbrain drive the gbrain MCP rules: diff --git a/profiles/webshop/profile.yaml b/profiles/webshop/profile.yaml index 89d3ee18..d0f3aaeb 100644 --- a/profiles/webshop/profile.yaml +++ b/profiles/webshop/profile.yaml @@ -126,7 +126,7 @@ persona: | | Storefront UI implementation, visual polish, a11y | design/* + browser/agent-browser | | Premium visual design, brand kit, redesign | design/taste-* + design/brandkit | | Long-horizon browser automation, e2e flows | webwright plugin | - | Scrape / headless read, DOM or markdown dump (no pixels) | lightpanda | + | Scrape / headless read, page snapshot, screenshots | browser/ego-browser | | Product photos, hero shots, marketplace cards, Soul ID | higgsfield/* | | Transactional + marketing email, React Email, deliverability | resend plugin | | Containers, env vars, reverse proxy, zero-downtime deploy | deployment/coolify + gstack/setup-deploy | @@ -136,9 +136,10 @@ persona: | Three browser engines, distinct sweet spots — pick by the job: - - **lightpanda** (MCP / `lightpanda fetch --dump markdown`) — the - lightest. Headless, renders DOM + JS but paints **no pixels**. Use for - scraping, DOM/markdown extraction, cheap bulk navigation. Can't screenshot. + - **ego-browser** (JS heredoc) — the default, inherited from core. One bash + round trip drives a real Chromium: navigate, fill, click, semantic snapshot + with `@ref` handles, screenshot. Use for scraping, extraction, cheap bulk + navigation, and anything where a page needs looking at. - **agent-browser** (CLI) — the interactive default. `snapshot -i` → act on `@ref` → `screenshot`. Use to drive and visually verify one flow: login, add-to-cart, checkout QA, "does this storefront render right". Real pixels. @@ -146,8 +147,9 @@ persona: | goal; it plans → acts → screenshot-self-verifies → logs to `final_runs/`. Use for autonomous end-to-end missions, not a handful of commands. - Rule of thumb: scrape/read → lightpanda; drive+verify one flow → - agent-browser; autonomous multi-step mission → webwright. + Rule of thumb: scrape/read or drive+verify one flow → ego-browser; reach for + agent-browser when you want its Rust CLI daemon; autonomous multi-step mission + → webwright. ## Defaults across the stack diff --git a/profiles/x-growth-bot/profile.yaml b/profiles/x-growth-bot/profile.yaml index 932b5e6a..ee39e1e7 100644 --- a/profiles/x-growth-bot/profile.yaml +++ b/profiles/x-growth-bot/profile.yaml @@ -13,7 +13,7 @@ skills: # The bot's MCP control surface (~27 tools: xbot_status, xbot_think, xbot_reply, # xbot_dm, xbot_cycle, xbot_pause, xbot_control, ...). core already contributes -# cue-tty-watch + lightpanda. +# codegraph + context7. mcps: - xbot From 8a2e8b7541395945fed403b1b0c0e8452af8ab15 Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Fri, 7 Aug 2026 06:09:14 +0200 Subject: [PATCH 3/3] chore(deps): bump skills to pick up the lightpanda retirement opencue/skills#20 removes the browser/lightpanda skill and repoints the four remaining references (verify-council's visual-proof lane, agent-browser's overlap note, cue-dashboard's sample output) at ego-browser. Catalog 454 -> 453. Full suite with the skill fully gone from disk: 3023 pass, 0 fail. Co-Authored-By: Claude Opus 5 (1M context) --- resources/skills | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/skills b/resources/skills index ba3d06db..752aef4d 160000 --- a/resources/skills +++ b/resources/skills @@ -1 +1 @@ -Subproject commit ba3d06dbcec1c2cc4fd5b447fd13973565051210 +Subproject commit 752aef4d8b1d1b1db84be61026a222f47c3aa1a5