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:
@@ -548,7 +548,10 @@ test("nonterminal invariant 3: answer_choice response waits until incident fallb
|
||||
const parsedIncident = parseV9CaseDossier(raw);
|
||||
assert.ok(parsedIncident);
|
||||
const decision = decideFromDossier(parsedIncident);
|
||||
assert.equal(decision.canAdopt, false);
|
||||
// 原断言 canAdopt=false(coverage 未齐不得采用)→ 新断言 canAdopt=true。
|
||||
// 问题 E 方案 1:coverage 只做问询路由,不挡 overlay 采用。确认门与引擎 ceiling 仍关。
|
||||
// 本例仍继续采集家人层,nextAction 不得变成 offer_provisional_range。
|
||||
assert.equal(decision.canAdopt, true);
|
||||
assert.notEqual(decision.nextAction, "offer_provisional_range");
|
||||
|
||||
let activeFocus: Record<string, unknown> | null = null;
|
||||
@@ -613,7 +616,9 @@ test("nonterminal invariant 3: answer_choice response waits until incident fallb
|
||||
assert.ok(refreshed);
|
||||
const currentQuestion = projectCurrentQuestion(refreshed.conversationSummary.activeFocus);
|
||||
assert.equal(response.status, 200);
|
||||
assert.equal(decision.canAdopt, false);
|
||||
// 原断言 canAdopt=false → 新断言 canAdopt=true(coverage 不再挡采用)。
|
||||
// 保留语义:answer_choice 出口仍必须先把家人采集题干写入 focus/turn,再返回 HTTP。
|
||||
assert.equal(decision.canAdopt, true);
|
||||
assert.ok(currentQuestion?.prompt);
|
||||
assert.equal(currentQuestion.prompt, "家里如果有结婚、添丁或住院这类事,记得大概哪年就行。");
|
||||
const historyTurn = accounting.calls.find((call) => call.fn === "append_agentic_rectification_turn");
|
||||
|
||||
Reference in New Issue
Block a user