From 4cf9fc2e376776eb4379d76fd05aa9cdb46ffa1f Mon Sep 17 00:00:00 2001 From: claude_dev Date: Sun, 28 Jun 2026 07:56:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E8=BF=9E=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E6=89=A9=E5=B1=95=E7=9A=84=20strip()=20=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=B0=BE=E9=9A=8F=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 _expand_hyphenated_text() 尾随空格问题 - trailing- → trailing (无尾随空格) - -leading → leading (无前导空格) - 所有边缘情况测试通过 Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/review_agent.md | 55 ++++++++++++++++++++++++++++++++++ mcp_server/storage/database.py | 4 +-- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 .claude/review_agent.md diff --git a/.claude/review_agent.md b/.claude/review_agent.md new file mode 100644 index 0000000..3569f7f --- /dev/null +++ b/.claude/review_agent.md @@ -0,0 +1,55 @@ +# Code Review Agent - sanguo_llmwiki 搜索改进 + +## 任务 + +对以下 PR 进行全面的代码审查: + +**分支**: `feat/search-improvements` → `main` +**提交**: `feat: 搜索改进与代码修复` + +## 审查重点 + +### 1. 搜索改进功能 + +**连字符扩展** (`database.py:505-519`): +```python +def _expand_hyphenated_text(self, text: str) -> str: + if not text: + return "" + return text.replace('-', ' ') +``` +- 检查是否有边缘情况处理(如连续连字符、连字符在开头/结尾) +- 验证扩展后的文本是否正确存储到 FTS 表 + +**中文同义词支持** (`query.py:17-27, 53-74`): +- 检查同义词映射表是否完整 +- 验证查询扩展逻辑是否正确处理 OR 连接 +- 检查缓存 key 是否包含 `use_synonyms` 参数 + +### 2. 代码质量 + +- 一致性:代码风格是否与现有代码一致 +- 错误处理:是否有适当的异常处理 +- 性能:查询扩展是否会影响性能 +- 测试覆盖:新功能是否有对应测试 + +### 3. 文档更新 + +- 设计文档 (docs/02-design.md) 是否准确反映改动 +- 注释是否清晰 + +## 审查输出 + +请提供: + +1. **发现问题列表**(按严重性分类) +2. **建议改进** +3. **是否 LGTM(Looks Good To Me)** + +--- + +**参考文件**: +- mcp_server/services/query.py +- mcp_server/storage/database.py +- mcp_server/services/parser.py +- docs/02-design.md diff --git a/mcp_server/storage/database.py b/mcp_server/storage/database.py index 563985d..c422b20 100644 --- a/mcp_server/storage/database.py +++ b/mcp_server/storage/database.py @@ -518,11 +518,11 @@ class Database: text: 原始文本 Returns: - 扩展后的文本(连字符替换为空格) + 扩展后的文本(连字符替换为空格,并去除首尾空白) """ if not text: return "" - return text.replace('-', ' ') + return text.replace('-', ' ').strip() async def delete_fts_content(self, path: str) -> None: """删除 FTS5 内容"""