Skip to content

Releases: us/crw

v0.32.0

Choose a tag to compare

@us us released this 24 Aug 19:57

0.32.0 (2026-08-24)

Features

  • map: return discovered sitemap document URLs (c65ea1c), closes #440
  • setup: register MCP with detected agents on scripted setup (2cb5f71)

Bug Fixes

  • browse: satisfy the lints Rust 1.98 turned on (a338091)
  • map: report a sitemap by retrieval, not by entry count (38b1c1f), closes #440
  • mcp: bound the map sitemaps list like the links list (579910a), closes #440
  • mcp: pair the Smithery API key with the cloud API URL (566eb85)
  • renderer: stop treating a cleared page as a Cloudflare challenge (0b91afb)
  • research: restore arXiv coverage and unbreak the OpenAlex pool (a942b6d)
  • sdk: follow batch pagination and stop on cancel in both SDKs (47dd99b)

v0.31.0

Choose a tag to compare

@us us released this 18 Aug 15:14

0.31.0 (2026-08-18)

Features

  • search: carry a paid-rescue entitlement to the search backend (d7812a0)
  • search: per-request query-expand override and deadline-bounded scout (8436b43)
  • search: snippet-first lazy-scrape answer path (gated, default off) (32382c4)
  • setup: offer MCP registration for detected AI tools (8d78c0c)
  • simplify onboarding and align documentation truth (9748877)

Bug Fixes

  • cli: drop emoji from setup output (a781671)
  • cli: keep the smoke fixture inside the published crate (b3f85c6)
  • config: pin the deployed config shape, and sync the embedded spec (16ea2ef)
  • crawl: apply the block verdict on crawl, batch and extract (def3f9c)
  • deps: hold pdf-inspector at 0.1.6, 0.1.7 loses page content (aef4719)
  • extract: retry an LLM POST that died before reaching the provider (a9da7db)
  • extract: stop calling valid non-HTML content an anti-bot block (04c5f63)
  • install: resolve latest via GitHub redirect, not the REST API (cd78a60)
  • renderer: report a blackholed origin as unreachable, not a timeout (6250190)
  • renderer: search for </body> after <body>, not from the start (28564bb)
  • scrape: stop returning an origin error page as a successful scrape (13106ae)
  • scrape: stop selling registrar parking pages as content (68f4545)

v0.30.0

Choose a tag to compare

@us us released this 07 Aug 16:05

0.30.0 (2026-08-07)

Features

  • mcp: add option to hide credit-billing fields (bc951f1)
  • renderer: make the interactive render reserve configurable (9fdcde8)

Bug Fixes

  • extract: drop single-render nav menus under onlyMainContent (c5bd7e6)
  • mcp: scope credit-field strip and honor config in proxy mode (b8899d6)
  • renderer: attribute nav-budget log to the real renderer tier (a8af83a)
  • renderer: classify a blackholed origin with a hung proxy rescue as unreachable (329c478)
  • renderer: close the guard's remaining fail-open and budget holes (1f5edeb)
  • renderer: keep the outbound guard closed under teardown and pressure (4695bfa)
  • renderer: reap cancelled legacy renders and keep denials attributable (27807f6)
  • renderer: stop releasing unjudged requests at render teardown (d57f6a4)
  • renderer: validate outbound destinations in the CDP render tiers (30ca299)

Performance

  • crawl: stop rendering JSON bodies that score low on quality (a973993)
  • renderer: cut chrome challenge retries 3 to 1 in docker config (81774c7)

v0.29.0

Choose a tag to compare

@us us released this 04 Aug 15:15

0.29.0 (2026-08-04)

Features

  • extract: expand table rowspan/colspan into a flat grid (0f486aa)
  • extract: support openai-responses LLM provider (ed551e3)
  • renderer: cf_clearance cookie cache — solve a Cloudflare challenge once, reuse across the host (c9b6e6d)
  • renderer: decouple chrome_proxy arm pool from renderer.pool_size (3b0ef22)
  • renderer: fire the cloak CF-recovery arm on a fresh budget (gated) (9f1e5ea)

Bug Fixes

  • antibot: catch Reddit/Cloudflare/Vercel block pages sent as 200 (e7b2f5b)
  • antibot: catch Vercel block pages that beat the markdown guard (0d95dad)
  • core: stop SSRF guard over-blocking public /16s (555d62b)
  • extract: drop two over-broad boilerplate patterns (ee5993c)
  • extract: keep Elementor page content and collapse repeated nav (86c1d2d)
  • extract: stop deleting article content under onlyMainContent (682a731)
  • extract: validate Responses status and stop echoing error bodies (9cd06f4)
  • mcp: stop advertising an output schema the proxy cannot honour (e76bcbc), closes #391
  • renderer: cloak solves cold hosts on a fresh exit IP, not a pinned one (c2403f2)
  • renderer: pool the chrome_proxy tier so its targets get reaped (1bf32e8)
  • renderer: reap orphaned chrome targets on cancelled renders (727a041)
  • renderer: stop anti-bot blocks from stranding the recovery tier (223de6c)
  • renderer: stop discarding good content when the JS ladder fails (6d36665)
  • scrape: stop reporting a thin page as an anti-bot block (544d4aa)
  • scrape: stop selling a CDN's error page as the page that was asked for (d9ddca9)
  • search: validate lang at the API boundary (52711fe)

v0.28.0

Choose a tag to compare

@us us released this 24 Jul 00:02

0.28.0 (2026-07-23)

Features

  • sdk: add typed response object interfaces (a2acacb), closes #361

Bug Fixes

  • core: bound SSRF DNS resolution with an 8s timeout (4b542dc)
  • crawl: accept the nested scrapeOptions shape the spec publishes (c568333)
  • openapi: re-sync the docs copy of the 3.0 spec (ffe8618)
  • openapi: sync the spec with the real types, and guard it in CI (dcc0fcc)
  • renderer: forward custom request headers on the CDP path (a0677f7), closes #351
  • renderer: stop misclassifying >500KB pages as thin (21c15dd)
  • renderer: treat a blank caller UA as absent, document header scope (69a2f8e)
  • search: bound the per-result scrape budget for scrapeOptions (97aa154)
  • v2: honor location.languages as an Accept-Language header (bac52cd)
  • v2: honor renderJs on the Firecrawl-compat surface (8491d5f), closes #346
  • v2: thread the extraction prompt through extract and the json format (0f2650e), closes #352

Performance

  • search: parallelize enrichment DNS validation and dedup scout scrapes (6e1ca78)

v0.27.1

Choose a tag to compare

@us us released this 22 Jul 14:53

0.27.1 (2026-07-22)

Bug Fixes

  • packaging: verify downloaded binaries against published checksums (a181e69)
  • search: distinguish a degraded backend from a zero-result query (c8c031a)

v0.27.0

Choose a tag to compare

@us us released this 22 Jul 00:14

0.27.0 (2026-07-21)

Features

  • docker: make published bind address configurable (79ac8f7)
  • renderer: route learned CF-managed domains straight to cloak (884ed63)

Bug Fixes

  • compose: make crw host port overridable via CRW_HOST_PORT (3f0a1eb)
  • crawl: stop flagging cleared managed pages as CF challenges (9d81efe)

v0.26.1

Choose a tag to compare

@us us released this 21 Jul 11:59

0.26.1 (2026-07-21)

Bug Fixes

  • extract: count MAX_USER_PROMPT_CHARS as Unicode scalars (ea798f5)
  • extract: count maxChars as Unicode scalars (f319de6)
  • server: require auth on admin and metrics routes, restrict CORS (1a66247)

v0.26.0

Choose a tag to compare

@us us released this 19 Jul 19:08

0.26.0 (2026-07-19)

Features

  • extract: expose extracted images in scrape response (7d632ef)
  • renderer: let the cloak arm self-provision its residential proxy (35bc472)
  • renderer: send x-deadline-ms to the cloak sidecar mirror call (0de10e2)
  • search: passage-select + snippet-first for the answer path (88f2e93)
  • server: add Kimi Code compat routes (/kimi/search, /kimi/fetch) (5a241e5)

Bug Fixes

  • renderer: give chrome_proxy recovery arm its own budget and load-shed it (1a3942b)
  • server: add success field to /v1/extract responses (4f386ed), closes #318

v0.25.2

Choose a tag to compare

@us us released this 17 Jul 23:17

0.25.2 (2026-07-17)

Bug Fixes

  • release: stop the mcp-registry verify failing on a published version (24cebb0)
  • renderer: fire chrome_proxy recovery arm under the default deadline (e6c19a1)
  • renderer: suppress chrome_proxy on antibot-detected fingerprint walls (ff09f30)
  • surface and recover HTTP-200 Wikimedia datacenter block shell (a148f60)