Skip to content

Add immutable revalidated Runtime settlement plans #793

Description

@flyingrobots

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:apiPrimary work area: api.area:architecturePrimary work area: architecture.area:runtimePrimary work area: runtime.priority:nextNext in line after active work.status:availableOpen and available for prioritization; not blocked or actively in progress.type:featureNew capability or product behavior.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions