diff --git a/docs/develop-guides/roadmap.md b/docs/develop-guides/roadmap.md index 7ea0a5a5..20b98b1a 100644 --- a/docs/develop-guides/roadmap.md +++ b/docs/develop-guides/roadmap.md @@ -36,6 +36,7 @@ - 调整 backend Python 工作区依赖边界:将 `backend/package/yuxi` 明确为承载核心运行依赖的业务包,根 `backend/pyproject.toml` 仅保留工作区入口与开发/测试配置,减少依赖职责混淆。 - 修复沙盒 `workspace` 隔离粒度:宿主机目录从共享 `saves/threads/shared/workspace` 收敛为用户级 `saves/threads/shared//workspace`,并同步传递 `user_id` 到 sandbox 路径解析、provisioner 挂载与 viewer/chat 测试,保证同用户跨线程共享、不同用户隔离。 +- 调整输入框 `@` 提及中的文件搜索交互:无查询内容时不再直接展示文件列表,改为提示“输入相关内容以搜索文件”,避免未过滤结果干扰选择。 历史版本发布记录已迁移到 [版本变更记录](./changelog.md)。 diff --git a/web/src/components/MessageInputComponent.vue b/web/src/components/MessageInputComponent.vue index 542287ca..7bc15c7d 100644 --- a/web/src/components/MessageInputComponent.vue +++ b/web/src/components/MessageInputComponent.vue @@ -46,16 +46,21 @@ >
-
+
文件
-
- {{ item.label }} +
+ 输入相关内容以搜索文件
+
@@ -252,7 +257,6 @@ const updateMentionItems = (query = '') => { const lowerQuery = query.toLowerCase() const { files = [], knowledgeBases = [], mcps = [], skills = [], subagents = [] } = props.mention - const workspacePrefix = '/home/gem/user-data/workspace/' const filterItems = (list) => list.filter((item) => { @@ -273,7 +277,7 @@ const updateMentionItems = (query = '') => { const filterFileItems = (list) => { if (!query) { - return list.filter((item) => !String(item.value || '').startsWith(workspacePrefix)) + return [] } return filterItems(list) } @@ -372,9 +376,14 @@ const isItemSelected = (type, index) => { } // 是否有任何候选项 +const showFileSearchPrompt = computed(() => { + return Boolean(props.mention?.files?.length) && !mentionQuery.value +}) + const hasAnyItems = computed(() => { const items = mentionItems.value return ( + showFileSearchPrompt.value || items.files.length > 0 || items.knowledgeBases.length > 0 || items.mcps.length > 0 || @@ -883,5 +892,11 @@ defineExpose({ color: var(--gray-400); font-size: 13px; } + + .mention-search-placeholder { + padding: 4px 8px; + color: var(--gray-400); + font-size: 13px; + } }