diff --git a/CHANGELOG.md b/CHANGELOG.md index 05b359d..1087ca8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to webclaw are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [0.3.1] — 2026-03-30 + +### Added +- **Cookie warmup fallback**: when a fetch returns an Akamai challenge page, automatically visits the homepage first to collect `_abck`/`bm_sz` cookies, then retries the original URL. Enables extraction of Akamai-protected subpages (e.g. fansale ticket pages) without JS rendering. + +### Changed +- Upgraded to webclaw-tls v0.1.2: fixed HTTP header wire order (accept/user-agent were in wrong positions) and added H2 PRIORITY flag in HEADERS frames. +- `FetchResult.headers` now uses `http::HeaderMap` instead of `HashMap` — avoids per-response allocation, preserves multi-value headers. + ## [0.3.0] — 2026-03-29 ### Changed diff --git a/Cargo.toml b/Cargo.toml index fb3afe6..249fe6b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.3.0" +version = "0.3.1" edition = "2024" license = "MIT" repository = "https://github.com/0xMassi/webclaw" diff --git a/crates/webclaw-fetch/src/client.rs b/crates/webclaw-fetch/src/client.rs index 988de16..373e015 100644 --- a/crates/webclaw-fetch/src/client.rs +++ b/crates/webclaw-fetch/src/client.rs @@ -556,9 +556,9 @@ fn is_challenge_response(response: &webclaw_http::Response) -> bool { /// Extract the homepage URL (scheme + host) from a full URL. fn extract_homepage(url: &str) -> Option { - url::Url::parse(url).ok().map(|u| { - format!("{}://{}/", u.scheme(), u.host_str().unwrap_or("")) - }) + url::Url::parse(url) + .ok() + .map(|u| format!("{}://{}/", u.scheme(), u.host_str().unwrap_or(""))) } /// Convert a webclaw-pdf PdfResult into a webclaw-core ExtractionResult.