Fix stale agent mode fallback and error messaging
This commit is contained in:
parent
25b20e1730
commit
1f864294c9
@ -3506,6 +3506,19 @@ export function CanvasChatPanel({
|
||||
activeComposerModeRef.current = activeComposerMode;
|
||||
}, [activeComposerMode]);
|
||||
|
||||
useEffect(() => {
|
||||
if (composerModeOverride !== "agent") return;
|
||||
if (agentEnabled && hasSelectedAgentPreset) return;
|
||||
|
||||
activeComposerModeRef.current = computedComposerMode;
|
||||
setComposerModeOverride(null);
|
||||
}, [
|
||||
agentEnabled,
|
||||
composerModeOverride,
|
||||
computedComposerMode,
|
||||
hasSelectedAgentPreset,
|
||||
]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!selectedModelId && siteSettings) {
|
||||
const nextModelId = agentEnabled ? "auto" : firstImageModelId || firstVideoModelId || "";
|
||||
@ -7637,6 +7650,12 @@ export function CanvasChatPanel({
|
||||
textContent = `请基于当前工作流设定生成方案:${workflowContext.summaryText}`;
|
||||
}
|
||||
const effectiveComposerMode = activeComposerModeRef.current || activeComposerMode;
|
||||
if (effectiveComposerMode === "agent" && !selectedAgentPresetId) {
|
||||
toast.error("智能体模式缺少生图模式配置,请先选择智能体后再发送");
|
||||
activeComposerModeRef.current = computedComposerMode;
|
||||
setComposerModeOverride(null);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!textContent && hasAgentUploadSlots && selectedAgentPreset) {
|
||||
textContent = `请按「${selectedAgentPreset.name}」智能体配置顺序处理产品图1、产品图2和模特图。`;
|
||||
@ -7791,6 +7810,7 @@ export function CanvasChatPanel({
|
||||
ensureImagePointsBeforeSend,
|
||||
getSendGuard,
|
||||
clearStreamImageGenerationStateForChat,
|
||||
computedComposerMode,
|
||||
releaseSendGuard,
|
||||
setSendGuard,
|
||||
shouldBlockDuplicateSend,
|
||||
|
||||
14
lib/utils.ts
14
lib/utils.ts
@ -19,8 +19,12 @@ export const fetcher = async (url: string) => {
|
||||
const response = await fetch(url);
|
||||
|
||||
if (!response.ok) {
|
||||
const { code, cause } = await response.json();
|
||||
throw new ChatSDKError(code as ErrorCode, cause);
|
||||
const { code, cause, message } = await response.json();
|
||||
const error = new ChatSDKError(code as ErrorCode, cause);
|
||||
if (typeof message === "string" && message.trim()) {
|
||||
error.message = message;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
||||
return response.json();
|
||||
@ -48,7 +52,11 @@ export async function fetchWithErrorHandlers(
|
||||
const cause = typeof payload?.cause === "string" ? payload.cause : undefined;
|
||||
|
||||
if (code) {
|
||||
throw new ChatSDKError(code, cause);
|
||||
const error = new ChatSDKError(code, cause);
|
||||
if (typeof payload?.message === "string" && payload.message.trim()) {
|
||||
error.message = payload.message;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
||||
const fallbackMessage =
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user