From dcc30834554d54230d23725069612609f18aeada Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 23 Dec 2025 18:11:05 +0100 Subject: [PATCH] pfad Anpassung --- app/services/edge_registry.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/services/edge_registry.py b/app/services/edge_registry.py index 5157d55..7c7220e 100644 --- a/app/services/edge_registry.py +++ b/app/services/edge_registry.py @@ -1,8 +1,8 @@ """ FILE: app/services/edge_registry.py DESCRIPTION: Single Source of Truth für Kanten-Typen mit dynamischem Reload. - WP-22: Transparente Status-Meldungen & Robuste Pfad-Auflösung. -VERSION: 0.7.3 (Fix: Path Normalization & Env Priority) + WP-22: Fix für absolute Pfade außerhalb des Vaults (Prod-Dictionary). +VERSION: 0.7.4 (Fix: Absolute Path Escaping & Quote Stripping) """ import re import os @@ -30,7 +30,8 @@ class EdgeRegistry: return settings = get_settings() - # Hole ENV-Werte und entferne potenzielle Anführungszeichen + + # 1. ENV-Werte laden und von Anführungszeichen bereinigen env_vocab_path = os.getenv("MINDNET_VOCAB_PATH") if env_vocab_path: env_vocab_path = env_vocab_path.strip('"').strip("'") @@ -39,10 +40,16 @@ class EdgeRegistry: if env_vault_root: env_vault_root = env_vault_root.strip('"').strip("'") - # Pfad-Priorität: 1. Direkter Pfad (ENV) -> 2. Vault-Struktur + # 2. Pfad-Priorität: Wenn absolut (/), dann direkt nutzen! if env_vocab_path: - self.full_vocab_path = os.path.abspath(env_vocab_path) + if env_vocab_path.startswith("/"): + # Absoluter Pfad (z.B. aus Produktion) + self.full_vocab_path = env_vocab_path + else: + # Relativer Pfad zum aktuellen Verzeichnis oder Vault + self.full_vocab_path = os.path.abspath(env_vocab_path) else: + # Fallback: Suche im Vault-Verzeichnis possible_paths = [ os.path.join(env_vault_root, "_system", "dictionary", "edge_vocabulary.md"), os.path.join(env_vault_root, "01_User_Manual", "01_edge_vocabulary.md") @@ -77,7 +84,7 @@ class EdgeRegistry: self._last_mtime = current_mtime def _load_vocabulary(self): - """Parst das Wörterbuch[cite: 25].""" + """Parst das Wörterbuch.""" self.canonical_map.clear() self.valid_types.clear() @@ -130,7 +137,7 @@ class EdgeRegistry: return clean_type def _log_issue(self, edge_type: str, error_kind: str, ctx: dict): - """JSONL-Logging[cite: 1].""" + """Detailliertes JSONL-Logging für Debugging.""" try: os.makedirs(os.path.dirname(self.unknown_log_path), exist_ok=True) entry = {