Skip to content

Releases: kuroko1t/webclaw

v0.10.0: Add evaluate tool for JavaScript execution in page context

01 Mar 15:06

Choose a tag to compare

Changes

  • v0.10.0: Add evaluate tool for JavaScript execution in page context
  • Add evaluate tool for JavaScript execution in page context
  • Make invoke_webmcp_tool args parameter optional to match README documentation
  • Remove maxTokens parameter and fix list_webmcp_tools crash on pages without tools
  • Fix flaky E2E tests in CI by adding Chrome memory-saving flags and launch retry

v0.9.0

26 Feb 01:59

Choose a tag to compare

Changes

  • v0.9.0: Smarter accessible name computation and unlimited snapshot by default
  • Fix W3C accname priority, remove 80-char truncation, and collapse DOM whitespace
  • Update README to document handle_dialog tool (20 tools)

v0.8.1

24 Feb 15:20

Choose a tag to compare

Changes

  • v0.8.1: Dialog handling improvements and list_webmcp_tools overflow fix
  • Reduce content script timeout to 8s to avoid MCP-level retry overlap
  • Add content script timeout to fail fast when dialog blocks page
  • Try direct CDP command before waiting for dialog event
  • Fix handle_dialog creating session tab on chrome://newtab
  • Cap list_webmcp_tools output to prevent token overflow
  • Add handle_dialog tool for native browser dialog (alert/confirm/prompt) support
  • Fix release notes showing 'Initial release' by fetching full git history

v0.8.0

24 Feb 12:28

Choose a tag to compare

Changes

  • v0.8.0: Add interactiveOnly filter and smart truncation for page_snapshot
  • Fix E2E tests to match smart truncation output format
  • Add interactiveOnly filter and smart truncation for page_snapshot
  • Fix hardcoded extension zip version in README download link
  • Generate release notes from commit log instead of --generate-notes

v0.7.7

24 Feb 05:34

Choose a tag to compare

Changes

  • v0.7.7: Fix webclaw-shared missing export in npm publish
  • Remove redundant test job from release workflow
  • v0.7.6: Remove base64Data from drop_files tool to prevent token waste
  • Automate release on tag push with test gate

v0.7.6

22 Feb 04:14

Choose a tag to compare

Changes

  • Remove base64Data from drop_files tool to prevent token waste
  • Automate release on tag push with test gate
  • Read version from package.json instead of hardcoding in server and tests

v0.7.5

22 Feb 02:46

Choose a tag to compare

What's New

Session Tab Isolation

Each MCP session now automatically creates a dedicated browser tab on first tool call. Multiple sessions (e.g., two Claude Code windows) no longer stomp on each other's active tab.

Full E2E Tests in CI

All 21 e2e test files now run on every push to main (previously only 5 smoke tests). Fixed timeout issues and assertion mismatches from Phase 2 changes.

Bug Report Template

Added structured GitHub issue template for bug reports with required fields (extension version, MCP server version, MCP client).

Bug Fixes

  • Fixed e2e test timeouts in CI (15s → 30s for tests with in-body page navigation)
  • Fixed 3 e2e assertion failures from Phase 2 changes (table compaction, opacity:0 self-hidden, contenteditable whitespace)

v0.7.4: Phase 2 Snapshot Optimization

21 Feb 16:34

Choose a tag to compare

Phase 2 Snapshot Optimization

~31% additional token reduction on table-heavy pages through table row compaction and tree optimization.

New optimizations

  • Table row compaction: Simple rows (≤1 leaf child per cell) rendered as single line with | separator
  • Decorative image skip: [img] nodes without alt text are removed
  • Empty cell skip: [cell] nodes with no children or name are removed

Bug fixes

  • Fix span-wrapped cell text loss: Text inside <td><span>text</span></td> is now correctly captured via textContent fallback when all DOM children collapse
  • Fix CSS selector injection: Escape special characters in label[for] selector to prevent crashes with unusual element IDs
  • Fix opacity:0 visibility: Treat opacity:0 as self-hidden (like visibility:hidden) so children can still be visible — fixes hover/focus-revealed UI elements

Example output

Before (Phase 1):                    After (Phase 2):
[row]                                [row] Name | Value | Date
 [cell]
  [text "Name"]
 [cell]
  [text "Value"]
 [cell]
  [text "Date"]

Verified on

GitHub, Hacker News, Wikipedia, httpbin, AG Grid, MUI, Google

v0.7.3: Reduce snapshot token waste (~29% reduction)

21 Feb 14:12

Choose a tag to compare

Snapshot Token Optimization (Phase 1)

Reduces token consumption of page_snapshot output by ~29% on typical pages through tree-level optimizations applied before text serialization.

Changes

  • 1-space indentation (was 2-space) — biggest single saving (~22%)
  • Skip [rowgroup] nodes — always structural (<thead>/<tbody>), zero information value; children promoted directly under [table]
  • Skip single-child [listitem] — promotes the child to parent level, eliminating wrapper-only nodes

Impact

Site Before After Reduction
GitHub repo ~2,816 tokens ~2,006 tokens 28.8%

Compatibility

  • All 19 MCP tools verified on real sites (GitHub, Wikipedia, Hacker News, httpbin, etc.)
  • @ref assignments unchanged — click, type, hover, drop_files all work correctly
  • No changes to MCP server, schemas, or extension messaging

v0.7.2

21 Feb 13:27

Choose a tag to compare

What's New

focusRegion parameter for page_snapshot

Added a new optional focusRegion parameter to the page_snapshot tool that allows filtering snapshots to specific HTML5 landmark regions, reducing token usage.

Usage:

page_snapshot({ focusRegion: "main" })      // Main content only
page_snapshot({ focusRegion: "nav" })       // Navigation only
page_snapshot({ focusRegion: "footer" })    // Footer only (alias for contentinfo)
page_snapshot({ focusRegion: "sidebar" })   // Sidebar only (alias for complementary)
page_snapshot({ focusRegion: "banner" })    // Header/banner only

Token reduction (measured on real sites):

Site focusRegion="main" Best case
GitHub ~20% reduction "nav": 86% reduction
Wikipedia ~4% reduction "nav": 98% reduction
Hacker News No effect (no landmarks) Falls back to full tree

When the specified region is not found, the full tree is returned as a safe fallback.

Files changed

  • packages/shared/src/types/snapshot.ts - Added focusRegion to SnapshotOptions
  • packages/shared/src/types/mcp-tools.ts - Added focusRegion to PageSnapshotParams
  • packages/shared/src/schemas.ts - Added focusRegion to pageSnapshotSchema
  • packages/mcp-server/src/server.ts - Exposed focusRegion in MCP tool definition
  • packages/extension/src/background/message-router.ts - Pass focusRegion to content script
  • packages/extension/src/content/content-script.ts - Extract and pass focusRegion to snapshot engine
  • packages/extension/src/content/snapshot-engine.ts - Landmark filtering logic with alias support