design: Plan/Undo semantics — non-invertible actions and rollback guarantees #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spec defines `Plan { steps: Vec<(Action, Undo)> }` and promises "либо весь Plan, либо откат". Open design questions to settle before coding:
Output: a short design doc in this repo; spec update follows.
Context update (Planner core = Haskell behind FFI, Rust actor wrapper): Plan and its Undo entries
serialize across the FFI boundary to the Rust Executor side. Two additions to this design doc:
define staleness policy: does Executor re-validate preconditions per step, or trust the snapshot?
either round-trip back into Haskell (step result in, next decision out) or live in the Rust wrapper. Pick
one — it determines where the "commit or rollback" logic from the spec's reconciliation loop actually
lives.