fix(rectification): keep choice stems visible and align overlay adopt with the engine
Walkthrough polish: fail-closed empty D9 prompts, stop asserting the next question is on screen, vary same-domain collect copy, switch to reverse-verify after adopt, and let coverage route interview without blocking can_adopt. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -309,7 +309,7 @@ test("training gate closed still withholds yearless varga cards", () => {
|
||||
assert.notEqual(plan.next_followup?.intent, "distinguish_candidates");
|
||||
});
|
||||
|
||||
test("training complete with no renderable distinguish card allows offering a range without adopt", () => {
|
||||
test("training complete with no renderable distinguish card still allows adopt when the engine does", () => {
|
||||
const blocked = decideRectification({
|
||||
engineCeiling: OPEN_ENGINE_CAPABILITY_CEILING,
|
||||
methodCoverageAll: false,
|
||||
@@ -317,11 +317,14 @@ test("training complete with no renderable distinguish card allows offering a ra
|
||||
candidateScores: NARROW_LEAD,
|
||||
discriminatorProbe: null,
|
||||
});
|
||||
// 原断言 canAdopt=false、sessionOutcome=provisional_range
|
||||
// → 新断言 canAdopt=true、sessionOutcome=adopt_representative。
|
||||
// coverage(含 occupation)只做问询路由,不再挡采用;确认门仍 fail-closed。
|
||||
assert.equal(blocked.canOfferRange, true);
|
||||
assert.equal(blocked.canAdopt, false);
|
||||
assert.equal(blocked.canAdopt, true);
|
||||
assert.equal(blocked.canConfirmExactMinute, false);
|
||||
assert.equal(blocked.nextAction, "offer_provisional_range");
|
||||
assert.equal(blocked.sessionOutcome, "provisional_range");
|
||||
assert.equal(blocked.sessionOutcome, "adopt_representative");
|
||||
const stillClosed = decideRectification({
|
||||
engineCeiling: OPEN_ENGINE_CAPABILITY_CEILING,
|
||||
methodCoverageAll: false,
|
||||
|
||||
Reference in New Issue
Block a user