You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(search): reserve interactive embeddings from their own admission lane (#7726)
* fix(search): reserve interactive embeddings from their own admission lane
A search embeds its query through the same per-credential admission bucket
as bulk indexing, so during a crawl one short interactive request competed
with hundreds of batches for the bucket's refill. Non-checkpointed callers
now reserve from a separate lane under the same identity; the provider
cooldown and quota gates stay shared, so a provider 429 or an exhausted
balance still pauses every caller.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JBacX6HGVhPMUySuMfANwn
* fix(search): cap the bulk embedding lane below the credential budget
Every caller reserves from the credential's aggregate buckets, and the bulk
lane additionally reserves from a bucket capped at 90% of that budget. The
aggregate can no longer exceed the configured budget, and interactive callers
always find headroom instead of a queue behind a crawl's batches.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JBacX6HGVhPMUySuMfANwn
* fix(search): keep a bulk lane bucket large enough for one valid reservation
At the smallest supported budgets the 90% share floored below a single
request or token cost and locked the bulk lane. The bucket now holds at least
the reservation it is asked for, while the refill rate keeps the share.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JBacX6HGVhPMUySuMfANwn
* refactor(search): derive the bulk admission lane from one flag
A single bulk flag now selects the shorter admission wait and the capped
lane, the lane cap is a pure function of configuration, and a bulk batch
larger than that cap is rejected up front instead of resizing a shared
bucket. Tests use the shared env mock.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
0 commit comments