feat(firecrawl): add keyless scrape support#94551
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 18, 2026, 12:16 PM ET / 16:16 UTC. Summary PR surface: Source +87, Tests +278, Docs +12, Config 0, Other 0. Total +377 across 28 files. Reproducibility: not applicable. as a bug reproduction; this is a feature PR. The feature premise is high-confidence because PR-head tests cover no-Authorization keyless scrape behavior and a fresh live unauthenticated Firecrawl scrape returned HTTP 200. Review metrics: 2 noteworthy metrics.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the narrowed existing-provider implementation only after maintainers accept the anonymous hosted Firecrawl boundary, generated-config side effect, dependency floor update, and exact-head checks are green. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction; this is a feature PR. The feature premise is high-confidence because PR-head tests cover no-Authorization keyless scrape behavior and a fresh live unauthenticated Firecrawl scrape returned HTTP 200. Is this the best way to solve the issue? Yes for the narrowed scrape/fetch scope: preserving the existing firecrawl provider and requiring explicit fetch selection is narrower than the related parallel firecrawl-free provider PR. The remaining blocker is maintainer product/security acceptance, not a better code location. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 508594a620f2. Label changesLabel justifications:
Evidence reviewedPR surface: Source +87, Tests +278, Docs +12, Config 0, Other 0. Total +377 across 28 files. View PR surface stats
Security concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
fdba6fe to
d5ad417
Compare
d5ad417 to
a4e675b
Compare
Co-authored-by: Developers Digest <[email protected]>
a4e675b to
a0a9c89
Compare
Dependency GuardThis PR changes dependency-related files. Maintainers should confirm these changes are intentional. Changed files:
Maintainer follow-up:
|
Dependency graph changes notedThis PR includes dependency graph changes. The dependency guard is informational because the PR author is a repository admin or a member of
Security review is still recommended before merge when the dependency graph change is intentional. |
|
Landing under maintainer approval while the exact-head CI workflow is queue-bound, not failing. Verification completed:
The prior |
Merged under maintainer approval while exact-head CI was queue-bound. Co-authored-by: Developers Digest <[email protected]> Co-authored-by: Vincent Koc <[email protected]>
Merged under maintainer approval while exact-head CI was queue-bound. Co-authored-by: Developers Digest <[email protected]> Co-authored-by: Vincent Koc <[email protected]>
Summary
web_fetchfallback without an API key; send a bearer token only when one is configured for higher limits.web_fetch, unless another fetch provider is already explicit.Release note: Firecrawl scrape and selected
web_fetchfallback now support keyless starter access. Configured keys still apply higher account limits.Credit: @developersdigest independently surfaced the keyless Firecrawl capability in #93590; this narrow canonical implementation preserves the existing
firecrawlprovider instead of introducing a parallel provider model.Linked Context
Real Behavior Proof
POST https://api.firecrawl.dev/v2/scrapewith{"url":"https://example.com","formats":["markdown"]}.200withsuccess: true; noAuthorizationheader was sent.Verification
node scripts/run-vitest.mjs extensions/firecrawl/src/firecrawl-tools.test.ts src/secrets/runtime-web-tools.test.ts src/web-fetch/runtime.test.tsnode scripts/check-docs-mdx.mjs docs README.mdnode scripts/docs-link-audit.mjsnode scripts/check-docs-i18n-glossary.mjsnode scripts/check-src-extension-import-boundary.mjs --jsonnode scripts/crabbox-wrapper.mjs run --provider aws --idle-timeout 90m --ttl 240m --timing-json -- env OPENCLAW_CHECK_CHANGED_REMOTE_CHILD=1 OPENCLAW_CHANGED_LANES_RAW_SYNC=1 corepack pnpm check:changedcbx_516dca401270, runrun_152e7d0e1f5e, exit0..agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main --no-webRisk Checklist