Fix audit finding F03: DeterministicComparator.compare() and batch comparator
must validate comparability between query and observations (subject, metric, window, query_id, side).
Mismatches must result in UNEVALUABLE or clear rejection rather than producing false MATCH outcomes.
Also ensure Data2DslSkill.execute_compare validates returned bundles.
SESSION_EXECUTION_AUTHORIZATION recorded from user prompt.
DeterministicComparator.compare() validates that left and right observation fields match query (subject, metric, window, query_id). Mismatched observations result in UNEVALUABLE.BatchMultiQueryComparator matches observations by full key (query_id or canonical metric ID + subject) and handles missing observations as None without false matches.Data2DslSkill.execute_compare rejects / flags invalid comparisons.tests/test_comparator_comparability.py verify rejection of wrong actor, wrong repo, wrong metric, wrong window, and wrong query_id.governance-check.bat reports GOV-PASS.