Skip to content

🧪 test(mcp): 补充成功响应 JSON 回归 - #112

Merged
ZhaoXingPeng merged 1 commit into
mainfrom
fix/107-mcp-success-json
Sep 7, 2026
Merged

🧪 test(mcp): 补充成功响应 JSON 回归#112
ZhaoXingPeng merged 1 commit into
mainfrom
fix/107-mcp-success-json

Conversation

@ZhaoXingPeng

@ZhaoXingPeng ZhaoXingPeng commented Sep 7, 2026

Copy link
Copy Markdown
Owner

关联 Issue

Refs #107

背景(Situation)

该历史 PR 与 #110 共享同一实现提交 fc01c97,展示层此前重复使用 :bug: fix(mcp): 统一成功响应 JSON 序列化 标题和同一段简短正文,无法区分实现记录与回归记录,也使 Issue/PR 关系不清晰。

任务(Task)

将本条历史记录明确标识为成功响应 JSON 回归覆盖,保留可追溯的输入、结果和边界;不伪造第二份实现或新的运行时行为。

行动(Action)

  • 重命名 PR 为 :test_tube: test(mcp): 补充成功响应 JSON 回归,与记录职责一致。
  • 说明其与 🐛 fix(mcp): 统一成功响应 JSON 序列化 #110 的共享提交关系,并将 Issue 改为引用而非重复关闭。
  • 补充 json.loads 断言、成功/失败 envelope 和未测边界。
  • 没有做什么:不重复修改 mcp_tools.py,不改变公共 payload,不重写合并提交历史。

验证(Verification)

环境:Windows 11,Python 3.12.12。

  • 共享提交对应的 MCP 定向回归:30 passed。
  • 完整 PYTHONPATH=src python -m pytest tests/unit/ -q:651 passed。
  • ruff check src tests scripts、格式检查和 git diff --check:通过。

实验与证据(Evidence)

受控成功查询和表存在性响应经 json.loads 均可解析;success=false 错误 envelope 仍保持 JSON。该 PR 不声称新增代码,只把重复历史记录、验证结果和边界补充清楚。

兼容性、风险与回滚

  • 公共 API / 数据格式 / 迁移:无变化;这是合并 PR 展示元数据与测试职责说明修复。
  • 风险与已知限制:旧的 fc01c97 提交标题仍不可变;PR 标题用于浏览,不能替代 commit object。
  • 回滚:恢复 PR 标题/正文即可;不涉及运行时回滚或数据。
  • 后续 Issue:继续由 🐛 fix(mcp): 统一成功响应 JSON 序列化 #107 跟踪其他历史 handler 的 JSON 审计。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

问题复现:成功响应的 Raw Response 在多个工具中使用 Python repr,布尔值、空值和字符串格式不符合 JSON;失败响应却使用 json.dumps,造成同一 MCP 边界两套协议。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

实现记录:统一连接、表存在性、查询、表描述、列、主键、外键和索引成功路径的 JSON 序列化,保留用户可读摘要和既有字段名。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

实验结果:对 Raw Response 片段执行 json.loads,查询和表存在性路径由失败变为成功,True/None/list 等值保持 JSON 语义。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

测试记录:定向 MCP 回归 30 项通过,完整单元测试 651 项通过,Ruff 检查与 diff 检查通过。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

兼容性边界:客户端应按 JSON 解析,不再依赖 Python repr;本次未建立可比性能基准,性能数据未测量。

@ZhaoXingPeng
ZhaoXingPeng merged commit 6c86b90 into main Sep 7, 2026
19 checks passed
@ZhaoXingPeng ZhaoXingPeng changed the title 🐛 fix(mcp): 统一成功响应 JSON 序列化 🧪 test(mcp): 补充成功响应 JSON 回归 Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant