From 7b0c0ae8ceac27642e6c56ba62cd0c5f47c3ab1f Mon Sep 17 00:00:00 2001 From: Shay Date: Wed, 8 Jul 2026 08:31:29 -0700 Subject: [PATCH] fix(review): address MEDIUM items from final code-reviewer - anti_unifier: remove arbitrary root fallback when no agent_node_id (only apply root-form when nid known; primary pipeline path unaffected) - depth_canonical: filter build_node_depths to he/grc (or nodes with root) so English nodes no longer pollute node_depths with language-only entries Tests re-run green. Matches review recommendations for the 3-lang depth feature. --- recognition/anti_unifier.py | 16 +++++----------- recognition/depth_canonical.py | 2 +- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/recognition/anti_unifier.py b/recognition/anti_unifier.py index db6fc388..a5f45799 100644 --- a/recognition/anti_unifier.py +++ b/recognition/anti_unifier.py @@ -272,18 +272,12 @@ def recognize( value, evidence = _lift_slot(slot, original_tokens, span) feature_evidence[slot.feature_name] = (value, evidence) - # 3-lang root form for agent in proposition when depth (nid-keyed via agent_node_id if given; proof of canonical match). - # Uses canonicalize_token for consistency with derive path; no mutation. - if depths and 'agent' in feature_evidence: + # 3-lang root form for agent in proposition when depth (nid-keyed via agent_node_id). + # Only applied when explicit nid is provided (primary pipeline path always does). + # Without nid we do not guess a root (avoids unrelated root in proposition). + if depths and 'agent' in feature_evidence and agent_node_id and agent_node_id in depths: val, ev = feature_evidence['agent'] - nid = agent_node_id - if nid and nid in depths: - val = canonicalize_token(str(val), nid, depths) - else: - for d in depths.values(): - if d.get('language') in ('he', 'grc') and d.get('root'): - val = d['root'] - break + val = canonicalize_token(str(val), agent_node_id, depths) feature_evidence['agent'] = (val, ev) proposition = FeatureBundle.from_mapping(feature_evidence) diff --git a/recognition/depth_canonical.py b/recognition/depth_canonical.py index d4a6ae6b..f5f324fc 100644 --- a/recognition/depth_canonical.py +++ b/recognition/depth_canonical.py @@ -86,7 +86,7 @@ def build_node_depths(nodes: Sequence[Any]) -> dict[str, dict]: }.items() if v is not None } for n in nodes - if getattr(n, "language", None) or getattr(n, "root", None) + if getattr(n, "language", None) in ("he", "grc") or getattr(n, "root", None) }