Repository navigation
[pull] main from firecrawl:main - #455
Merged
Merged
Conversation
* feat(api): record provider scrapes in the activity log Provider tool calls served through Scrape were logged to requests as scrape rows but never got a scrapes row, so the activity log showed them without status or credits. Write one, keyed by the same scrape id, with the alexandria: target as the url, the served credits, elapsed time and item outcome. Monitors already share the scrapes table this way. No document is involved, so the feedback job, job state, GCS copy and change tracking that page scrapes trigger are skipped. * fix(api): order provider activity log inserts * fix(api): log provider outcomes asynchronously in order * fix(api): capture key identity before background logging * fix(api): limit activity inputs and cover failed provider outcomes * Classify provider activity as Alexandria * fix(api): safely inspect activity query in test * fix(api): isolate Alexandria activity filter test setup
…ties (#4716) * feat(api): refuse free-plan teams on paid-plan-only Exchange capabilities Benzinga's Schedule C.4 allows full-text articles, WIIM and analyst ratings only in response to an authenticated, paid request. The Alexandria path already refuses keyless callers, requires an API key and Schedule acceptance, and reserves credits, but credits alone do not prove payment: a free team spends signup credits. The Exchange now lists the restricted addresses per provider as paidPlanOnlyCapabilities in /v1/provider-terms/requirements (firecrawl/exchange#623), which authorizeProviders already reads before every quote. When a call targets one of them, the team's Autumn rate-limit multiplier is read from the cached entity fetch (no extra Autumn call); below the hobby floor the request is refused with 403 paid_plan_required and nothing executes. Teams with bypassCreditChecks pass. A team with no Autumn entity reads as free and is refused. An Exchange that does not publish the field gates nothing, so deploy order is Exchange first. Tests cover the refusal, a paid team, an ungated capability not consulting the plan, the bypass flag, the absent field, and that the agreement check still runs first. Co-Authored-By: Claude <noreply@anthropic.com> * fix(api): the paid-plan gate fails closed when the plan cannot be known Review on #4716 was right: getRateLimitMultiplier answers the fail-open fallback (2500) for a team with no org and on any Autumn error, so the plan gate admitted exactly the requests it could not judge, and the comment claiming the opposite was wrong. The entity read behind getEntityLimits now reports what happened instead of choosing a fallback (readEntityLimits), and two readers sit on it: getEntityLimits keeps its fail-open throttling behaviour unchanged, and the new getKnownRateLimitMultiplier answers the entitled multiplier only when Autumn actually answered (1 for a missing entity or absent balance) and null otherwise. The gate refuses null with 503 plan_verification_unavailable and a below-hobby multiplier with 403 paid_plan_required, so a nameless org, a preview team and a billing outage all refuse rather than deliver licensed content. Tests: the free-team refusal now asserts a single requirements read and nothing else; a new case covers the null answer; the Autumn service tests cover the strict reader across a live entity, a 404, an empty balance, a 500, no org and a preview team, alongside the unchanged fail-open reads. The comment no longer claims the read is free: a warm cache costs nothing, a cold one costs the fetch the rate limiter would have made. Co-Authored-By: Claude <noreply@anthropic.com> * Reject missing organizations before reading cached plan entitlements * Scope cached Autumn entitlements to organization and team --------- Co-authored-by: Matthew Rodriguez <matthewrodriguez@Matthews-MacBook-Pro.local> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Developers Digest <124798203+developersdigest@users.noreply.github.com>
* Use Alexandria name in provider execution errors * Correct stale Alexandria access documentation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )