Repository navigation
search: make the search deadlines configurable - #15495
Merged
diegosouzapw merged 1 commit intoOct 6, 2026
Merged
diegosouzapw merged 1 commit into
diegosouzapw merged 1 commit into
Conversation
Both deadlines were constants, so a slow search provider was cut off at 10-15 seconds with no way to raise it. searchTimeoutMs sets the whole request budget and searchProviderTimeoutsMs overrides one provider. Unset, both keep their old values. The settings page gets a card for them, and the inputs save on blur so a half-typed number is not stored. Signed-off-by: Minxi Hou <houminxi@gmail.com>
diegosouzapw
merged commit Oct 6, 2026
15c9588
into
diegosouzapw:release/v3.8.52
41 of 51 checks passed
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
/v1/searchcuts a request off at a fixed 15 seconds, and each provider has its own fixed timeout on top of that (10 seconds for exa, tavily and context7). A slow upstream comes back asThis operation was aborted, and there is no setting to raise either number.This adds two settings:
searchTimeoutMssets the whole-request budget. It drives the three provider execution paths and the failover window together, so raising it cannot leave one path on the old constant.searchProviderTimeoutsMsoverrides a single provider's own timeout, keyed by provider id.Both are unset by default, and unset means the old values. The settings page gets a "Search timeouts" card under Routing. The number fields save when they lose focus, so a half-typed value is never stored, and a non-numeric entry is ignored.
Tests
tests/unit/search-timeout-budget.test.tshangs the upstream fetch and checks three things: a 50ms budget cuts the request off, no budget still cuts it off at the default, and a per-provider override beats that provider's own 10 second timeout. Removing either wiring makes the matching test wait the full 10 seconds and fail.Scope
No change to the default behaviour. Existing search tests pass unchanged.