Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1713 commits
Select commit Hold shift + click to select a range
ba3eecb
chore(page): add empty trim check
j-mendez Dec 15, 2025
8aa0310
chore(chrome): add click automations
j-mendez Dec 16, 2025
4dd77f3
chore(chrome): add whitelist patterns
j-mendez Dec 17, 2025
d534a72
chore(smart): add xml request detection
j-mendez Dec 17, 2025
c438620
chore(website): add copy crawl status
j-mendez Dec 22, 2025
26d7caa
chore(website): add pub buildable crawler
j-mendez Dec 26, 2025
63ee7e3
chore(page): fix smart rendering
j-mendez Dec 26, 2025
76e6af2
chore(network): add blacklist patterns
j-mendez Dec 26, 2025
1efb011
fix(chrome): add automatic chrome executable detection (#343)
yebei199 Jan 1, 2026
9569e23
feat(website): add cmd crawling
j-mendez Jan 1, 2026
d113fe2
chore(website): add extra info storing
j-mendez Jan 1, 2026
a7cdfc5
feat(gemini): add Gemini AI support for dynamic browser scripting (#344)
swistaczek Jan 2, 2026
6426c91
chore(website): add extra_information flag
j-mendez Jan 2, 2026
03ecc5c
chore(chrome): fix bytes calculation smart rendering
j-mendez Jan 3, 2026
ff09d98
chore(cookies): add cookie jar re-use
j-mendez Jan 4, 2026
1b4ba2c
chore(smart): add cypher mismatch check retry
j-mendez Jan 6, 2026
9d332a7
chore(chrome): add header cleanup
j-mendez Jan 6, 2026
9fc4d1c
Fix breakage on openai example (#345)
dodyirawan85 Jan 7, 2026
cf002b4
chore(website): add hint setters
j-mendez Jan 7, 2026
8cab635
chore(mod): fix request error compile
j-mendez Jan 7, 2026
c7b2071
chore(chrome): add extra cleanup caps
j-mendez Jan 8, 2026
45a279c
chore(website): add with_referrer builder
j-mendez Jan 8, 2026
d288b94
chore(website): add modify http client builder
j-mendez Jan 8, 2026
9d37401
Add `with_on_should_crawl_callback_closure` (#346)
WilliamVenner Jan 11, 2026
11b4ca8
release(minor): 2.39.0
j-mendez Jan 12, 2026
5dcbd92
chore(smart): add sessionStorage detection
j-mendez Jan 15, 2026
77584e5
chore(smart): add imperva handle
j-mendez Jan 15, 2026
9d8478b
chore(smart): add handles
j-mendez Jan 15, 2026
f2accce
chore(mod): add gemini solve
j-mendez Jan 16, 2026
8f9f613
feat(solver): add built in gemini nano support
j-mendez Jan 16, 2026
35b3355
chore(website): add warm model
j-mendez Jan 16, 2026
29cf4f9
chore(solvers): add lemin
j-mendez Jan 16, 2026
ae60410
chore(page): add set_duration_elasped
j-mendez Jan 17, 2026
82062ff
chore(page): add forbidden validation retry
j-mendez Jan 18, 2026
d2f95f2
chore(page): add missing gemini
j-mendez Jan 18, 2026
d75d4be
feat(chrome): add remote multi_modal web automation
j-mendez Jan 22, 2026
b0fbb74
fix(page): add metadata extraction for HTTP requests
j-mendez Jan 31, 2026
1a5842d
fix(page): fix metadata extraction in streaming functions
j-mendez Jan 31, 2026
9e64eca
fix(website): extract links and metadata from seeded pages
j-mendez Jan 31, 2026
a8aa3ec
chore(spider): bump version to 2.40.4
j-mendez Jan 31, 2026
b853f93
fix(website): gate seeded page link extraction for decentralized feature
j-mendez Feb 1, 2026
9526f24
test(page): add feature flag test coverage
j-mendez Feb 1, 2026
32f1f05
feat(spider): add WebDriver support via thirtyfour crate
j-mendez Feb 1, 2026
5a5f939
chore(spider): bump version to 2.41.0
j-mendez Feb 1, 2026
d9f3e56
feat(webdriver): add automation script support
j-mendez Feb 1, 2026
433f6fe
docs: refresh README with streaming, Chrome, and WebDriver examples
j-mendez Feb 1, 2026
dacc45b
feat(webdriver): integrate spider_fingerprint stealth spoofs
j-mendez Feb 1, 2026
a3f9a2c
chore: update to spider_fingerprint 2.38.0 from crates.io
j-mendez Feb 1, 2026
50f73ad
feat(automation): add token usage tracking and extraction support for…
j-mendez Feb 1, 2026
b78d3d2
fix(page): add remote_multimodal fields to decentralized Page struct
j-mendez Feb 1, 2026
4e0a9e8
feat(automation): add ExtractionSchema for structured extraction output
j-mendez Feb 2, 2026
a211ead
fix: extract JSON from LLM responses with reasoning text
j-mendez Feb 2, 2026
44ce332
fix(automation): improve best_effort_parse_json_object parsing
j-mendez Feb 2, 2026
2588522
feat(automation): add HTTP extraction support without chrome feature
j-mendez Feb 2, 2026
bb43e15
feat(automation): add llm_json for robust JSON parsing from LLM outputs
j-mendez Feb 2, 2026
089946b
fix(automation): improve JSON extraction with proper brace matching
j-mendez Feb 2, 2026
6a39fd6
test(automation): add tests for JSON extraction from thinking models
j-mendez Feb 2, 2026
2dadc65
perf(website): remove unnecessary clones and allocations
j-mendez Feb 2, 2026
b2d17fc
feat(automation): add prompt-based website configuration
j-mendez Feb 2, 2026
b2bba0f
feat(automation): add agentic memory for multi-round automation
j-mendez Feb 2, 2026
f057377
feat(automation): add simplified agentic APIs - act(), observe(), ext…
j-mendez Feb 2, 2026
b7d8b74
feat(automation): add Phase 2 agentic features - selector cache, stru…
j-mendez Feb 2, 2026
c8a8176
feat(automation): add Phase 3 agentic features - autonomous agent, ac…
j-mendez Feb 2, 2026
e94d3d5
fix(automation): correct lol_html API usage and add intelligent scree…
j-mendez Feb 2, 2026
46912d8
feat(cache): add skip browser mode + smart HTML cleaning
j-mendez Feb 2, 2026
ac80e06
perf(automation): byte-size-based smart cleaning for best performance
j-mendez Feb 2, 2026
126fd79
feat(search): add web search integration with multiple providers
j-mendez Feb 2, 2026
125268a
feat(search): add search_and_extract and research methods
j-mendez Feb 2, 2026
39de7e6
chore(docs): fix rustdoc broken intra-doc links
j-mendez Feb 2, 2026
4ee509c
fix(search): use reqwest::Client directly for cache feature compatibi…
j-mendez Feb 2, 2026
e24702a
feat(spider_agent): add standalone multimodal agent crate
j-mendez Feb 3, 2026
61589c9
fix(spider): fix doctest and update chromey for adblock compatibility
j-mendez Feb 3, 2026
391be1c
feat(spider_agent): add usage tracking and multimodal example
j-mendez Feb 3, 2026
bb3b4a9
feat(spider_agent): add chrome browser and temp storage support
j-mendez Feb 3, 2026
dcdb72a
feat(spider_agent): add webdriver support via thirtyfour
j-mendez Feb 3, 2026
855a071
feat(spider_agent): enhance memory with URL/action/extraction history
j-mendez Feb 3, 2026
b1728b9
chore(spider_agent): bump version to 0.2.0
j-mendez Feb 3, 2026
c598069
feat(spider_agent): add comprehensive automation module
j-mendez Feb 3, 2026
f1f28cc
feat(spider_agent): add performance optimizations for automation
j-mendez Feb 3, 2026
a7a009a
chore(spider): update spider_agent dependency to 0.4
j-mendez Feb 3, 2026
2e53ffa
docs: update changelog for v2.43.20 and spider_agent releases
j-mendez Feb 3, 2026
748a245
docs: expand v2 changelog with comprehensive feature documentation
j-mendez Feb 3, 2026
6fb8407
feat(spider_agent): add complete WebAutomation parity and PromptUrlGate
j-mendez Feb 3, 2026
ef3f3e9
chore(spider): bump to v2.43.21, update spider_agent to 0.5
j-mendez Feb 3, 2026
6776567
feat(automation): add api_calls tracking and HTTP extraction support
j-mendez Feb 3, 2026
6f9302e
feat(spider_agent): add usage limits, custom tools, and granular trac…
j-mendez Feb 3, 2026
2512633
chore(spider): bump to v2.43.23, update spider_agent to 0.6
j-mendez Feb 3, 2026
c2f7baf
feat: granular usage tracking in AutomationUsage
j-mendez Feb 3, 2026
9ec16c2
feat(spider): make spider_agent a required dependency
j-mendez Feb 3, 2026
e6184b3
fix(spider): keep spider_agent optional, add agent_webdriver feature
j-mendez Feb 3, 2026
dbd5225
chore: bump all crates to v2.44.3 for version parity
j-mendez Feb 3, 2026
c4764ec
chore(examples): add remote_multimodal
j-mendez Feb 3, 2026
441c371
chore(website): fix scrape subscription hang
j-mendez Feb 3, 2026
ea1560d
chore(example): add extraction example multi
j-mendez Feb 3, 2026
e33132a
feat(agent): consolidate automation into spider_agent with seamless f…
j-mendez Feb 3, 2026
bec9883
chore(examples): add remote_multimodal_multi example
j-mendez Feb 3, 2026
48af23f
docs(readme): add spider_agent section and link
j-mendez Feb 3, 2026
80b07a8
feat(agent): improve web automation for CAPTCHAs and visual challenges
j-mendez Feb 4, 2026
cbc9193
feat(agent): enhance CAPTCHA handling and lock system prompt
j-mendez Feb 4, 2026
978dc80
feat(spider): enable HTTP extraction without agent_chrome feature
j-mendez Feb 4, 2026
71734d8
chore: bump versions to 2.44.6
j-mendez Feb 4, 2026
1b067c1
feat(spider_agent): add inline vision model detection
j-mendez Feb 4, 2026
0b3baa7
feat(spider_agent): integrate llm_models_spider for auto-updated visi…
j-mendez Feb 4, 2026
6f10fd5
chore: bump versions to 2.44.7
j-mendez Feb 4, 2026
178de2a
fix(spider_agent): update system_prompt_compiled test for locked prompt
j-mendez Feb 4, 2026
31e3a48
feat(spider_agent): add concurrent page spawning with OpenPage action
j-mendez Feb 4, 2026
5976197
chore: bump versions to 2.44.8
j-mendez Feb 4, 2026
8ecd0b4
feat(spider_agent): add Claude-optimized automation features
j-mendez Feb 4, 2026
264679c
chore: bump versions to 2.44.9
j-mendez Feb 4, 2026
2b2edb1
feat: sync skill content with improved efficiency directives
j-mendez Feb 5, 2026
b577a37
feat(spider_agent): improve skill strategies for real browser interac…
j-mendez Feb 5, 2026
48f9635
feat(spider_agent): improve skill triggers and board reading for web …
j-mendez Feb 5, 2026
efd3560
chore: bump versions to 2.44.10
j-mendez Feb 5, 2026
3102267
fix(spider): fix broken glob feature compilation and logic errors
j-mendez Feb 5, 2026
334b6b1
feat(spider_agent): add dual-model routing and long-term experience m…
j-mendez Feb 5, 2026
d7ad368
chore: bump versions to 2.44.12
j-mendez Feb 5, 2026
2b48a15
feat(spider): add spider_cloud integration and S3 skills loading
j-mendez Feb 5, 2026
ea0d2dc
chore: bump versions to 2.44.13
j-mendez Feb 5, 2026
7f2d71a
docs: add spider_cloud to root README, improve API response handling
j-mendez Feb 5, 2026
2e6fbbc
docs: simplify root README intro
j-mendez Feb 5, 2026
042d823
fix(agent): use CDP mouse methods for all click actions to maintain p…
j-mendez Feb 5, 2026
4694048
chore: bump versions to 2.44.14
j-mendez Feb 5, 2026
3abb3ca
perf: optimize core pipeline hot paths, add benchmarks, bump to v2.44.15
j-mendez Feb 5, 2026
5aa1c88
feat(agent): add relevance gate for remote multimodal crawling
j-mendez Feb 5, 2026
cc94f9f
perf: optimize trie, robot parser, and URL preparation hot paths, bum…
j-mendez Feb 5, 2026
63790a5
perf: fast-path trie protocol detection, remove redundant char bounda…
j-mendez Feb 5, 2026
8bde9bc
feat(agent): add URL-level relevance pre-filter for crawling, bump to…
j-mendez Feb 5, 2026
cf42bd0
feat: integrate spider_skills crate for skill types and web challenge…
j-mendez Feb 5, 2026
891ac91
chore: bump to v2.44.19 for release
j-mendez Feb 5, 2026
1aea141
fix: broken chrome feature — missing `relevant` field and cfg gate on…
j-mendez Feb 6, 2026
e482ec1
chore: bump to v2.44.20 for release
j-mendez Feb 6, 2026
e11e5a8
fix: feature flag compilation issues across wreq, agent_full, and cac…
j-mendez Feb 6, 2026
9b4ee5d
test(ignore): add test_crawl_subdomains to ignore
j-mendez Feb 6, 2026
e339ed0
fix: feature flag compilation issues across multiple feature combos
j-mendez Feb 6, 2026
93fe558
docs: add Spider Cloud reliability integration section to README
j-mendez Feb 6, 2026
4db13db
feat: extraction-only mode optimization for single-round data extraction
j-mendez Feb 6, 2026
37bba0a
feat: dual-model routing examples and comprehensive tests
j-mendez Feb 6, 2026
66edeae
docs: update dual-model example with per-endpoint URL and API key con…
j-mendez Feb 6, 2026
195a4ae
chore(client): add fallback agent declaring
j-mendez Feb 7, 2026
3c0b7e1
feat(spider_cli): add runtime http/headless mode controls and release…
j-mendez Feb 7, 2026
73ea5c8
release: bump workspace crates to 2.44.27
j-mendez Feb 7, 2026
3c1eecb
Expose optional automation reasoning in metadata and bump 2.44.28
j-mendez Feb 7, 2026
f95e552
Improve remote multimodal automation reliability and release 2.44.29
j-mendez Feb 7, 2026
a7130f1
Update Cargo.lock for 2.44.29
j-mendez Feb 7, 2026
877d462
feat: add spider cloud end-to-end examples and bump crates to 2.44.30
j-mendez Feb 7, 2026
e21df8b
Improve cache skip-browser flows and add remote cache e2e example
j-mendez Feb 7, 2026
31fda33
Add crawl_smart cache parity test and bump crates to 2.44.32
j-mendez Feb 7, 2026
3d3df39
feat(cache): optimize automation caching and bump crates to 2.44.33
j-mendez Feb 7, 2026
3576913
fix: improve agent concurrency and ensure all-feature builds
j-mendez Feb 8, 2026
e5adbbd
chore: fix lint warnings and feature-combo build regressions
j-mendez Feb 8, 2026
2a6aeda
feat(agent): optimize text-only rounds and bump workspace crates
j-mendez Feb 8, 2026
7318402
test(website): fix rotation cases
j-mendez Feb 8, 2026
78c2619
chore(agent): add improved steps
j-mendez Feb 8, 2026
bb004e5
feat(agent): add L8-L14 skills, WAM engine loop, and Chrome AI improv…
j-mendez Feb 8, 2026
3bf42c1
fix: add should_use_chrome_ai to stub RemoteMultimodalConfigs
j-mendez Feb 8, 2026
fa3589d
feat(agent): add L15-L48 skills, NEST/CIRCLE engine loops, haiku benc…
j-mendez Feb 8, 2026
52fc662
refactor(agent): move all skill content to spider_skills crate
j-mendez Feb 8, 2026
eefb258
docs: add missing feature flags, Spider Cloud example, and integratio…
j-mendez Feb 8, 2026
249023c
feat(agent): integrate llm_models_spider v0.1.9 with smart model sele…
j-mendez Feb 9, 2026
2c8c3f2
chore: clarify network event collection comment (#350)
hobostay Feb 10, 2026
f320262
fix(website): use page's own URL for relative link resolution on subd…
azudev4 Feb 10, 2026
172dd5d
fix(website): add tests for subdomain relative URL resolution, bump v…
j-mendez Feb 10, 2026
43aa6d0
perf(website): use take() instead of clone() for subdomain base URL
j-mendez Feb 10, 2026
0c3b49a
chore: bump v2.44.42
j-mendez Feb 10, 2026
3f48ab0
chore(deps): major version bumps, bump v2.45.0
j-mendez Feb 10, 2026
98d3783
refactor(agent): extract types and HTML cleaning into spider_agent_ty…
j-mendez Feb 10, 2026
8a97830
feat(io_uring): expand io_uring integration for file I/O, bump v2.45.1
j-mendez Feb 11, 2026
e3d58d2
perf(io_uring): add StreamingWriter for streaming file I/O, bump v2.45.2
j-mendez Feb 11, 2026
b7b3c7a
fix(uring_fs): fix compile errors when io_uring feature is enabled
j-mendez Feb 11, 2026
c4f13d6
chore: bump spider to v2.45.3
j-mendez Feb 11, 2026
f0ab35a
chore: bump all workspace crates to v2.45.3
j-mendez Feb 11, 2026
e55e52f
fix: skip caching empty/near-empty HTML responses
j-mendez Feb 11, 2026
3073e31
chore: bump all workspace crates to v2.45.4
j-mendez Feb 11, 2026
28dbb60
fix: skip HTML-specific heuristics in cache empty check for non-HTML …
j-mendez Feb 11, 2026
ab10c75
feat: add work-stealing (hedged requests) for slow crawl requests
j-mendez Feb 11, 2026
eebc574
fix: add Website::with_hedge() forwarding method + bump to v2.45.7
j-mendez Feb 11, 2026
1d03039
feat: cache-first fast path — skip browser/HTTP when cache has data
j-mendez Feb 11, 2026
5ed68df
feat: deferred Chrome — cache-only crawl phase before browser launch
j-mendez Feb 11, 2026
bac4f38
fix: invalidate empty HTML shell responses on cache read path
j-mendez Feb 11, 2026
7e7859a
fix: reject empty HTML from all cache and seeded resource paths
j-mendez Feb 11, 2026
4c2491c
fix: auto-retry www. URLs on SSL protocol errors — strip www prefix
j-mendez Feb 12, 2026
c6fd57a
fix: smart mode lifecycle waiting — match Chrome coverage without re-…
j-mendez Feb 12, 2026
5716dc6
fix: Chrome mode honors wait_for config for networkIdle before HTML e…
j-mendez Feb 12, 2026
7333721
feat(cli): add wait-for capabilities to spider_cli (#352)
salim-b Feb 14, 2026
ece5932
release(cli): 2.45.15 wait_for
j-mendez Feb 14, 2026
aa84624
test: comprehensive multi-LLM router reliability tests + bump 2.45.16
j-mendez Feb 15, 2026
233ca9a
perf: skip model scoring for pools ≤ 2 models + bump 2.45.17
j-mendez Feb 15, 2026
f905e2f
feat: per-round model pool routing for cost-optimized automation + bu…
j-mendez Feb 15, 2026
f7f6b3f
test: comprehensive crawler-test.com integration suite (302 tests, 40…
j-mendez Feb 15, 2026
e9b0741
fix: add no_sandbox() to headless BrowserConfig (#354)
azudev4 Feb 15, 2026
3f86e9c
chore(chrome): 2.45.19 root sandbox default launch
j-mendez Feb 15, 2026
425ef55
docs(spider_agent): add SKILLS.md for engine skill integration reference
j-mendez Feb 16, 2026
65a32f1
chore(agent): fix model router import
j-mendez Feb 17, 2026
db25858
chore: bump all crates to 2.45.21, chromey 2.38.4
j-mendez Feb 19, 2026
46bec92
fix(cache): enable cache_chrome_hybrid_mem feature for Chrome cache w…
j-mendez Feb 19, 2026
e2b7f7f
chore: bump all workspace crates to v2.45.22
j-mendez Feb 19, 2026
55af2cf
fix(cache): Period policy bypasses HTTP is_stale for Chrome-rendered …
j-mendez Feb 19, 2026
869ff2c
fix(cache): proper HTTP staleness for Chrome-cached pages
j-mendez Feb 19, 2026
b83ec9f
docs: rewrite CONTRIBUTING.md and add zero-config quick start to README
j-mendez Feb 21, 2026
db17dfc
docs: add Contributor Covenant v2.1 Code of Conduct
j-mendez Feb 21, 2026
d00ed40
docs: rewrite README, add issue/PR templates, security policy, CI imp…
j-mendez Feb 21, 2026
734258a
chore(deps): bump flexbuffers 2->25, async-openai 0.32->0.33, clap 4.…
j-mendez Feb 21, 2026
d53176d
chore: fix clippy warnings and formatting across workspace
j-mendez Feb 21, 2026
63b7c4a
chore: remove cargo dependabot, keep github-actions only
j-mendez Feb 21, 2026
ac0e0f1
docs: backfill CHANGELOG v2.45.1-v2.45.22 and add .editorconfig
j-mendez Feb 21, 2026
41b2e37
chore: ignore RUSTSEC-2026-0002 (lru 0.13.0 via wreq)
j-mendez Feb 21, 2026
fb4dd04
chore: ignore RUSTSEC-2025-0134 (rustls-pemfile via warp)
j-mendez Feb 21, 2026
8be3b6c
chore: ignore transitive audit advisories with no direct fix
j-mendez Feb 21, 2026
3aa48ee
fix: use final redirect URL as base for relative link resolution (#364)
azudev4 Feb 23, 2026
c5ae3bf
chore(release): 2.45.25
j-mendez Feb 23, 2026
443188f
style: fix rustfmt formatting in smart_vs_chrome tests
j-mendez Feb 24, 2026
e76b38b
feat(agent): action feedback, partial result preservation, and JS err…
j-mendez Mar 2, 2026
e88e2b9
feat(agent): eval timeouts, spawn concurrency limiter, PageWaitStrate…
j-mendez Mar 2, 2026
948b72e
feat(agent): action handler hardening — duration caps, JS escape, tim…
j-mendez Mar 2, 2026
2cdcb40
feat(agent): eliminate panics, silent failures, and unbounded growth
j-mendez Mar 2, 2026
6c210e1
feat: upgrade to reqwest 0.13 ecosystem
j-mendez Mar 6, 2026
0485428
style: fix rustfmt formatting in reqwest 0.13 upgrade
j-mendez Mar 6, 2026
573fac1
feat(agent): add Anthropic Messages API thinking/extended thinking su…
j-mendez Mar 10, 2026
6612354
feat(agent): retry on different model for 502/503/429/5xx errors
j-mendez Mar 10, 2026
5c6430a
chore: bump all crates to v2.46.2
j-mendez Mar 10, 2026
ac542e0
chore: bump spider_agent to v2.46.3 (v2.46.2 already published)
j-mendez Mar 10, 2026
a913800
feat: add per-chunk idle timeout to prevent tarpit/slow-drip antibot …
j-mendez Mar 11, 2026
6f00404
feat(chrome): add network idle timeout to prevent tarpit during CDP n…
j-mendez Mar 11, 2026
71a51d0
fix: 598/599 status codes return ConnectError, bump all crates to v2.…
j-mendez Mar 11, 2026
d6c2ae2
fix: validate 598/599 as genuine errors before ConnectError, bump to …
j-mendez Mar 11, 2026
9c08b93
feat: detect Alibaba TMD anti-bot, force Chrome upgrade in smart mode…
j-mendez Mar 12, 2026
a56adac
fix: lazy anti-bot body check in smart mode, exhaustive pattern tests…
j-mendez Mar 12, 2026
6124eba
perf: eliminate wasteful allocations on hot paths, bump to v2.47.6
j-mendez Mar 12, 2026
f41370f
perf: Arc for external_domains_caseless, skip charset lowercase alloc…
j-mendez Mar 12, 2026
4d69edf
perf: unbox redirect_limit/cookie_str/request_timeout, remove charset…
j-mendez Mar 12, 2026
fa8941b
perf: reduce Page html from Box<Vec<u8>> to Box<[u8]>, bump to v2.47.9
j-mendez Mar 12, 2026
b02f06b
fix: include webdriver feature Box<[u8]> conversion, bump to v2.47.10
j-mendez Mar 12, 2026
5308173
fix: 599 status with real content no longer misclassified as ConnectE…
j-mendez Mar 12, 2026
276b50c
chore(crawler): add v2.47.12
j-mendez Mar 12, 2026
8de2bc4
fix: DNS resolve errors (525) skip all retry loops, bump to v2.47.13
j-mendez Mar 13, 2026
a726b90
fix: auto-append /chat/completions for OpenAI-compatible URLs, add pr…
j-mendez Mar 13, 2026
67b343e
feat: expose underlying HTTP client and configurable timeout on agent…
j-mendez Mar 13, 2026
afca369
feat: OpenAI Responses API support (opt-in), bump to v2.47.16
j-mendez Mar 13, 2026
42dcc8a
feat: Auto API mode — api.openai.com uses Responses API, others use C…
j-mendez Mar 13, 2026
7bc07b5
fix: enforce hard wall-clock timeout on all crawl entry points
j-mendez Mar 13, 2026
3991007
chore: bump all crates to 2.47.18
j-mendez Mar 13, 2026
73689fc
fix: detect and flag truncated responses from upstream Content-Length…
j-mendez Mar 14, 2026
1da41ea
fix: eliminate panic sites and unsafe indexing, bump to v2.47.21
j-mendez Mar 14, 2026
adb8bda
fix: replace tokio-uring with raw io-uring crate + kernel probe, bump…
j-mendez Mar 14, 2026
c515dc0
Add Zhihu cookie login example
Mikarsa Mar 15, 2026
131bf6f
据说cli好
Mar 15, 2026
9095175
全部编译成功
Mar 15, 2026
26e0385
Add authenticated page capture to spider CLI
Mikarsa Mar 15, 2026
f7c6363
Merge pull request #2 from bfzha/auth-page-cli
bfzha Mar 15, 2026
766d658
合并代码构建cli时引用了utils
Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Bazel output directories
bazel-out
bazel-bin
bazel-testlogs
bazel-genfiles

# Bazel workspace symlinks
bazel-*

# Bazel cache
.bazel_cache

# User-specific bazelrc
.bazelrc.user

# Generated files from crate_universe
crates_io_*.json

# Go module files (managed by Bazel)
go.mod
go.sum

# Node modules (managed by Bazel)
node_modules/
package-lock.json
93 changes: 93 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Bazel configuration for Spider project

# Build options
build --incompatible_enable_cc_toolchain_resolution

# Fix for aws-lc-sys jitterentropy: allow crates to control their own optimization
build --repo_env=CRATE_CC_NO_DEFAULTS=1

# Common build settings
build --verbose_failures
build --worker_verbose

# Output formatting
build --experimental_repository_cache_hardlinks

# Feature flag configurations
# These can be enabled with --config=<feature_name>

# Chrome browser automation
build:chrome --//:chrome=true

# OpenAI integration
build:openai --//:openai=true

# io_uring support (Linux only)
build:io_uring --//:io_uring=true

# Gemini integration
build:gemini --//:gemini=true

# WebDriver support
build:webdriver --//:webdriver=true

# Serde serialization
build:serde --//:serde=true

# Cache support
build:cache --//:cache=true

# Sitemap support
build:sitemap --//:sitemap=true

# Smart crawling
build:smart --//:smart=true

# Cron scheduling
build:cron --//:cron=true

# Tracing
build:tracing --//:tracing=true

# Firewall
build:firewall --//:firewall=true

# Spider Cloud integration
build:spider_cloud --//:spider_cloud=true

# Agent features
build:agent --//:agent=true
build:agent_openai --//:agent_openai=true
build:agent_chrome --//:agent_chrome=true
build:agent_webdriver --//:agent_webdriver=true
build:agent_skills --//:agent_skills=true
build:agent_full --//:agent_full=true

# Release build optimization
build:release --compilation_mode=opt
build:release --opt_level=3
build:release --lto=full

# Debug build
build:debug --compilation_mode=dbg

# Test configuration
test --test_output=errors
test --test_tag_filters=-manual

# Platform-specific settings
build:linux --platforms=@platforms//os:linux
build:macos --platforms=@platforms//os:macos
build:windows --platforms=@platforms//os:windows

# Remote cache (optional - uncomment if using remote cache)
# build --remote_cache=grpc://your-cache-server:9092

# Try to use all available cores
build --jobs=auto

# Disk cache (separate from output root)
build --disk_cache=~/.cache/bazel_cache

# Documentation
build:docs --//:docs=true
22 changes: 22 additions & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# https://rustsec.org/advisories/
[advisories]
ignore = [
# lru 0.13.0 unsound IterMut — transitive via wreq
"RUSTSEC-2026-0002",
# rustls-pemfile unmaintained — transitive via warp (spider_worker)
"RUSTSEC-2025-0134",
# rsa timing sidechannel — transitive via sqlx-mysql (no fix available)
"RUSTSEC-2023-0071",
# backoff unmaintained — transitive via async-openai, memvid-rs
"RUSTSEC-2025-0012",
# bincode unmaintained — transitive via memvid-rs, http-cache
"RUSTSEC-2025-0141",
# fxhash unmaintained — transitive via selectors (spider_scraper)
"RUSTSEC-2025-0057",
# instant unmaintained — transitive via backoff
"RUSTSEC-2024-0384",
# number_prefix unmaintained — transitive via indicatif (memvid-rs)
"RUSTSEC-2025-0119",
# paste unmaintained — transitive dep
"RUSTSEC-2024-0436",
]
21 changes: 21 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.{yml,yaml}]
indent_size = 2

[*.{md,markdown}]
trim_trailing_whitespace = false

[*.toml]
indent_size = 4

[Makefile]
indent_style = tab
60 changes: 60 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Bug Report
description: Report a bug or unexpected behavior
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: What happened?
description: A clear description of the bug.
placeholder: Describe the issue...
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: Minimal code or steps to reproduce the issue.
placeholder: |
1. Create a Website with...
2. Call crawl()...
3. Observe...
render: rust
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: What did you expect to happen?
validations:
required: true
- type: input
id: version
attributes:
label: Spider version
placeholder: "2.45.25"
validations:
required: true
- type: dropdown
id: features
attributes:
label: Rendering mode
options:
- HTTP (default)
- Chrome (CDP)
- WebDriver
- Smart mode
- Not applicable
validations:
required: true
- type: input
id: rust-version
attributes:
label: Rust version
placeholder: "Output of `rustc --version`"
- type: input
id: os
attributes:
label: Operating system
placeholder: "e.g. macOS 15, Ubuntu 24.04, Windows 11"
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Discord
url: https://discord.spider.cloud
about: Ask questions and get help from the community
- name: Documentation
url: https://docs.rs/spider/latest/spider
about: API reference and crate documentation
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Feature Request
description: Suggest a new feature or improvement
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: What problem does this solve?
description: Describe the use case or pain point.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: How you'd like it to work. Include API examples if you have them.
render: rust
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Other approaches you've thought about or workarounds you're using.
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## What does this PR do?

<!-- Brief description of the change. -->

## How was this tested?

<!-- How did you verify this works? Link to relevant tests if applicable. -->

## Checklist

- [ ] `cargo test` passes
- [ ] `cargo fmt` applied
- [ ] New public APIs have doc comments
- [ ] Feature-gated behind a flag (if adding optional functionality)
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
labels:
- "dependencies"
19 changes: 19 additions & 0 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Security Audit

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "0 6 * * 1" # Every Monday at 6am UTC

jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-audit
run: cargo install cargo-audit --locked || true
- name: Run audit
run: cargo audit
52 changes: 52 additions & 0 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Benches
on:
push:
branches: [main]
pull_request:
branches: [main]

env:
CARGO_TERM_COLOR: always
RUST_LOG: "off"
SPIDER_BENCH_URL: http://localhost:3000

concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: cache
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Setup Local Web server
id: server
run: |
set +e
git clone https://github.com/tailwindlabs/tailwindcss.com || exit 0
cd tailwindcss.com || exit 0
npm i --force || exit 0
npm run build
if [ $? -eq 0 ]; then
echo "status=ok" >> $GITHUB_OUTPUT
npm run start &
else
echo "Server build failed"
echo "status=failed" >> $GITHUB_OUTPUT
fi
- name: Run Benchmark Compare OSS
if: steps.server.outputs.status == 'ok'
run: cargo bench --bench crawl
- name: Run Benchmark Compare OSS - Features[decentralized]
if: steps.server.outputs.status == 'ok'
run: cargo bench --bench crawl --features decentralized
36 changes: 36 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Lint

on:
push:
branches: [main]
pull_request:
branches: [main]

env:
CARGO_TERM_COLOR: always

jobs:
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }}
- name: Clippy (default features)
run: cargo clippy --workspace -- -D warnings
- name: Clippy (chrome)
run: cargo clippy -p spider --features chrome -- -D warnings

fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check formatting
run: cargo fmt --all -- --check
Loading
Loading