fix(web): stop rectification interview when remaining minutes no longer split
Coverage-complete ties stayed in discrimination because whole-window D9/D24 follow-ups were treated as probes, and restated dates inserted duplicate evidence. Skip encoded remaining layers, ask leftover D4 or offer a provisional range, and dedupe dated rows by kind and date. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -288,6 +288,38 @@ class EventProbesTest(unittest.TestCase):
|
||||
self.assertTrue(any(item["source"] in {"dasha_activation", "dasha_boundary"} for item in probes))
|
||||
self.assertTrue(any(item["domain"] == "relocation" for item in probes))
|
||||
|
||||
def test_enrollment_skips_adjacent_education_existence_year(self) -> None:
|
||||
built = {
|
||||
"static_contexts": [
|
||||
{"feature": {"time": "05:13", "varga_ascendants": {"D4": 1, "D9": 1, "D10": 1, "D5": 1}}},
|
||||
{"feature": {"time": "05:14", "varga_ascendants": {"D4": 2, "D9": 1, "D10": 1, "D5": 2}}},
|
||||
]
|
||||
}
|
||||
probes = discriminating_event_probes(
|
||||
_request(
|
||||
birth_date="1998-08-08",
|
||||
events=[{
|
||||
"id": "00000000-0000-4000-8000-000000000001",
|
||||
"domain": "education",
|
||||
"summary": "2016年9月进入大学",
|
||||
"date": "2016-09-01",
|
||||
"precision": "month",
|
||||
}],
|
||||
),
|
||||
built,
|
||||
scan=window_scan(built),
|
||||
candidate_times=["05:13", "05:14"],
|
||||
representative_time="05:13",
|
||||
precision_current="d5_refine",
|
||||
today=date(2026, 8, 22),
|
||||
)
|
||||
existence = [
|
||||
item for item in probes
|
||||
if item["domain"] == "education" and item["source"] != "known_event_quality"
|
||||
]
|
||||
self.assertFalse(any(item["year"] in {2015, 2016, 2017} for item in existence))
|
||||
self.assertFalse(any("高考是 2015" in str(item.get("user_meaning") or "") for item in probes))
|
||||
|
||||
def test_representatives_prefer_remaining_candidate_times(self) -> None:
|
||||
built = {
|
||||
"static_contexts": [
|
||||
|
||||
Reference in New Issue
Block a user