Node Focus [Experimental]

Node Focus lets you “study” specific nodes in your workflows by recording their inputs, outputs, execution time, and optional Reddit post context across executions.

What gets recorded

  • Input values received by the node
  • Output values produced by the node
  • Execution timing (ms)
  • Associated post data (optional)
  • Timestamp per execution

Recording only applies to focused nodes and adds minimal overhead when enabled.

How it works

  1. You mark nodes as focused with a record limit.
  2. The engine records data for focused nodes during workflow execution.
  3. Data is stored on disk in a simple JSON structure for analysis.

Storage layout

node_focus_data/
├── focus_configs.json           # Focus configurations
└── execution_records/           # Execution data by workflow
    └── {workflow_id}/
        └── {node_id}.json       # Records for specific node

Using Node Focus

In the UI

  1. Open a workflow in the editor.
  2. Toggle Node Focus mode and click nodes to focus them.
  3. Set max records and enable/disable as needed.
  4. Analyze focused nodes on the Node Focus dashboard.

Via API

POST /api/node-focus
Content-Type: application/json

{
  "workflow_id": "workflow-123",
  "node_id": "node-456",
  "max_records": 1000
}
GET /api/node-focus?workflow_id=workflow-123
GET /api/node-focus/node-456/records?workflow_id=workflow-123&days=7&limit=100
PUT /api/node-focus/node-456
Content-Type: application/json

{
  "enabled": false,
  "max_records": 500
}
DELETE /api/node-focus/node-456

Start by focusing a few critical nodes (e.g., threshold checks) to understand behavior before broadening coverage.

Data model

@dataclass class NodeFocusConfig: node_id: str workflow_id: str enabled: bool max_records: int created_at: str

=== NodeExecutionRecord
```python
@dataclass
class NodeExecutionRecord:
    id: str
    node_id: str
    workflow_id: str
    execution_id: str
    timestamp: str
    input_values: Dict
    output_values: Dict
    execution_time_ms: float
    post_data: Dict

## Best practices
- Focus nodes critical to decision logic or with complex calculations
- Use appropriate record limits and time windows
- Monitor execution time for performance-sensitive nodes
- Periodically clean old data

## Troubleshooting
- No records? Ensure the node is focused and enabled, and that the workflow runs
- Missing files? Check permissions in `node_focus_data/` and verify workflow IDs
- Performance concerns? Reduce focused nodes or lower record limits

## Next steps
- Use the dashboard at `/node-focus` to analyze trends
- Combine Node Focus with execution trace data for deeper debugging
- Explore sample workflows to see typical focus points