docs: 添加 ToolSearch 设计指南 + 禁用 turn-zero 工具推荐弹窗

- 新增 docs/design/tool-search-design-guide.md,涵盖架构、搜索算法、执行管道、演进历史
- 禁用 getTurnZeroSearchExtraToolsPrefetch,消除用户输入时的频繁弹窗
- inter-turn 发现机制保持不变

Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win>
This commit is contained in:
claude-code-best
2026-05-09 16:45:56 +08:00
parent bd2253846f
commit 2cf18c4c49
61 changed files with 753 additions and 423 deletions

View File

@@ -446,8 +446,8 @@ import { useLspPluginRecommendation } from 'src/hooks/useLspPluginRecommendation
import { LspRecommendationMenu } from 'src/components/LspRecommendation/LspRecommendationMenu.js';
import { useClaudeCodeHintRecommendation } from 'src/hooks/useClaudeCodeHintRecommendation.js';
import { PluginHintMenu } from 'src/components/ClaudeCodeHint/PluginHintMenu.js';
import { ToolSearchHint } from 'src/components/ToolSearchHint.js';
import { useToolSearchHint } from 'src/hooks/useToolSearchHint.js';
import { SearchExtraToolsHint } from 'src/components/SearchExtraToolsHint.js';
import { useSearchExtraToolsHint } from 'src/hooks/useSearchExtraToolsHint.js';
import {
DesktopUpsellStartup,
shouldShowDesktopUpsellStartup,
@@ -1038,7 +1038,7 @@ export function REPL({
useTeammateLifecycleNotification();
const { recommendation: lspRecommendation, handleResponse: handleLspResponse } = useLspPluginRecommendation();
const { recommendation: hintRecommendation, handleResponse: handleHintResponse } = useClaudeCodeHintRecommendation();
const toolSearchHint = useToolSearchHint();
const searchExtraToolsHint = useSearchExtraToolsHint();
// Memoize the combined initial tools array to prevent reference changes
const combinedInitialTools = useMemo(() => {
@@ -2394,7 +2394,7 @@ export function REPL({
| 'remote-callout'
| 'lsp-recommendation'
| 'plugin-hint'
| 'tool-search-hint'
| 'search-extra-tools-hint'
| 'desktop-upsell'
| 'ultraplan-choice'
| 'ultraplan-launch'
@@ -2450,7 +2450,7 @@ export function REPL({
if (allowDialogsWithAnimation && hintRecommendation) return 'plugin-hint';
// Tool search hint (discovered tools relevant to current query)
if (allowDialogsWithAnimation && toolSearchHint.visible) return 'tool-search-hint';
if (allowDialogsWithAnimation && searchExtraToolsHint.visible) return 'search-extra-tools-hint';
// Desktop app upsell (max 3 launches, lowest priority)
if (allowDialogsWithAnimation && showDesktopUpsellStartup) return 'desktop-upsell';
@@ -6180,11 +6180,11 @@ export function REPL({
/>
)}
{focusedInputDialog === 'tool-search-hint' && toolSearchHint.visible && (
<ToolSearchHint
tools={toolSearchHint.tools}
onSelect={toolSearchHint.handleSelect}
onDismiss={toolSearchHint.handleDismiss}
{focusedInputDialog === 'search-extra-tools-hint' && searchExtraToolsHint.visible && (
<SearchExtraToolsHint
tools={searchExtraToolsHint.tools}
onSelect={searchExtraToolsHint.handleSelect}
onDismiss={searchExtraToolsHint.handleDismiss}
/>
)}