feat: include memory sources in profile sync events

This commit is contained in:
张胜宇
2026-09-11 19:37:18 +08:00
parent 2de1735673
commit 5777f0f86e
2 changed files with 28 additions and 2 deletions
@@ -194,6 +194,24 @@ class CustomerProfileCandidateService:
)
session.add(created)
await session.flush()
active_memories = list(await session.scalars(
select(MemoryUnit).where(
MemoryUnit.customer_id == candidate.customer_id,
MemoryUnit.status == "active",
)
))
memory_sources = [
{
"memory_uuid": item.memory_uuid,
"memory_key": item.memory_key,
"content": item.content,
"memory_type": item.memory_type,
"confidence": float(item.confidence),
"version": int(item.version),
"valid_until": item.valid_until.isoformat() if item.valid_until else None,
}
for item in active_memories
]
for target_store in ("milvus", "neo4j"):
session.add(MemorySyncOutbox(
event_uuid=str(uuid4()), aggregate_type="profile_snapshot",
@@ -204,6 +222,7 @@ class CustomerProfileCandidateService:
"profile_uuid": profile_uuid,
"profile_version": version,
"snapshot": snapshot,
"memory_sources": memory_sources,
},
status="pending", retry_count=0, created_at=now,
))