Add version-pinned reconciliation decisions
This commit is contained in:
@@ -23,7 +23,14 @@
|
||||
"case_id": "A-1",
|
||||
"status": "open",
|
||||
"amount": 10
|
||||
}
|
||||
},
|
||||
"_decision_state": "unreviewed",
|
||||
"_decision_action": null,
|
||||
"_decision_ref": null,
|
||||
"_decision_actor_ref": null,
|
||||
"_decision_at": null,
|
||||
"_decision_reason": null,
|
||||
"_decision_correction": null
|
||||
},
|
||||
{
|
||||
"case_id": "A-2",
|
||||
@@ -58,7 +65,14 @@
|
||||
"case_id": "A-2",
|
||||
"status": "closed",
|
||||
"amount": 25
|
||||
}
|
||||
},
|
||||
"_decision_state": "applied",
|
||||
"_decision_action": "accept",
|
||||
"_decision_ref": "decision:monthly-2026-07:A-2:1",
|
||||
"_decision_actor_ref": "account:synthetic-reviewer",
|
||||
"_decision_at": "2026-07-31T10:00:00Z",
|
||||
"_decision_reason": "Synthetic fixture decision after source comparison.",
|
||||
"_decision_correction": null
|
||||
},
|
||||
{
|
||||
"monthly_case_id": "A-3",
|
||||
@@ -77,6 +91,13 @@
|
||||
"case_id": "A-3",
|
||||
"status": "open",
|
||||
"amount": 30
|
||||
}
|
||||
},
|
||||
"_decision_state": "unreviewed",
|
||||
"_decision_action": null,
|
||||
"_decision_ref": null,
|
||||
"_decision_actor_ref": null,
|
||||
"_decision_at": null,
|
||||
"_decision_reason": null,
|
||||
"_decision_correction": null
|
||||
}
|
||||
]
|
||||
|
||||
@@ -73,11 +73,39 @@
|
||||
"right_prefix": "monthly_"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "decisions",
|
||||
"type": "source.inline",
|
||||
"label": "Review decisions",
|
||||
"position": {"x": 1020, "y": 360},
|
||||
"config": {
|
||||
"source_name": "review_decisions",
|
||||
"fixture": "review-decisions.json",
|
||||
"rows": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "apply-decisions",
|
||||
"type": "reconcile.decisions",
|
||||
"label": "Apply current decisions",
|
||||
"position": {"x": 1260, "y": 160},
|
||||
"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"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "output",
|
||||
"type": "output",
|
||||
"label": "Review differences",
|
||||
"position": {"x": 1260, "y": 160},
|
||||
"position": {"x": 1500, "y": 160},
|
||||
"config": {}
|
||||
}
|
||||
],
|
||||
@@ -112,6 +140,18 @@
|
||||
{
|
||||
"id": "e6",
|
||||
"source": "reconcile",
|
||||
"target": "apply-decisions",
|
||||
"target_port": "records"
|
||||
},
|
||||
{
|
||||
"id": "e7",
|
||||
"source": "decisions",
|
||||
"target": "apply-decisions",
|
||||
"target_port": "decisions"
|
||||
},
|
||||
{
|
||||
"id": "e8",
|
||||
"source": "apply-decisions",
|
||||
"target": "output"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
[
|
||||
{
|
||||
"key_hash": "20f1552752978558506b159b92bc738d34f484d3d76068173b0c96e1fc4a8c2d",
|
||||
"input_hash": "182de78bc3297d90cd4b02392bfb4a53fc9d9c29851d567f68e10be477a57dd8",
|
||||
"decision_ref": "decision:monthly-2026-07:A-2:1",
|
||||
"action": "accept",
|
||||
"actor_ref": "account:synthetic-reviewer",
|
||||
"decided_at": "2026-07-31T10:00:00Z",
|
||||
"reason": "Synthetic fixture decision after source comparison.",
|
||||
"correction": null
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user