Releases: kuroko1t/webclaw
v0.10.0: Add evaluate tool for JavaScript execution in page context
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
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
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
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
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
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
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
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:0as self-hidden (likevisibility: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)
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.)
@refassignments unchanged — click, type, hover, drop_files all work correctly- No changes to MCP server, schemas, or extension messaging
v0.7.2
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- AddedfocusRegiontoSnapshotOptionspackages/shared/src/types/mcp-tools.ts- AddedfocusRegiontoPageSnapshotParamspackages/shared/src/schemas.ts- AddedfocusRegiontopageSnapshotSchemapackages/mcp-server/src/server.ts- ExposedfocusRegionin MCP tool definitionpackages/extension/src/background/message-router.ts- PassfocusRegionto content scriptpackages/extension/src/content/content-script.ts- Extract and passfocusRegionto snapshot enginepackages/extension/src/content/snapshot-engine.ts- Landmark filtering logic with alias support