fix: make rectification question handoff durable

This commit is contained in:
Jesse_Chen
2026-07-21 11:58:42 +08:00
parent 47f2e9c989
commit 53dddb8b43
16 changed files with 2310 additions and 105 deletions
@@ -105,7 +105,9 @@ export function ConversationalRectificationSurface({
const restoreAbandonFocus = useRef(false);
const focusTerminalForCase = useRef<string | null>(null);
const turn = controller.turn;
const pendingQuestion = turn?.pendingConsultationQuestion ?? pendingConsultationQuestion ?? null;
const pendingQuestion = turn?.status === "completed"
? turn.pendingConsultationQuestion
: turn?.pendingConsultationQuestion ?? pendingConsultationQuestion ?? null;
const abandonIdentity = turn
? `${turn.caseId}:${turn.turnVersion}:${turn.status}`
: null;
@@ -12,6 +12,7 @@ import {
} from "lucide-react";
import { forwardRef } from "react";
import { SidebarMenuButton } from "@/components/ui/sidebar";
import { sessionMutationMenuVisible } from "@/lib/chat-session-persistence";
export type SidebarSession = {
readonly id: string;
@@ -100,7 +101,7 @@ export const SidebarSessionRow = forwardRef<HTMLButtonElement, SidebarSessionRow
>
<MoreHorizontal aria-hidden="true" />
</button>
{menuOpen ? (
{sessionMutationMenuVisible(menuOpen, disabled) ? (
<div className="session-actions" role="menu" aria-label={`${session.title} 操作`}>
<button type="button" role="menuitem" onClick={() => runAction(onTogglePinned)}>
{session.pinned ? <PinOff aria-hidden="true" /> : <Pin aria-hidden="true" />}