fix(rectification): collect dated events, then distinguish with conflict probes
Empty ledgers stay in natural-language collection. After the first dated event, dasha conflict probes reverse-infer 前事 and block offer until answered. Unique-minute confirmation stays closed at a representative time; adopt reverse-verifies remaining probes. Records BUG-348–351. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -89,7 +89,7 @@ function RectificationCandidateCards({
|
||||
<section className="rectification-candidates" aria-label="生时校正候选时间">
|
||||
<div className="rectification-candidates-heading">
|
||||
<strong>当前可能的出生时间</strong>
|
||||
<span>这次校正的结果是采用一个代表性时间作当前排盘。相邻分钟目前分不开,还不能确认唯一分钟。可以先采用,也可以继续补充事件或改选;新增证据后,候选和相对支持度会重新计算。</span>
|
||||
<span>这次校正的收口是采用一个代表性时间作当前排盘。相邻分钟目前分不开,本会话以代表性时间收口,不确认唯一分钟。可以先采用,也可以继续补充事件或改选;新增证据后,候选和相对支持度会重新计算。</span>
|
||||
<span>相对支持度不是统计概率;采用不等于确认出生时间,也不会覆盖原始填报时间。</span>
|
||||
</div>
|
||||
<div className="rectification-candidate-list">
|
||||
@@ -740,7 +740,7 @@ export function RectificationAgenticChat(props: RectificationAgenticChatProps) {
|
||||
&& Boolean(message.turnId)
|
||||
&& Boolean(message.text)
|
||||
))?.renderKey;
|
||||
const latestOfferMessage = [...messages]
|
||||
const latestSettledAssistant = [...messages]
|
||||
.reverse()
|
||||
.find((message) => (
|
||||
message.role === "assistant"
|
||||
@@ -748,27 +748,29 @@ export function RectificationAgenticChat(props: RectificationAgenticChatProps) {
|
||||
&& !message.failed
|
||||
&& Boolean(message.text)
|
||||
));
|
||||
const showSelectionCards = Boolean(
|
||||
candidateResult?.selectionAllowed
|
||||
&& !candidateResult.selectedTime
|
||||
&& latestOfferMessage
|
||||
&& turnOfferedSelection(latestOfferMessage)
|
||||
&& !busy
|
||||
&& regeneratingMessageKey === null,
|
||||
);
|
||||
const offeredSelectionOnce = messages.some(turnOfferedSelection);
|
||||
const offeredThisTurn = Boolean(latestSettledAssistant && turnOfferedSelection(latestSettledAssistant));
|
||||
const showChoiceCards = Boolean(
|
||||
choiceCard
|
||||
&& latestOfferMessage
|
||||
&& !showSelectionCards
|
||||
&& latestSettledAssistant
|
||||
&& !offeredThisTurn
|
||||
&& !busy
|
||||
&& !readonly
|
||||
&& regeneratingMessageKey === null,
|
||||
);
|
||||
const selectionCardMessageKey = showSelectionCards && latestOfferMessage
|
||||
? latestOfferMessage.renderKey
|
||||
const showSelectionCards = Boolean(
|
||||
candidateResult?.selectionAllowed
|
||||
&& offeredSelectionOnce
|
||||
&& latestSettledAssistant
|
||||
&& !showChoiceCards
|
||||
&& !busy
|
||||
&& regeneratingMessageKey === null,
|
||||
);
|
||||
const selectionCardMessageKey = showSelectionCards && latestSettledAssistant
|
||||
? latestSettledAssistant.renderKey
|
||||
: undefined;
|
||||
const choiceCardMessageKey = showChoiceCards && latestOfferMessage
|
||||
? latestOfferMessage.renderKey
|
||||
const choiceCardMessageKey = showChoiceCards && latestSettledAssistant
|
||||
? latestSettledAssistant.renderKey
|
||||
: undefined;
|
||||
const canSend = !busy && !readonly && !regeneratingMessageKey;
|
||||
|
||||
@@ -882,7 +884,7 @@ export function RectificationAgenticChat(props: RectificationAgenticChatProps) {
|
||||
{savedTime && (
|
||||
<div className="rectification-saved-wrap">
|
||||
<p className="rectification-saved" role="status">
|
||||
{savedStatus === "confirmed" ? "已确认校正时间" : "当前排盘时间(代表性候选,还不能确认唯一分钟)"}:{savedTime}。后续排盘将使用该时间;你仍可继续补充事件或改选其他候选。
|
||||
{savedStatus === "confirmed" ? "已确认校正时间" : "当前排盘时间(代表性时间,本会话不确认唯一分钟)"}:{savedTime}。后续排盘将使用该时间;你仍可继续补充事件或改选其他候选。
|
||||
</p>
|
||||
{savedStatus === "accepted" && onStartConsultation && (
|
||||
<div className="rectification-consult-handoff">
|
||||
|
||||
@@ -72,7 +72,13 @@ export function ConfirmationGateDisclosure({
|
||||
<details className="technique-audit">
|
||||
<summary>
|
||||
唯一分钟确认门
|
||||
<small>{gate.confirmation_allowed ? "已允许" : "未允许"}</small>
|
||||
<small>
|
||||
{gate.confirmation_allowed
|
||||
? "已允许"
|
||||
: gate.unique_minute_path === "closed_at_representative"
|
||||
? "以代表性时间收口"
|
||||
: "未允许"}
|
||||
</small>
|
||||
</summary>
|
||||
<div className="technique-audit-panel">
|
||||
<table>
|
||||
|
||||
Reference in New Issue
Block a user