Add version-pinned reconciliation decisions

This commit is contained in:
2026-08-04 11:45:35 +02:00
parent 3991c179a4
commit 314e7c3edf
15 changed files with 724 additions and 7 deletions
@@ -530,6 +530,85 @@ _NODE_TYPES = (
},
sql_support="none",
),
NodeTypeDefinition(
type="reconcile.decisions",
category="quality",
label="Apply review decisions",
description="Attach versioned human decisions only while their reconciliation input hash still matches.",
icon="list-checks",
input_ports=(
NodePortDefinition(id="records", label="Reconciliation rows"),
NodePortDefinition(id="decisions", label="Decision rows"),
),
config_fields=(
NodeConfigField(
id="decision_key_column",
label="Decision key hash column",
kind="text",
required=True,
),
NodeConfigField(
id="decision_input_column",
label="Decision input hash column",
kind="text",
required=True,
),
NodeConfigField(
id="decision_ref_column",
label="Decision reference column",
kind="text",
required=True,
),
NodeConfigField(
id="action_column",
label="Action column",
kind="text",
required=True,
),
NodeConfigField(
id="actor_column",
label="Actor reference column",
kind="text",
required=True,
),
NodeConfigField(
id="decided_at_column",
label="Decision time column",
kind="text",
required=True,
),
NodeConfigField(
id="reason_column",
label="Reason column",
kind="text",
required=True,
),
NodeConfigField(
id="correction_column",
label="Correction column",
kind="text",
required=True,
),
NodeConfigField(
id="allowed_actions",
label="Allowed actions",
kind="column_list",
required=True,
),
),
default_config={
"decision_key_column": "key_hash",
"decision_input_column": "input_hash",
"decision_ref_column": "decision_ref",
"action_column": "action",
"actor_column": "actor_ref",
"decided_at_column": "decided_at",
"reason_column": "reason",
"correction_column": "correction",
"allowed_actions": ["accept", "reject", "correct", "defer"],
},
sql_support="none",
),
NodeTypeDefinition(
type="subflow",
category="transform",