From b8349da41d5f9aebfbc5ff4a3684d7d8ac01aa03 Mon Sep 17 00:00:00 2001 From: Chaim Date: Wed, 17 Jun 2026 12:32:25 +0000 Subject: [PATCH] =?UTF-8?q?fix(plans):=20=D7=A9=D7=9D-=D7=AA=D7=A6=D7=95?= =?UTF-8?q?=D7=92=D7=94=20=D7=A4=D7=A9=D7=95=D7=98=20("=D7=AA=D7=9B=D7=A0?= =?UTF-8?q?=D7=99=D7=AA=20<=D7=9E=D7=A1=D7=A4=D7=A8>")=20=D7=91=D7=9E?= =?UTF-8?q?=D7=A9=D7=99=D7=9B=D7=AA=20mavat,=20=D7=9C=D7=90=20=D7=94=D7=A9?= =?UTF-8?q?=D7=9D=20=D7=94=D7=AA=D7=99=D7=90=D7=95=D7=A8=D7=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit במשיכה מ-mavat מופה display_name=E_NAME — השם התיאורי הארוך של התכנית (מהות התכנית), שמקומו בשדה הייעוד ולא בשם שבלוק ט מצטט. תוקן: display_name = "תכנית " (צורת-ציטוט נקייה); E_NAME נשמר כ-fallback ל-purpose בלבד (כשאין GOALS) כדי לא לאבד את התוכן. דוגמה (101-0721050): שם-תצוגה "תכנית 101-0721050", ייעוד="שינוי הבנוי המאושר בתכנית 6394... מתחם הוג'יטק, גבעת רם". אומת חי. py_compile ✅ unit-test ✅ e2e חי ✅. backend-בלבד (גשר) — בלי שינוי-UI. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../legal_mcp/court_fetch_service/mavat_client.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py b/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py index 18d2ac9..809ceaa 100644 --- a/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py +++ b/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py @@ -122,11 +122,17 @@ def _parse_sv4(sv4: dict, plan_number: str, source_url: str) -> dict: pd = sv4.get("planDetails") if isinstance(sv4, dict) else None pd = pd if isinstance(pd, dict) else {} - display_name = _s(pd.get("E_NAME")) + number = _s(pd.get("NUMB")) or plan_number + # display_name is the clean citation surface form — "תכנית ". mavat's + # E_NAME is a long descriptive title (the plan's substance), which belongs in + # purpose, NOT in the name block-ט cites. Keep E_NAME only as a purpose + # fallback so its content isn't lost when GOALS is empty. + e_name = _s(pd.get("E_NAME")) + display_name = f"תכנית {number}" if number else e_name auth = _s(pd.get("AUTH")) subtype = _s(pd.get("ENTITY_SUBTYPE")) plan_type = f"{auth} ({subtype})" if auth and subtype else (auth or subtype) - purpose = _s(pd.get("GOALS")) + purpose = _s(pd.get("GOALS")) or e_name gazette_date, yalkut_number, yalkut_page = "", "", "" rows = sv4.get("rsInternet") if isinstance(sv4, dict) else None @@ -160,7 +166,7 @@ def _parse_sv4(sv4: dict, plan_number: str, source_url: str) -> dict: break return { - "plan_number": _s(pd.get("NUMB")) or plan_number, + "plan_number": number, "display_name": display_name, "plan_type": plan_type, "purpose": purpose, -- 2.49.1