Parent: #712
Blocked by: Runtime fork and strand Lane slice
Outcome
Runtime.previewSettlement() returns inspectable evidence plus an immutable runtime-backed SettlementPlan; Runtime.settle() accepts only that plan and revalidates all bound frontiers before mutation.
Acceptance
- A plan binds source/target Lane identities, exact frontiers, proposal, law, policy, and plan digests.
- Preview is non-mutating and does not reserve or publish history.
- Plans are frozen, unforgeable at the public boundary, and accepted only by the Runtime that issued them.
- Settle revalidates source and target frontiers and the active law/policy.
- A changed basis produces a stable
stale-basis obstruction; it never executes the stale plan.
- Conflict and obstruction cannot settle; lawful plurality may remain plural.
- Settlement receipts use the canonical operation/outcome/evidence vocabulary.
- Real-Git, concurrency, stale-plan, consumer, and boundary tests prove the contract.
Non-goals
Common-basis braid validation and merge-compatible object input are not promised.
Parent: #712
Blocked by: Runtime fork and strand Lane slice
Outcome
Runtime.previewSettlement()returns inspectable evidence plus an immutable runtime-backedSettlementPlan;Runtime.settle()accepts only that plan and revalidates all bound frontiers before mutation.Acceptance
stale-basisobstruction; it never executes the stale plan.Non-goals
Common-basis braid validation and merge-compatible object input are not promised.