fix(rectification): keep dated precision cards after empty dated discriminator pool (BUG-651)

Staging gate 2558 failed because leftover tests still expected D9/D10 or leftover collect after the pool emptied. Discriminate sessions still deliver; dated precision cards still ask.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-11 15:22:55 +08:00
co-authored by Cursor
parent 035865d4c1
commit f870d3d757
13 changed files with 184 additions and 90 deletions
@@ -170,7 +170,7 @@ function assertChoiceInvariants(input: {
}
}
test("walkthrough D9 probe question is in the 4-80 window and must survive frame assembly", () => {
test("walkthrough D9 probe is deferred instead of blocking delivery", () => {
const packet = d9WalkthroughPacket();
const probe = packet.probes.find((item) => item.semanticKey.startsWith("varga.d9."));
assert.ok(probe);
@@ -184,18 +184,18 @@ test("walkthrough D9 probe question is in the 4-80 window and must survive frame
candidatesSeparated: false,
});
const followup = plan.next_followup;
assert.equal(followup?.intent, "distinguish_candidates", JSON.stringify({
intent: followup?.intent,
source: followup?.source,
method_id: followup?.method_id,
dropped: plan.dropped_probes,
}));
assert.equal(followup?.method_id, "d9_relationship");
const frame = followup?.choice_frame ?? null;
assert.ok(frame, "D9 probe must assemble a choice_frame");
assert.equal(frame?.prompt, D9_QUESTION);
const copy = frame ? serverOwnedChoiceCopy(frame) : null;
assert.ok(copy?.prompt, "assembled D9 copy must keep the probe question");
// 原值: 走查 D9 性格卡必须拼出 choice_frame
// 新值: D9 记 yearless_deferred,不再作为必答区分题
// 原因: BUG-651
assert.notEqual(followup?.choice_kind, "varga_style");
assert.notEqual(followup?.intent, "distinguish_candidates");
assert.equal(
plan.dropped_probes.some((item) => (
item.semantic_key.startsWith("varga.d9.") && item.reason === "yearless_deferred"
)),
true,
JSON.stringify(plan.dropped_probes),
);
});
test("D9 probe shape with unwired prompt makes the choice invariants red", async () => {