refactor(*): 稳定期治理 - 收敛核心架构、错误语义并修复跨项目数据竞态
This commit is contained in:
@@ -10,6 +10,7 @@ import { ListToolbar, PageHeader, PaginationBar, WorkspacePage } from "@/compone
|
||||
import { WorkspaceState } from "@/components/layout/workspace-state";
|
||||
import { CONTENT_MODERATION_ERROR_CODE, generationErrorMessage, isContentModerationError } from "@/lib/generation-error";
|
||||
import { formatTaskKind, isGenerationTaskSubmissionUncertain, operationOptions, statusLabel } from "@/lib/generation-task-display";
|
||||
import { buildVideoOperationPrompt } from "@/lib/prompts";
|
||||
import { backendProviderConfig, logicalModelIDForConfig } from "@/services/api/generation-task";
|
||||
|
||||
import { createAgentSession, createGenerationTask, deleteGenerationTask, formatTaskLog, listGenerationTasks, listTaskLogs, queryFailedVideoProviderTask, queryGenerationTask, refreshGenerationTaskStatus, retryGenerationTask, type CreateTaskInput, type GenerationTask, type TaskLog } from "@/services/api/task-center";
|
||||
@@ -54,7 +55,7 @@ function taskStatusFilter(value: string | null): TaskStatusFilter {
|
||||
}
|
||||
|
||||
export default function TasksPage() {
|
||||
const { message } = App.useApp();
|
||||
const { message, modal } = App.useApp();
|
||||
const navigate = useNavigate();
|
||||
const [searchParams, setSearchParams] = useSearchParams();
|
||||
const effectiveConfig = useEffectiveConfig();
|
||||
@@ -191,9 +192,16 @@ export default function TasksPage() {
|
||||
return;
|
||||
}
|
||||
let cancelled = false;
|
||||
void listProjects().then((result) => {
|
||||
if (!cancelled) setDomainProjects(result.projects);
|
||||
}).catch(() => undefined);
|
||||
void listProjects()
|
||||
.then((result) => {
|
||||
if (!cancelled) setDomainProjects(result.projects);
|
||||
})
|
||||
.catch((error) => {
|
||||
if (cancelled) return;
|
||||
// 领域项目只是任务页的辅助筛选数据;读取失败不能阻断任务列表,但必须清空旧快照并留下可检索的诊断。
|
||||
setDomainProjects([]);
|
||||
console.warn("加载任务关联项目失败,已禁用本次项目筛选", error);
|
||||
});
|
||||
return () => {
|
||||
cancelled = true;
|
||||
};
|
||||
@@ -315,7 +323,7 @@ export default function TasksPage() {
|
||||
message.warning("任务正在执行,不能删除本机记录;请等待任务完成");
|
||||
return;
|
||||
}
|
||||
Modal.confirm({
|
||||
modal.confirm({
|
||||
title: "删除本机任务记录?",
|
||||
content: "这只会删除本机任务记录,不会删除已生成的素材。",
|
||||
okText: "删除本机记录",
|
||||
@@ -406,7 +414,7 @@ export default function TasksPage() {
|
||||
input: {
|
||||
source: "tasks-page",
|
||||
mode: values.operation === "compare_versions" ? "workflow" : "video",
|
||||
prompt: buildVideoOperationPrompt(values.operation, values.prompt),
|
||||
prompt: buildVideoOperationPrompt(values.operation, values.prompt, operationOptions.find((item) => item.value === values.operation)?.label || "其他视频操作"),
|
||||
config: values.operation === "compare_versions" ? undefined : backendProviderConfig(requestConfig),
|
||||
metadata: { videoEditOperation: values.operation },
|
||||
},
|
||||
@@ -809,9 +817,3 @@ function formatTaskJson(value?: string) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
function buildVideoOperationPrompt(operation: string, prompt: string) {
|
||||
const operationLabel = operationOptions.find((item) => item.value === operation)?.label || "其他视频操作";
|
||||
if (operation === "compare_versions") return `请对以下视频结果版本做对比分析,输出推荐版本、差异点和修改建议:\n${prompt}`;
|
||||
return `视频编辑任务:${operationLabel}\n创作要求:${prompt}`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user