fix: 代码审查问题修复
- C1 (Critical): 添加 PyYAML 解析 frontmatter,支持多行值和列表 - M1 (Major): 添加 FTS5 查询验证,防止注入攻击 - M2/M3 (Major): 工具类使用显式 wiki_vault_path 参数 - M4 (Major): 集成 aiofiles 实现真正的异步文件 I/O - M5 (Major): 改用 logger.exception() 记录完整堆栈 Co-Authored-By: Claude Dev <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -92,11 +92,11 @@ class MCPServer:
|
||||
wiki_query = WikiQueryTool(self.query_service)
|
||||
memory_bridge = MemoryBridgeTool(self.query_service)
|
||||
wiki_status = WikiStatusTool(self.query_service, self.indexer_service, self.graph_service)
|
||||
wiki_lint = WikiLintTool(self.parser_service, self.query_service, self.graph_service)
|
||||
wiki_lint = WikiLintTool(self.parser_service, self.query_service, self.graph_service, self.wiki_vault_path)
|
||||
cross_linker = CrossLinkerTool(self.graph_service)
|
||||
tag_taxonomy = TagTaxonomyTool(self.query_service)
|
||||
wiki_synthesize = WikiSynthesizeTool(self.query_service, self.graph_service)
|
||||
daily_update = DailyUpdateTool(self.query_service, self.indexer_service)
|
||||
daily_update = DailyUpdateTool(self.query_service, self.indexer_service, self.wiki_vault_path)
|
||||
|
||||
# 注册工具
|
||||
self.tools = {
|
||||
@@ -151,10 +151,13 @@ class MCPServer:
|
||||
result = await self.tools[name](**arguments)
|
||||
return [TextContent(type="text", text=json.dumps(result, ensure_ascii=False, indent=2))]
|
||||
except Exception as e:
|
||||
logger.error(f"Error calling tool {name}: {e}")
|
||||
# 记录完整堆栈用于调试
|
||||
logger.exception(f"Error calling tool {name} with arguments {arguments}")
|
||||
# 返回用户友好的错误消息
|
||||
return [TextContent(type="text", text=json.dumps({
|
||||
"success": False,
|
||||
"error": str(e)
|
||||
"error": str(e),
|
||||
"tool": name
|
||||
}, ensure_ascii=False))]
|
||||
|
||||
async def run(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user