fix(web): drive rectification from candidate contrast and allow range close
Independent Staging Quality Gate / validate (push) Successful in 11m17s
Independent Staging Quality Gate / publish (push) Failing after 9m28s

Showing a choice card is no longer treated as completion. Distinguish probes
require real candidate groups, holdout stays out of scoring, and ordinary
sessions can finish with a credible range instead of an exact-minute gate.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-26 17:19:26 +08:00
co-authored by Cursor
parent 7718317d69
commit a0ce55f066
51 changed files with 3720 additions and 714 deletions
+46 -3
View File
@@ -554,15 +554,54 @@ def build_refinement_packet(
ledger = event_dasha_ledger(request, built, representative_time)
agreement = dasha_agreement(built, candidate_times)
stage = precision_stage(cluster, len(request.get("events") or []))
from scripts.rectification.event_probes import discriminating_event_probes
from scripts.rectification.candidate_contrast import PROBE_PHASE_HOLDOUT_VALIDATION, event_year
from scripts.rectification.case_holdout import reserved_holdout_events
from scripts.rectification.event_probes import (
candidate_contrast_opportunities,
discriminating_event_probes,
event_clarification_probes,
evidence_collection_probes,
)
grid_times = list(built.get("candidate_times") or candidate_times)
probes = discriminating_event_probes(
request,
built,
scan=cluster,
candidate_times=candidate_times,
scan=scan,
candidate_times=grid_times,
representative_time=representative_time,
precision_current=str(stage.get("current") or "") or None,
)
clarification = event_clarification_probes(request)
collection = evidence_collection_probes(request)
opportunities = candidate_contrast_opportunities(
request,
built,
scan=scan,
candidate_times=grid_times,
representative_time=representative_time,
)
reserved = reserved_holdout_events(request.get("events") or [])
holdout = [
{
"phase": PROBE_PHASE_HOLDOUT_VALIDATION,
"role": "holdout",
"source": "reserved_event",
"domain": str(event.get("domain") or ""),
"year": event_year(event),
"event_id": str(event.get("id") or ""),
}
for event in reserved
if event_year(event) is not None
]
holdout.extend(
{
**prompt,
"phase": PROBE_PHASE_HOLDOUT_VALIDATION,
"role": "holdout",
"source": "oos_blind",
}
for prompt in oos_blind_prompts(request)
)
return {
"window_scan": scan,
"event_dasha_ledger": ledger,
@@ -573,6 +612,10 @@ def build_refinement_packet(
"precision_stage": stage,
"oos_blind_prompts": oos_blind_prompts(request),
"discriminating_event_probes": probes,
"event_clarification_probes": clarification,
"evidence_collection_probes": collection,
"candidate_contrast_opportunities": opportunities,
"holdout_validation_probes": holdout,
"unique_minute_claim": False,
"confirmation_allowed": False,
}