问题描述
问题1:Neo4jCommunityGraphDB update_node未同步Qdrant payload
严重性:High
影响范围:所有使用Neo4j社区版的用户
问题详情:
- Neo4jCommunityGraphDB继承父类update_node方法,只更新Neo4j数据库
- 不同步关键字段(status, tags, memory_type等)到Qdrant向量数据库
- 导致Neo4j和Qdrant状态不一致,搜索可能返回已归档的记忆
问题2:schedule依赖缺失导致Thread-3启动失败
严重性:Critical
影响范围:MemOS核心功能(冲突检测、记忆归档)
问题详情:
reorganizer.py使用@require_python_package("schedule")装饰器
docker/requirements.txt缺少schedule模块定义
- Thread-3启动时ImportError,冲突检测功能失效
已修复(dev分支)
Commit历史
| Commit |
修复内容 |
| f3e7597 |
Neo4jCommunityGraphDB update_node同步Qdrant payload |
| c2447d8 |
load_dotenv指定路径+override确保环境变量加载 |
| 37b2e0f |
requirements.txt添加schedule==1.2.2依赖 |
| 12651c3 |
Dockerfile.dev pip代理禁用配置 |
修复详情
问题1修复(src/memos/graph_dbs/neo4j_community.py):
async def update_node(self, node_id: str, properties: dict) -> None:
"""Update node in Neo4j and sync key fields to Qdrant."""
# 先更新Neo4j
await super().update_node(node_id, properties)
# 同步关键字段到Qdrant
sync_fields = {"status", "tags", "memory_type", "content", "sources"}
payload_updates = {k: v for k, v in properties.items() if k in sync_fields}
if payload_updates:
await self._qdrant.set_payload(payload_updates, {"node_id": node_id})
问题2修复(docker/requirements.txt):
问题3修复(docker/Dockerfile.dev):
RUN unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY no_proxy && \
pip config set global.proxy "" && \
pip install --upgrade pip --proxy="" && \
pip install --no-cache-dir --proxy="" -r requirements.txt
验证结果
✅ Thread-3正常启动(is_alive=true)
✅ 冲突检测功能正常工作
✅ Neo4j和Qdrant状态同步一致
相关Issue
问题描述
问题1:Neo4jCommunityGraphDB update_node未同步Qdrant payload
严重性:High
影响范围:所有使用Neo4j社区版的用户
问题详情:
问题2:schedule依赖缺失导致Thread-3启动失败
严重性:Critical
影响范围:MemOS核心功能(冲突检测、记忆归档)
问题详情:
reorganizer.py使用@require_python_package("schedule")装饰器docker/requirements.txt缺少schedule模块定义已修复(dev分支)
Commit历史
修复详情
问题1修复(src/memos/graph_dbs/neo4j_community.py):
问题2修复(docker/requirements.txt):
问题3修复(docker/Dockerfile.dev):
验证结果
✅ Thread-3正常启动(is_alive=true)
✅ 冲突检测功能正常工作
✅ Neo4j和Qdrant状态同步一致
相关Issue