feat: amber container for filter/idempotent gate state + red pulse on failed badge
When a filter processor rejects a message (filterMatched=false) or an idempotent consumer detects a duplicate (duplicateMessage=true), the compound container turns amber (header, border, body tint). Also adds red pulsing rings on the failed processor badge (same SMIL pattern as the teal hasTraceData pulse). Backend: ProcessorNode gains filterMatched/duplicateMessage fields, threaded from ProcessorExecution JSON path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,10 @@ export interface NodeExecutionState {
|
||||
hasTraceData?: boolean;
|
||||
/** Runtime-resolved endpoint URI (for TO_DYNAMIC, etc.) */
|
||||
resolvedEndpointUri?: string;
|
||||
/** Filter processor: true if predicate matched, false if message was rejected */
|
||||
filterMatched?: boolean;
|
||||
/** Idempotent consumer: true if duplicate message detected and children skipped */
|
||||
duplicateMessage?: boolean;
|
||||
}
|
||||
|
||||
export interface IterationInfo {
|
||||
|
||||
@@ -61,6 +61,8 @@ function buildOverlay(
|
||||
subRouteFailed: subRouteFailed || undefined,
|
||||
hasTraceData: !!proc.hasTraceData,
|
||||
resolvedEndpointUri: proc.resolvedEndpointUri || undefined,
|
||||
filterMatched: (proc as Record<string, unknown>).filterMatched as boolean | undefined,
|
||||
duplicateMessage: (proc as Record<string, unknown>).duplicateMessage as boolean | undefined,
|
||||
});
|
||||
|
||||
// Recurse into children
|
||||
|
||||
Reference in New Issue
Block a user