Skip to content

Chrome extension: auto-discover vavd, usable chat, page context - #28

Merged
Obooman merged 5 commits into
mainfrom
cursor/chrome-extension-commercial-5633
Sep 5, 2026
Merged

Chrome extension: auto-discover vavd, usable chat, page context#28
Obooman merged 5 commits into
mainfrom
cursor/chrome-extension-commercial-5633

Conversation

@Obooman

@Obooman Obooman commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

The Chrome extension was a localhost paste form with a raw text log. This makes it a real thin client of vavd, aligned with VAV Remote / the phone protocol.

What changed

  • Icons — VAV mark at 16/32/48/128 on the toolbar and store tile.
  • Discoveryvavd serves GET /discover on the loopback web bridge. Loopback clients receive the pairing secret (same threat model as ~/.vavd/secret.json). The extension scans :4752–4762 and connects from the service worker. No URL field, no secret paste for a local daemon. Pairing URI remains as a fallback.
  • Conversation UI — Side panel matches the phone client: host status, session list, agent-log blocks (thinking / tools / plan / ask cards), model + approval, streaming, stop.
  • Page operations — Current tab (title, URL, selection, readable excerpt), optional screenshot, context menus, and an in-page “Ask VAV” chip. Content-script helpers for highlight / scroll / fill / click. Chrome-extension / about: tabs are not treated as the page.

Verification

  • Unit tests for discover payload, page-context formatting, and the extension pack.
  • Playwright: side panel auto-pairs, creates a session, configures a model, sends a turn, then attaches a live http://127.0.0.1 page (Install guide) into the next user message.
  • vavd process test asserts /discover returns the loopback secret.
  • Hidden sheets no longer steal clicks (display: grid was overriding [hidden]).

Side panel after a page-grounded turn

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 5 commits September 4, 2026 16:27
Discover a loopback daemon and pair without pasting localhost URLs,
render sessions as an agent log, and send the current page, selection,
or screenshot with a turn.

Co-authored-by: Oboo Cheng <oboochin@gmail.com>
Sheets no longer intercept clicks while hidden. Page context prefers the
browsing tab, skips chrome-extension URLs, and the Playwright test sends
a live page through a turn.

Co-authored-by: Oboo Cheng <oboochin@gmail.com>
Hello and the WebSocket live in background.js now; sidepanel.js is only the UI.

Co-authored-by: Oboo Cheng <oboochin@gmail.com>
Use the official cat mark, agent-log transcript (You / Agent, no chat bubbles), desktop session rows, and implicit model/approval pickers so the thin clients read as the same workbench.

Co-authored-by: Oboo Cheng <oboochin@gmail.com>
The CJS bundle has no import.meta.dirname; resolving brand icons from it at load time crashed the binary before it could print a pairing URI.

Co-authored-by: Oboo Cheng <oboochin@gmail.com>
@Obooman
Obooman marked this pull request as ready for review September 5, 2026 00:52
@Obooman
Obooman merged commit 8ffa7bc into main Sep 5, 2026
3 checks passed
@cursor cursor Bot mentioned this pull request Sep 5, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants