Changes for version 0.006 - 2026-09-19
- The chain win/continue decision now runs through an overridable classify_is_good method (default: WWW::Crawl4AI::Detect::is_good), instead of _attempt_for calling Detect::is_good directly. A subclass override of classify_is_good now actually changes which strategy wins and whether the chain escalates -- previously only classify_signals / classify_why_failed could be overridden, which changed just the *reported* signals per attempt, not the decision, contradicting the POD. Default behaviour is unchanged.
- examples/docker-compose.yml and docker-compose.proxy.yml now set CRAWL4AI_API_TOKEN. Crawl4AI 0.9.3 binds the container's loopback only when no token is set, so the published 11235 port reset every connection and the sample stack was unreachable out of the box; with a token it binds 0.0.0.0 and requires Bearer auth (the client sends $ENV{CRAWL4AI_API_TOKEN}). The 0.9.3 SSRF switches CRAWL4AI_ALLOW_INTERNAL_URLS and CRAWL4AI_EXECUTE_JS_ENABLED are documented alongside.
- examples/k8s/ adds a deployable sample stack -- namespace, Crawl4AI Deployment/Service/Secret and an nginx fixture ConfigMap -- carrying the 0.9.3 security posture (API token, SSRF guard, execute_js switch) in the manifests and README. examples/fixture/ is the deterministic page the env-gated live suite points at.
Documentation
probe Crawl4AI / CloakBrowser / proxy reachability and print the chain
run the full WWW::Crawl4AI strategy chain against one URL
Modules
Perl client and fallback orchestrator for Crawl4AI
one strategy attempt in a WWW::Crawl4AI fallback chain
UA-agnostic REST client for the Crawl4AI Docker API
breadth-first iterator for deep_crawl, separating frontier management from crawl logic
service detection and content-quality classification for Crawl4AI
structured error class for WWW::Crawl4AI
markdown field resolution across Crawl4AI response shapes
builds Crawl4AI /crawl and /md request payloads
normalized result of a WWW::Crawl4AI strategy chain
role for a single crawl strategy in the WWW::Crawl4AI fallback chain
Crawl4AI strategy with full JS rendering (wait for networkidle)
last-resort Crawl4AI strategy delegating to a user coderef
Crawl4AI strategy attaching to CloakBrowser over CDP
cheapest Crawl4AI strategy — headless text mode, no escalation
POD ERRORS
Hey! The above document had some coding errors, which are explained below:
Around line 3:
Non-ASCII character seen before =encoding in '—'. Assuming CP1252
Crawl4AI strategy routing through a configured proxy
Crawl4AI strategy with enable_stealth and randomized fingerprint
ordered list of strategy objects, pluggable at construction time