summaryrefslogtreecommitdiff
path: root/frontend/src/components/nodes/LLMNode.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/components/nodes/LLMNode.tsx')
-rw-r--r--frontend/src/components/nodes/LLMNode.tsx17
1 files changed, 11 insertions, 6 deletions
diff --git a/frontend/src/components/nodes/LLMNode.tsx b/frontend/src/components/nodes/LLMNode.tsx
index dce1f2e..8105070 100644
--- a/frontend/src/components/nodes/LLMNode.tsx
+++ b/frontend/src/components/nodes/LLMNode.tsx
@@ -263,22 +263,21 @@ const LLMNode = ({ id, data, selected }: NodeProps<NodeData>) => {
{data.traces && data.traces
.filter((trace: Trace) => {
// Only show continue handle if NOT already connected downstream
- const evolvedTraceId = `${trace.id}_${id}`;
+ // Now that trace IDs don't evolve, we check the base ID
const hasOutgoingEdge = edges.some(e =>
e.source === id &&
- (e.sourceHandle === `trace-${trace.id}` || e.sourceHandle === `trace-${evolvedTraceId}`)
+ e.sourceHandle === `trace-${trace.id}`
);
// Only show dashed handle if not yet connected
return !hasOutgoingEdge;
})
.map((trace: Trace) => {
- const evolvedTraceId = `${trace.id}_${id}`;
return (
<div key={`continue-${trace.id}`} className="relative h-4 w-4 my-1" title={`Continue trace: ${trace.id}`}>
<Handle
type="source"
position={Position.Right}
- id={`trace-${evolvedTraceId}`}
+ id={`trace-${trace.id}`}
className="!w-3 !h-3 !right-[-6px]"
style={{
backgroundColor: trace.color,
@@ -322,6 +321,11 @@ const LLMNode = ({ id, data, selected }: NodeProps<NodeData>) => {
{/* 2. Merged Trace Handles (with alternating color stripes) */}
{data.mergedTraces && data.mergedTraces.map((merged: MergedTrace) => {
+ // Check if this merged trace has any outgoing edges
+ const hasOutgoingEdge = edges.some(e =>
+ e.source === id && e.sourceHandle === `trace-${merged.id}`
+ );
+
// Create a gradient background from the source trace colors
const colors = merged.colors.length > 0 ? merged.colors : ['#888'];
const gradientStops = colors.map((color, idx) =>
@@ -335,11 +339,12 @@ const LLMNode = ({ id, data, selected }: NodeProps<NodeData>) => {
type="source"
position={Position.Right}
id={`trace-${merged.id}`}
- className="!w-3 !h-3 !right-[-6px] !border-0"
+ className="!w-3 !h-3 !right-[-6px]"
style={{
background: stripeGradient,
top: '50%',
- transform: 'translateY(-50%)'
+ transform: 'translateY(-50%)',
+ border: hasOutgoingEdge ? 'none' : `2px dashed ${isDark ? '#374151' : '#fff'}`
}}
/>
</div>