diff --git a/app/core/database/qdrant_points.py b/app/core/database/qdrant_points.py index fd90403..7c36a52 100644 --- a/app/core/database/qdrant_points.py +++ b/app/core/database/qdrant_points.py @@ -1,10 +1,10 @@ """ FILE: app/core/database/qdrant_points.py DESCRIPTION: Object-Mapper für Qdrant. Konvertiert JSON-Payloads (Notes, Chunks, Edges) in PointStructs und generiert deterministische UUIDs. -VERSION: 1.5.0 +VERSION: 1.5.1 (WP-Fix: Explicit Target Section Support) STATUS: Active DEPENDENCIES: qdrant_client, uuid, os -LAST_ANALYSIS: 2025-12-15 +LAST_ANALYSIS: 2025-12-29 """ from __future__ import annotations import os @@ -46,16 +46,25 @@ def points_for_chunks(prefix: str, chunk_payloads: List[dict], vectors: List[Lis return chunks_col, points def _normalize_edge_payload(pl: dict) -> dict: + """Normalisiert Edge-Felder und sichert Schema-Konformität.""" kind = pl.get("kind") or pl.get("edge_type") or "edge" source_id = pl.get("source_id") or pl.get("src_id") or "unknown-src" target_id = pl.get("target_id") or pl.get("dst_id") or "unknown-tgt" seq = pl.get("seq") or pl.get("order") or pl.get("index") + + # WP-Fix: target_section explizit durchreichen + target_section = pl.get("target_section") pl.setdefault("kind", kind) pl.setdefault("source_id", source_id) pl.setdefault("target_id", target_id) + if seq is not None and "seq" not in pl: pl["seq"] = seq + + if target_section is not None: + pl["target_section"] = target_section + return pl def points_for_edges(prefix: str, edge_payloads: List[dict]) -> Tuple[str, List[rest.PointStruct]]: