Checklist
🐞 问题详细描述
问题描述
jiuwen_memory_entry/core/handler.py 中两个 handler 对布尔参数直接做真值判断,当调用方通过 JSON 传字符串 "false" 时(Python 中非空字符串均为 truthy)被误判为 true:
- _delete(第 740 行):
mode = DeleteMode.PURGE if payload.get("hard") else DeleteMode.FORGET
- _search(第 643 行):
trace = bool(payload.get("trace"))
复现步骤
调用 delete 接口,请求体传 {"item_id": "xxx", "hard": "false"}。
实际结果
- _delete:走 PURGE(物理删除、不可恢复)
- _search:with_trajectory=True,返回 trajectory 轨迹信息
期望结果
- _delete:"hard": "false" 走 FORGET(遗忘、可恢复)
- _search:"trace": "false" 不返回轨迹
建议
复用文件内已有的 _bool_value() 解析(_export_space 已在用同一函数),两处替换即可,1 文件 +2-2 行。
详细的环境信息描述
- 组件版本:agent-memory v0.2.0(pyproject.toml),mem2.0 分支最新提交 55e199f
- 运行环境:Windows 11 x64 / Python 3.13(项目要求 >=3.11,与 Python 版本无关,任意平台均复现)
- 部署形态:通过 HTTP/CLI/MCP 任一入口调用数据面 delete、search 接口即可触发
- 问题性质:纯应用层解析逻辑缺陷,不依赖特定操作系统、Python 小版本或存储后端配置
其他辅助信息
版本信息
感谢您的贡献 🎉!
Checklist
🐞 问题详细描述
问题描述
jiuwen_memory_entry/core/handler.py 中两个 handler 对布尔参数直接做真值判断,当调用方通过 JSON 传字符串 "false" 时(Python 中非空字符串均为 truthy)被误判为 true:
mode = DeleteMode.PURGE if payload.get("hard") else DeleteMode.FORGETtrace = bool(payload.get("trace"))复现步骤
调用 delete 接口,请求体传
{"item_id": "xxx", "hard": "false"}。实际结果
期望结果
建议
复用文件内已有的 _bool_value() 解析(_export_space 已在用同一函数),两处替换即可,1 文件 +2-2 行。
详细的环境信息描述
其他辅助信息
版本信息
感谢您的贡献 🎉!