fix(javascript): retain unresolved value frontiers in provenance queries

This commit is contained in:
morluto committed 2026-10-10 01:45:01 +08:00
1 parent b628bba1fa
commit 3e19875c7f
4 files changed
+75 -23

No files matched your search

@@ -111,17 +111,23 @@ const projectValue = (input: ValueProjectionInput): void => {
),
}),
);
} else if (value.status === "unknown" && value.resourceLimit !== undefined) {
} else if (
value.status === "unknown" ||
value.status === "ambiguous" ||
value.status === "cycle"
) {
const location = binding.definitions[0]?.location ?? null;
const evidence = observedSemanticEvidence(context.file, location);
const isPropertyValue = role.startsWith("property:");
addSemanticGraphUnknown(
context.state,
createJavaScriptSemanticGraphUnknown({
node_id: target.node_id,
family: isPropertyValue ? "object-flow" : "data-flow",
relation_kinds: [isPropertyValue ? "writes-property" : "defines"],
reason: "resource-limit",
family: "data-flow",
relation_kinds: ["defines"],
reason:
value.resourceLimit === undefined
? "unknown-value"
: "resource-limit",
detail: `${value.reason} Unknown value at ${role}.`,
candidate_node_ids: [target.node_id],
evidence: {