diff --git a/frontend-web/src/core/artifacts/hooks.ts b/frontend-web/src/core/artifacts/hooks.ts index 45419ff3..0e9818ac 100644 --- a/frontend-web/src/core/artifacts/hooks.ts +++ b/frontend-web/src/core/artifacts/hooks.ts @@ -133,8 +133,18 @@ export function useUpdateArtifactContent() { return useMutation({ mutationFn: updateArtifactContent, onSuccess: (content, variables) => { - queryClient.setQueryData( - ["artifact", variables.filepath, variables.threadId, variables.isMock], + // useArtifactContent 的查询键带第 5 个元素 publicShareCode,这里用前缀 + // 过滤(setQueriesData)匹配,避免精确键缺少 publicShareCode 写到幽灵缓存、 + // 导致保存后内容被旧缓存重置回原值。 + queryClient.setQueriesData( + { + queryKey: [ + "artifact", + variables.filepath, + variables.threadId, + variables.isMock, + ], + }, { content, url: undefined,