diff --git a/CHANGELOG.md b/CHANGELOG.md index ddcf40e..6bafbce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ Format follows [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] +## [0.6.12] - 2026-06-17 + +### Added +- **Standalone web search** using your own [Serper.dev](https://serper.dev) key — no hosted webclaw account needed. Available across the CLI (`webclaw search "query" --num 5 --scrape`, key via `--serper-key` or `SERPER_API_KEY`), the MCP `search` tool (local-first when `SERPER_API_KEY` is set, hosted API otherwise), and the self-hosted REST server (`POST /v1/search`, enabled when started with `SERPER_API_KEY`). With `--scrape`, the top result pages are fetched and extracted to markdown. +- **Layered URL discovery for `--map`**: when a site has no sitemap or only a thin one, map now falls back to a bounded same-origin crawl and harvests links from every fetched page plus the unfetched frontier, returning far more URLs. Adds gzipped-sitemap (`.xml.gz`) support, deeper sitemap-index recursion, more fallback paths, and `--map-pages` / `--no-map-crawl` / `--map-limit` controls. Crawler logs now go to stderr so `--map --format json` stays machine-parseable. + +### Fixed +- MCP tools now accept boolean arguments whether the client sends them as JSON booleans or as the strings `"true"`/`"false"` (case-insensitive). Some MCP clients (e.g. Claude Desktop) send booleans as strings, which previously failed the call with a deserialization error. Affects `scrape` (only_main_content), `crawl` (use_sitemap), `research` (deep), and `search` (scrape). This completes the earlier numeric-parameter fix. + ## [0.6.11] - 2026-06-16 ### Added diff --git a/Cargo.lock b/Cargo.lock index fa9557d..6d06447 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3221,7 +3221,7 @@ dependencies = [ [[package]] name = "webclaw-cli" -version = "0.6.11" +version = "0.6.12" dependencies = [ "clap", "dotenvy", @@ -3242,7 +3242,7 @@ dependencies = [ [[package]] name = "webclaw-core" -version = "0.6.11" +version = "0.6.12" dependencies = [ "ego-tree", "once_cell", @@ -3260,7 +3260,7 @@ dependencies = [ [[package]] name = "webclaw-fetch" -version = "0.6.11" +version = "0.6.12" dependencies = [ "async-trait", "bytes", @@ -3288,7 +3288,7 @@ dependencies = [ [[package]] name = "webclaw-llm" -version = "0.6.11" +version = "0.6.12" dependencies = [ "async-trait", "reqwest", @@ -3301,7 +3301,7 @@ dependencies = [ [[package]] name = "webclaw-mcp" -version = "0.6.11" +version = "0.6.12" dependencies = [ "dirs", "dotenvy", @@ -3321,7 +3321,7 @@ dependencies = [ [[package]] name = "webclaw-pdf" -version = "0.6.11" +version = "0.6.12" dependencies = [ "pdf-extract", "thiserror", @@ -3330,7 +3330,7 @@ dependencies = [ [[package]] name = "webclaw-server" -version = "0.6.11" +version = "0.6.12" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml index bf7a8bc..a748849 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.6.11" +version = "0.6.12" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/0xMassi/webclaw"