From eb99bf97dcf4e06c2ffdbb8cc1f57d96046bad17 Mon Sep 17 00:00:00 2001 From: nichenqin Date: Thu, 8 Jan 2026 15:47:18 +0800 Subject: [PATCH] fix(v2): show link relation triggers in explain --- .../src/utils/ComputedUpdateReasonBuilder.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/v2/command-explain/src/utils/ComputedUpdateReasonBuilder.ts b/packages/v2/command-explain/src/utils/ComputedUpdateReasonBuilder.ts index 6eee188a1..05333cefc 100644 --- a/packages/v2/command-explain/src/utils/ComputedUpdateReasonBuilder.ts +++ b/packages/v2/command-explain/src/utils/ComputedUpdateReasonBuilder.ts @@ -123,8 +123,25 @@ export const buildComputedUpdateReason = ( } } + const implicitLinkSeedIds = new Set(); + for (const fieldId of targetFieldIds) { + const meta = fieldsById.get(fieldId.toString()); + if (!meta || meta.type !== 'link') { + continue; + } + const targetId = fieldId.toString(); + if (seedFieldIdSet.has(targetId)) { + implicitLinkSeedIds.add(targetId); + } + const symmetricFieldId = meta.options?.symmetricFieldId; + if (symmetricFieldId && seedFieldIdSet.has(symmetricFieldId)) { + implicitLinkSeedIds.add(symmetricFieldId); + } + } + + const effectiveSeedIds = new Set([...seededDependencyIds, ...implicitLinkSeedIds]); const seedFields: ComputedUpdateSeedField[] = changedFieldIds - .filter((fieldId) => seededDependencyIds.has(fieldId.toString())) + .filter((fieldId) => effectiveSeedIds.has(fieldId.toString())) .map((fieldId) => { const meta = fieldsById.get(fieldId.toString()); const tableId = meta?.tableId ?? plan.seedTableId;