fix: persist canvas agent media provenance

This commit is contained in:
134 2026-06-23 17:17:13 +08:00
parent 9e6cf69b45
commit 1d7c4816b0
3 changed files with 18 additions and 0 deletions

View File

@ -1434,6 +1434,7 @@ metadata: {
metadata: {
generatedByAgent: true,
revisionOf: sourceNodeId,
sourceNodeId,
sourceNodeIds: [...],
prompt,
model,

View File

@ -131,6 +131,13 @@ function buildMediaNode(params: {
const sourceMessageId = String(
itemMetadata.messageId || planMetadata.messageId || ""
).trim();
const sourcePrompt = String(
params.item.prompt || itemMetadata.prompt || planMetadata.prompt || ""
).trim();
const sourceModel = String(itemMetadata.model || planMetadata.model || "").trim();
const primarySourceNodeId = String(
itemMetadata.sourceNodeId || planMetadata.sourceNodeId || params.sourceNodeIds[0] || ""
).trim();
const metadata = {
...planMetadata,
...itemMetadata,
@ -140,6 +147,10 @@ function buildMediaNode(params: {
canvasAgentMediaItemId: params.item.mediaItemId,
canvasAgentPlacement: params.plan.placement,
canvasAgentPlacementStrategy: params.plan.placementStrategy,
messageId: sourceMessageId || undefined,
prompt: sourcePrompt || undefined,
model: sourceModel || undefined,
sourceNodeId: primarySourceNodeId || undefined,
sourceMessageId: sourceMessageId || undefined,
sourceImageKey: type === "image" && sourceMessageId ? params.item.url : undefined,
sourceNodeIds: params.sourceNodeIds,

View File

@ -1404,6 +1404,7 @@ test.describe("canvas chat pure helpers", () => {
prompt: "换成白底",
metadata: {
messageId: "assistant-append-1",
model: "test-image-model",
},
},
],
@ -1428,6 +1429,11 @@ test.describe("canvas chat pure helpers", () => {
canvasAgentOperationId: "op-append-1",
canvasAgentMediaItemId: "media-append-1",
revisionOf: "image-1",
sourceNodeId: "image-1",
sourceNodeIds: ["image-1"],
prompt: "换成白底",
model: "test-image-model",
messageId: "assistant-append-1",
sourceMessageId: "assistant-append-1",
sourceImageKey: "https://cdn.example.com/revision.png",
},