review: address feedback — expand cut to include full outgoing structure (all hops)

This commit is contained in:
Claude Bot
2026-03-23 19:58:40 +00:00
committed by tymurbaniak
parent 000aad362a
commit 63e204840f

View File

@@ -112,16 +112,20 @@ export default function NodeContextMenu({
? selectedNodeIds ? selectedNodeIds
: [nodeContext.nodeId]; : [nodeContext.nodeId];
// Also include nodes reachable by outgoing edges from base nodes // BFS to collect all nodes reachable via outgoing edges from base nodes (all hops)
const baseIdSet = new Set(baseIds); const visited = new Set(baseIds);
const linkedIds = new Set<string>(); const queue = [...baseIds];
for (const nodeId of baseIds) { while (queue.length > 0) {
const nodeId = queue.shift()!;
currentGraph.edges currentGraph.edges
.filter(e => e.from === nodeId && !baseIdSet.has(e.to)) .filter(e => e.from === nodeId && !visited.has(e.to))
.forEach(e => linkedIds.add(e.to)); .forEach(e => {
visited.add(e.to);
queue.push(e.to);
});
} }
const allCutIds = [...baseIds, ...linkedIds]; const allCutIds = [...visited];
const allCutIdSet = new Set(allCutIds); const allCutIdSet = new Set(allCutIds);
const cutNodes = currentGraph.nodes.filter(n => allCutIdSet.has(n.id)); const cutNodes = currentGraph.nodes.filter(n => allCutIdSet.has(n.id));