diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b08cc4f..bc7e4aa 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.15.2" + ".": "0.16.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bf87d34..2a6f74f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,27 @@ All notable changes to CRW are documented here. +## [0.16.0](https://github.com/us/crw/compare/v0.15.2...v0.16.0) (2026-06-14) + + +### Features + +* **mcp:** optimize MCP server for context, weight, and conformance ([aac7999](https://github.com/us/crw/commit/aac7999b9379fd8b6ef818ce37f78634416f79c1)) +* **proxy:** add proxy list + rotation primitives and HTTP-path rotation ([776e9fb](https://github.com/us/crw/commit/776e9fbad4ee509ec5201020772169d151e0587f)) +* **proxy:** rotate the JS/Chrome (CDP) path per request ([422ac09](https://github.com/us/crw/commit/422ac09c1f4dc2549a54e1079cec18330ccf0ea0)) +* **proxy:** v2 BYOP plumbing + honest docs + verification harness ([0983ba3](https://github.com/us/crw/commit/0983ba38ad1537b21ecfdc658bdda7a79c0b5437)) + + +### Bug Fixes + +* **extract:** stop doubling /v1 in structured-extraction chat URL ([d8b8ebc](https://github.com/us/crw/commit/d8b8ebc887eca97ca75ae1eb1893429bc547e80e)) +* **extract:** unify Anthropic structured URL, stop /v1/messages doubling ([90ce3dd](https://github.com/us/crw/commit/90ce3dd5479060eee0a3319e78d3d7653984e53c)) +* **proxy:** accept snake_case proxy_list alias on v1 ScrapeRequest/CrawlRequest ([a8e7b71](https://github.com/us/crw/commit/a8e7b71d891355912dbfc1ad23a1d0e6f6bfd865)) +* **proxy:** CLI crawl/map --proxy reaches the JS/CDP tier (round-4 review) ([6ee7175](https://github.com/us/crw/commit/6ee71755ce656b6ff32e4c1f4847e35655854035)) +* **proxy:** resolve review findings (IP-leak/correctness hardening) ([72e0486](https://github.com/us/crw/commit/72e048683eceba19b676a4bca2c8186ad762d3e1)) +* **proxy:** route /map discovery through the rotator (round-2 review) ([5ee06cf](https://github.com/us/crw/commit/5ee06cfb7e0c7e910a0ce0590597a277c6f49332)) +* **proxy:** route crawl robots/sitemap egress through the rotator ([4835e7d](https://github.com/us/crw/commit/4835e7dc02263350ae7bbcf591a353258e308032)) + ## [0.15.2](https://github.com/us/crw/compare/v0.15.1...v0.15.2) (2026-06-12) diff --git a/Cargo.toml b/Cargo.toml index 6128ba3..eead626 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.15.2" +version = "0.16.0" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/us/crw" @@ -133,16 +133,16 @@ insta = { version = "1", features = ["json"] } # and layer their own `features` / `optional` on top. `path` is resolved # relative to THIS (root) manifest. Only crates that are depended upon by # another crate appear here; leaf binaries (crw-mcp, crw-cli) just consume. -crw-mcp-proto = { path = "crates/crw-mcp-proto", version = "0.15.2" } -crw-core = { path = "crates/crw-core", version = "0.15.2" } -crw-extract = { path = "crates/crw-extract", version = "0.15.2" } -crw-renderer = { path = "crates/crw-renderer", version = "0.15.2" } -crw-search = { path = "crates/crw-search", version = "0.15.2" } -crw-diff = { path = "crates/crw-diff", version = "0.15.2" } -crw-crawl = { path = "crates/crw-crawl", version = "0.15.2" } -crw-monitor = { path = "crates/crw-monitor", version = "0.15.2" } -crw-server = { path = "crates/crw-server", version = "0.15.2" } -crw-browse = { path = "crates/crw-browse", version = "0.15.2" } +crw-mcp-proto = { path = "crates/crw-mcp-proto", version = "0.16.0" } +crw-core = { path = "crates/crw-core", version = "0.16.0" } +crw-extract = { path = "crates/crw-extract", version = "0.16.0" } +crw-renderer = { path = "crates/crw-renderer", version = "0.16.0" } +crw-search = { path = "crates/crw-search", version = "0.16.0" } +crw-diff = { path = "crates/crw-diff", version = "0.16.0" } +crw-crawl = { path = "crates/crw-crawl", version = "0.16.0" } +crw-monitor = { path = "crates/crw-monitor", version = "0.16.0" } +crw-server = { path = "crates/crw-server", version = "0.16.0" } +crw-browse = { path = "crates/crw-browse", version = "0.16.0" } [profile.release] lto = true diff --git a/mcp/crw-mcp-darwin-arm64/package.json b/mcp/crw-mcp-darwin-arm64/package.json index 7e4d9e3..9206663 100644 --- a/mcp/crw-mcp-darwin-arm64/package.json +++ b/mcp/crw-mcp-darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "crw-mcp-darwin-arm64", - "version": "0.15.2", + "version": "0.16.0", "description": "CRW MCP server binary for darwin arm64", "license": "AGPL-3.0", "homepage": "https://github.com/us/crw", diff --git a/mcp/crw-mcp-darwin-x64/package.json b/mcp/crw-mcp-darwin-x64/package.json index e705d1d..556d7db 100644 --- a/mcp/crw-mcp-darwin-x64/package.json +++ b/mcp/crw-mcp-darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "crw-mcp-darwin-x64", - "version": "0.15.2", + "version": "0.16.0", "description": "CRW MCP server binary for darwin x64", "license": "AGPL-3.0", "homepage": "https://github.com/us/crw", diff --git a/mcp/crw-mcp-linux-arm64/package.json b/mcp/crw-mcp-linux-arm64/package.json index 4eeea1f..9657093 100644 --- a/mcp/crw-mcp-linux-arm64/package.json +++ b/mcp/crw-mcp-linux-arm64/package.json @@ -1,6 +1,6 @@ { "name": "crw-mcp-linux-arm64", - "version": "0.15.2", + "version": "0.16.0", "description": "CRW MCP server binary for linux arm64", "license": "AGPL-3.0", "homepage": "https://github.com/us/crw", diff --git a/mcp/crw-mcp-linux-x64/package.json b/mcp/crw-mcp-linux-x64/package.json index bb54dfe..846e048 100644 --- a/mcp/crw-mcp-linux-x64/package.json +++ b/mcp/crw-mcp-linux-x64/package.json @@ -1,6 +1,6 @@ { "name": "crw-mcp-linux-x64", - "version": "0.15.2", + "version": "0.16.0", "description": "CRW MCP server binary for linux x64", "license": "AGPL-3.0", "homepage": "https://github.com/us/crw", diff --git a/mcp/crw-mcp/package.json b/mcp/crw-mcp/package.json index bd7291c..cf5c331 100644 --- a/mcp/crw-mcp/package.json +++ b/mcp/crw-mcp/package.json @@ -1,6 +1,6 @@ { "name": "crw-mcp", - "version": "0.15.2", + "version": "0.16.0", "description": "MCP server for CRW web scraper — scrape, crawl, map, search, and PDF-parse tools for AI agents", "license": "AGPL-3.0", "homepage": "https://github.com/us/crw", @@ -30,9 +30,9 @@ "skills/SKILL.md" ], "optionalDependencies": { - "crw-mcp-darwin-x64": "0.15.2", - "crw-mcp-darwin-arm64": "0.15.2", - "crw-mcp-linux-x64": "0.15.2", - "crw-mcp-linux-arm64": "0.15.2" + "crw-mcp-darwin-x64": "0.16.0", + "crw-mcp-darwin-arm64": "0.16.0", + "crw-mcp-linux-x64": "0.16.0", + "crw-mcp-linux-arm64": "0.16.0" } } diff --git a/sdks/python/pyproject.toml b/sdks/python/pyproject.toml index 8ce4ecf..4a2663e 100644 --- a/sdks/python/pyproject.toml +++ b/sdks/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "crw" -version = "0.15.2" +version = "0.16.0" description = "Python SDK for CRW web scraper — scrape, crawl, and map any website from Python" readme = "README.md" requires-python = ">=3.10" diff --git a/sdks/typescript/package.json b/sdks/typescript/package.json index a824d86..08ed6ba 100644 --- a/sdks/typescript/package.json +++ b/sdks/typescript/package.json @@ -1,6 +1,6 @@ { "name": "crw-sdk", - "version": "0.15.2", + "version": "0.16.0", "description": "TypeScript/JavaScript SDK for CRW — scrape, crawl, map, search, parse, and extract any website", "license": "MIT", "homepage": "https://github.com/us/crw", diff --git a/server.json b/server.json index 48c57cf..4d3cb28 100644 --- a/server.json +++ b/server.json @@ -3,7 +3,7 @@ "name": "io.github.us/crw", "title": "CRW Web Scraper", "description": "Open-source web scraper for AI agents with scrape, crawl, and map tools", - "version": "0.15.2", + "version": "0.16.0", "websiteUrl": "https://us.github.io/crw", "repository": { "url": "https://github.com/us/crw",