node_history
Retrieves the full history of a node across Veris runs for forensic analysis—showing risk score changes, execution results, and modification events to verify reliability.
Instructions
Returns the full timeline for a specific node across every Veris run persisted in .veris/state.db: risk score over time, execution attempts (pass / fail / flaky / skipped per tier), and the runs in which it was added, modified, or removed. Use this for forensic analysis — 'this function broke prod, what does its Veris history look like?' — or to verify that a high-risk node has accumulated enough successful executions to lower its risk weighting.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Full node identifier. Format: 'absolute-path::SymbolName' or 'absolute-path::Class::method'. |
Implementation Reference
- Queries the 'executions' table (not node_history table) filtering by nodeId, returning execution history across all runs
public executionsForNode(nodeId: string): ExecutionRecord[] { if (!this.db) return []; return this.db.prepare(` SELECT run_id as runId, node_id as nodeId, workflow_id as workflowId, tier, directive, result, detail, duration_ms as durationMs, executed_at as executedAt FROM executions WHERE node_id = ? ORDER BY executed_at DESC `).all(nodeId) as ExecutionRecord[]; } - src/persistence/VerisState.ts:96-103 (schema)DDL for the node_history table storing risk/blast_radius per node per run
`CREATE TABLE IF NOT EXISTS node_history ( node_id TEXT NOT NULL, run_id TEXT NOT NULL, risk REAL, blast_radius INTEGER, ts TEXT NOT NULL, PRIMARY KEY (node_id, run_id) )`,