fix(agent): 输入草稿按会话保留,切换会话、关抽屉不丢
会话面板与新对话输入框的草稿原来是组件内状态,切到别的会话或 Esc 关抽屉就没了。 改为按会话(以及列表页 / 抽屉两处新对话)分键记在模块里,发送成功后清掉。 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
1 parent
164a27fd80
commit
9f499ac7c2
5 files changed
+86
-6
No files matched your search
@@ -13,6 +13,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "~/components/ui/popover
|
||||
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "~/components/ui/sheet.tsx";
|
||||
import { errorMessage } from "~/lib/api.ts";
|
||||
import { capabilityMeta, isDenied, RunStatusBadge } from "./agent-conversation.tsx";
|
||||
import { DRAFT_DRAWER_GOAL, writeDraft } from "./agent-nav.ts";
|
||||
import { AgentRunPanel, GoalComposer } from "./agent-run-panel.tsx";
|
||||
import { AgentSessionList, drawerListMemory } from "./agent-session-list.tsx";
|
||||
import {
|
||||
@@ -170,12 +171,16 @@ export function AgentDrawer() {
|
||||
context={name}
|
||||
onClearContext={clearAgentContext}
|
||||
defaultGoal={context?.goal ?? ""}
|
||||
draftKey={DRAFT_DRAWER_GOAL}
|
||||
pending={create.isPending}
|
||||
onSubmit={(goal, opts) =>
|
||||
create.mutate(
|
||||
{ goal: `${prefix}${goal}`, ...opts },
|
||||
{
|
||||
onSuccess: (run) => showAgentRunInDrawer(run.id),
|
||||
onSuccess: (run) => {
|
||||
writeDraft(DRAFT_DRAWER_GOAL, "");
|
||||
showAgentRunInDrawer(run.id);
|
||||
},
|
||||
onError: (e) => toast.error(errorMessage(e)),
|
||||
},
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user