fix(rectification): simplify delivery card and guard double turns (BUG-595, BUG-596)
Make the range card row-select, drop the composer 先这样 control and adopt status bar, keep delivery copy to three sentences with a folded verification report, and skip a second no-message agent run after a terminal delivery turn. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -319,8 +319,10 @@ test("Agentic rectification follows the conversation tail only while the reader
|
||||
assert.match(styles, /--rectification-jump-clearance/);
|
||||
assert.match(styles, /\.message-stage-and-answer \{[\s\S]*gap: var\(--space-2\)/);
|
||||
assert.doesNotMatch(chat, /conversationEnd/);
|
||||
// 旧 禁止任何 scrollIntoView → 新 改选滚到出卡消息 → 保留 不得再做 conversationEnd 第二套滚动
|
||||
assert.match(chat, /offerSectionRef\.current\?\.scrollIntoView\(\{ block: "center", behavior: "smooth" \}\)/);
|
||||
// 原值: 改选滚到出卡消息
|
||||
// 新值: 无 offerSectionRef;点其他行即改选
|
||||
// 原因: BUG-595 决策 3
|
||||
assert.doesNotMatch(chat, /offerSectionRef/);
|
||||
assert.doesNotMatch(styles, /scrollIntoView/);
|
||||
});
|
||||
|
||||
@@ -427,12 +429,15 @@ test("candidate state renders from the snapshot API and never from sentinels", (
|
||||
assert.doesNotMatch(chat, /disabled=\{Boolean\(candidateResult\.selectedTime\)/);
|
||||
assert.match(styles, /\.rectification-candidate-list \{[\s\S]*grid-template-columns: repeat\(3, minmax\(0, 1fr\)\)/);
|
||||
assert.match(styles, /\.rectification-candidate-list \{[\s\S]*min-width: 0/);
|
||||
assert.match(styles, /\.rectification-divergence-list \{[\s\S]*grid-template-columns: repeat\(3, minmax\(0, 1fr\)\)/);
|
||||
// 原值: 分歧面板三列
|
||||
// 新值: 按分钟行选,无 divergence-list
|
||||
// 原因: BUG-595 决策 1
|
||||
assert.doesNotMatch(styles, /\.rectification-divergence-list \{/);
|
||||
assert.doesNotMatch(chat, /relativeSupport}\%/);
|
||||
assert.doesNotMatch(chat, /相对支持度 \{candidate\.relativeSupport\}/);
|
||||
assert.doesNotMatch(chat, /isRecommendedRectificationCandidate/);
|
||||
assert.match(deliveryCard, /已采用/);
|
||||
assert.match(deliveryCard, /正在采用…/);
|
||||
assert.match(deliveryCard, /rangeDeliveryAdopted/);
|
||||
assert.match(deliveryCard, /rangeDeliveryAdopting/);
|
||||
assert.match(chat, /RectificationBoard/);
|
||||
assert.match(board, /className="rectification-snapshot"/);
|
||||
assert.match(styles, /\.rectification-snapshot \{/);
|
||||
@@ -599,7 +604,10 @@ test("time-selection cards use server adoption state and stay mutually exclusive
|
||||
/offeredSelectionOnce/,
|
||||
);
|
||||
assert.match(chat, /!candidateResult\?\.selectedTime \? latestSettledAssistant\?\.renderKey/);
|
||||
assert.match(messageLoop, /showSelectionCards && message\.renderKey === selectionCardMessageKey/);
|
||||
// 原值: showSelectionCards && message.renderKey === selectionCardMessageKey
|
||||
// 新值: 还要有 candidateResult 才渲染行选卡
|
||||
// 原因: BUG-595 决策 1
|
||||
assert.match(messageLoop, /showSelectionCards && candidateResult && message\.renderKey === selectionCardMessageKey/);
|
||||
assert.match(messageLoop, /<RectificationChoiceCard/);
|
||||
assert.match(messageLoop, /variant="embedded"/);
|
||||
assert.match(messageLoop, /choiceNonce/);
|
||||
|
||||
Reference in New Issue
Block a user