fix(web): drive rectification from candidate contrast and allow range close
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:
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user