## 基线与证据 Core `76d44429fdaa6a69320e21a1cb77119d0889d792` / Extensions `495414b76a37aca4d7c1022d973a8e5b9a7e92e6`,本轮已 pull --ff-only,均无新提交。 https://github.com/agentic-ai-java/argi-extensions/blob/495414b76a37aca4d7c1022d973a8e5b9a7e92e6/memory-repository/argi-model-chat-memory-repository-mem0/src/main/java/io/github/agentic/ai/memory/mem0/core/Mem0FilterExpressionConverter.java#L138 ## 已复现问题 convertExpression 返回 JSON 字符串,convertLogicalOperator 却把该字符串直接放入 AND/OR 列表或 NOT 值,随后再次序列化,嵌套条件变成字符串。 实际调用: ```java converter.convertExpression(and(eq("user_id", "u1"), eq("category", "private"))); ``` 当前输出: ```json {"AND":["{\"user_id\":\"u1\"}","{\"category\":\"private\"}"]} ``` 这里 AND 子项是 JSON string,而不是比较对象。预期保持结构如 `{"AND":[{"user_id":"u1"},{"category":"private"}]}`。本次对输出重新解析确认其节点类型,未调用 Mem0 服务,不声称已证明服务会忽略过滤或越权返回。 ## 交付与验收 - [ ] 递归构建 Map/List 或 JSON tree,边界只序列化一次;不能通过替换转义字符模拟结构化转换。 - [ ] 覆盖 AND、OR、NOT、多层混合、比较/IN/NIN 和带引号反斜杠的值,断言 JSON 节点类型而非仅 contains 文本。 - [ ] 明确不支持/结构不合法的表达式,不能静默变成空过滤器。 - [ ] 验证最终发给 Mem0 的请求体及目标服务支持版本,确认筛选结果;转换器单测通过不等于真实服务兼容已通过。 - [ ] 不将标识过滤当可信授权替代,保持已有 user/agent/run 范围语义。 ## 范围与变更约束 本次调用当前实际编译类完成定向复现,未修改仓库源码;不是全量外部环境认证。局部修复不等待 Agent/Workflow/Loop 全局重构,优先复用现有契约。公共 API、默认行为或数据格式若需变化,说明兼容替代、消费者影响、目标版本与迁移/回滚。关联:#30、#34。
Activity