feat(websearch): add Querit search provider#13050
Conversation
Add Querit as a new web search provider option. Querit provides web search API capabilities with Bearer token authentication. Changes: - Add QueritProvider implementation - Add Querit logo asset and icon component - Register Querit in WebSearchProviderFactory - Add Querit configuration in webSearchProviders.ts - Add migration (v200) to add Querit provider - Update UI components to display Querit logo Co-Authored-By: Claude Opus 4.6 <[email protected]>
GeorgeDong32
left a comment
There was a problem hiding this comment.
代码审查总结
整体实现质量良好,遵循了项目现有搜索提供商的模式。以下是几点建议:
建议修改
- 构造函数添加 API key 验证 - 与 BochaProvider 保持一致
- 确认 page_age 字段 - 疑似 typo,需验证 API 实际返回字段名
- 方法签名统一 - 建议添加 httpOptions 参数与基类一致
结论
代码可以合并,建议作者考虑上述建议后进行优化。
Add httpOptions parameter to search method for consistency with BaseWebSearchProvider and support request cancellation via AbortSignal. Co-Authored-By: Claude Opus 4.6 <[email protected]>
DeJeune
left a comment
There was a problem hiding this comment.
Overall the implementation follows existing patterns well and the API integration is correct per the Querit API docs. Two functional gaps should be addressed before merging.
|
|
||
| const params: Record<string, unknown> = { | ||
| query, | ||
| count: websearch.maxResults |
There was a problem hiding this comment.
The Querit API supports filters.sites.exclude (array of strings) and filters.timeRange.date (e.g. "d1" for one day). These map directly to websearch.excludeDomains and websearch.searchWithTime which are already wired up in BochaProvider.
Suggested change:
const params: Record<string, unknown> = {
query,
count: websearch.maxResults,
...(websearch.excludeDomains.length > 0 || websearch.searchWithTime
? {
filters: {
...(websearch.excludeDomains.length > 0 && {
sites: { exclude: websearch.excludeDomains }
}),
...(websearch.searchWithTime && {
timeRange: { date: 'd1' }
})
}
}
: {})
}There was a problem hiding this comment.
ok, I will fix it
- Compress querit.png from 84KB to 21KB - Add filters support (excludeDomains, searchWithTime) to QueritProvider - Update QueritLogo with brand SVG path Co-Authored-By: Claude Opus 4.6 <[email protected]>
a25aa8f to
2db0b2d
Compare
|
Note This comment was translated by Claude. @0xfullex Hi, gentle ping for a code review when you have a moment. Also, it looks like the workflows need a maintainer's approval to run. Could you help with that as well? Thank you! 🙏 Original Content@0xfullex Hi,gentle ping for a code review when you have a moment. Also, it looks like the workflows need a maintainer's approval to run. Could you help with that as well? Thank you! 🙏 |
src/renderer/src/pages/home/Inputbar/tools/components/WebSearchQuickPanelManager.tsx
Outdated
Show resolved
Hide resolved
src/renderer/src/pages/settings/WebSearchSettings/WebSearchProviderSetting.tsx
Outdated
Show resolved
Hide resolved
src/renderer/src/pages/settings/WebSearchSettings/BasicSettings.tsx
Outdated
Show resolved
Hide resolved
src/renderer/src/providers/WebSearchProvider/WebSearchProviderFactory.ts
Outdated
Show resolved
Hide resolved
|
@0xfullex @kangfenmao This PR is ready for merge |
|
Hi @0xfullex @kangfenmao , hope you're having a good week! Just a gentle ping on this PR. It's already approved by the others, so we're just waiting for your code-owner review. No rush, just wanted to put it on your radar whenever you have a moment. Thanks! |
### What this PR does Before this PR: - Version is 1.7.24 After this PR: - Version is 1.7.25 - Release notes updated in `electron-builder.yml` ### Why we need it and why it was done in this way Standard release workflow: collect commits since v1.7.24, generate bilingual release notes, bump version. The following tradeoffs were made: N/A The following alternatives were considered: N/A ### Breaking changes **Action Required**: The built-in filesystem MCP server now requires manual approval for write/edit/delete operations by default. ### Special notes for your reviewer **Included commits since v1.7.24:** ✨ New Features: - feat(websearch): add Querit search provider (#13050) - feat(minapp,provider): add MiniMax Agent, IMA mini apps and MiniMax Global, Z.ai providers (#13099) - feat(provider): add agent support filter for provider list (#11932) - feat(agent): add custom environment variables to agent configuration (#13357) - feat: add GPT-5.4 support (#13293) - feat(gemini): add thought signature persistence (#13100) 🐛 Bug Fixes: - fix: secure built-in filesystem MCP root handling (#13294) - fix: check underlying tool permissions for hub invoke/exec (#13282) - fix: remove approval countdown timers and add system notifications (#13281) - fix: agent tool status not stopping on abort (#13111) - fix: resolve spawn ENOENT on Windows for Code Tools (#13405) - fix: Use default assistant for topic auto-renaming (#13387) - fix(backup): defer auto backup during streaming response (#13307) - fix(ui): fix Move To submenu overflow (#13399) - fix: render xml fenced svg blocks as svg previews (#13431) - fix: correct Gemini reasoning params (#13388) - fix: improve Qwen 3.5 reasoning model detection (#13235) - fix: upgrade xAI web search to Responses API (#12812) - fix(api-server): relax chat completion validation (#13279) - fix: install or uninstall button state issues (#13114) - fix: improve update dialog behavior (#13363) - fix: auto-convert reasoning_effort to reasoningEffort (#12831) ### Checklist - [x] PR: The PR description is expressive enough and will help future contributors - [x] Code: Write code that humans can understand and Keep it simple - [x] Refactor: You have left the code cleaner than you found it (Boy Scout Rule) - [x] Upgrade: Impact of this change on upgrade flows was considered and addressed if required - [x] Documentation: A user-guide update was considered and is present (link) or not required. - [x] Self-review: I have reviewed my own code before requesting review from others ### Release note ```release-note See release notes in electron-builder.yml ``` --------- Signed-off-by: kangfenmao <[email protected]>
Add Querit as a new web search provider option. Querit provides web search API capabilities with Bearer token authentication.
Changes:
What this PR does
Before this PR:
Cherry Studio did not support Querit as a web search provider.
After this PR:
Users can now select Querit as a web search provider in settings. Querit.ai is a web search API provider that offers
high-quality search results with simple Bearer token authentication. It provides 1,000 free API requests for every user - we encourage
everyone to try it out! Get your API key at: https://www.querit.ai/en/dashboard/api-keys
Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
Added migration (v200) to automatically add Querit provider for existing users. Followed existing provider patterns (Tavily, Exa, Bocha) for
consistency.
The following alternatives were considered:
None, this is a straightforward addition following established patterns in the codebase.
Links to places where the discussion took place:
Breaking changes
None
Special notes for your reviewer
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.
simple
Rule)
the PR introduces or changes a user-facing feature or behavior.
Release note