fix(rectification): surface dropped probes and filter tools by the decision
Independent Staging Quality Gate / validate (push) Failing after 17m9s
Independent Staging Quality Gate / publish (push) Has been skipped

Silent unrenderable discriminators, a missing question-contract golden, and a always-on tool table were hiding fail-closed drops behind the prompt wall.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-28 20:31:15 +08:00
parent 69c3e94920
commit 63b4591aae
25 changed files with 856 additions and 274 deletions
+6 -2
View File
@@ -36,7 +36,10 @@ from scripts.rectification.candidate_contrast import (
opportunity_from_probe,
)
from scripts.rectification.case_holdout import holdout_domain_years
from scripts.rectification.probe_question_contract import complete_style_options
from scripts.rectification.probe_question_contract import (
QUESTION_CONTRACT_VERSION,
completed_style_options,
)
from scripts.rectification.refinement_packet import match_level
MAX_PROBES = 3
@@ -633,9 +636,10 @@ def _public_probe(
payload.update(extra)
if payload["role"] == "distinguish":
payload["candidate_ids"] = candidate_ids_from_outcomes(payload.get("expected_outcomes") or [])
style_options = complete_style_options(payload.get("choice_kind"), payload.get("style_options"))
style_options = completed_style_options(payload.get("choice_kind"), payload.get("style_options"))
if style_options:
payload["style_options"] = style_options
payload["question_contract_version"] = QUESTION_CONTRACT_VERSION
return payload