fix(core): 修复新建项目脚本助手串台旧项目脚本(Playwright 实测发现)
后台 hydrate 期间进入刚建的项目,pipelineProject 会先闪出旧项目(projectDetail 滞后), 脚本助手 chat 用旧项目的 currentScript 初始化并持久化到新项目 key,导致空项目错显 「已有3镜脚本」、行30 三选项不出现。修: - 新建项目 onCreate 即时 setProjectDetail(created)+插入 projects,pipeline 不再闪旧项目 - PipelinePage 按 project.id key,切项目时 chat 等状态干净重挂 - chat auto 派生提示(「已有N镜」)不落 localStorage,杜绝跨项目串台 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -567,7 +567,13 @@ export function App() {
|
||||
onBack={() => navigate("projects")}
|
||||
onCreate={async (payload) => {
|
||||
const created = await action(() => api.createProject(payload), "项目已创建");
|
||||
if (created) navigate("pipeline", { projectId: created.id });
|
||||
if (created) {
|
||||
// 立刻把新项目落到 detail/列表,避免后台 hydrate 期间 pipeline 先闪出旧项目数据
|
||||
// (旧项目的脚本会污染新项目的脚本助手 chat)
|
||||
setProjectDetail(created);
|
||||
setProjects((prev) => (prev.some((p) => p.id === created.id) ? prev : [created, ...prev]));
|
||||
navigate("pipeline", { projectId: created.id });
|
||||
}
|
||||
}}
|
||||
onCreateProduct={(payload) => action(() => api.createProduct(payload), "")}
|
||||
/>
|
||||
@@ -657,6 +663,7 @@ export function App() {
|
||||
const textModel = modelConfigs.find((m) => m.capability === "text" && m.status === "active") || modelConfigs.find((m) => m.capability === "text");
|
||||
return (
|
||||
<PipelinePage
|
||||
key={pipelineProject.id}
|
||||
project={pipelineProject}
|
||||
scriptModelName={textModel?.display_name || textModel?.name || "AI"}
|
||||
loading={loading}
|
||||
|
||||
Reference in New Issue
Block a user