Skip to content

Separate v19 admission classification from settlement #765

Description

@flyingrobots

Goal

Freeze and implement the v19 phase boundary:

proposal -> derivation verification -> destination admission
                                      -> derived | plural | conflict | obstruction
plural or resolved coordinate -> previewSettlement() -> SettlementPlan -> settle()

Admission classifies how proposed history relates to the destination frontier. Settlement is the later, law-governed promotion of an admitted plural or resolved coordinate. Observation and runtime failure remain separate axes. This is a child slice of #712.

Required semantics

  • AdmissionResult is a closed discriminated union of exactly derived, plural, conflict, and obstruction.
  • Each variant requires a distinct typed witness and explicit source/destination participant, basis, proposal, law/profile, evaluation coordinate, and residual posture bindings.
  • derived != plural, plural != conflict, and conflict != obstruction.
  • Plurality is a lawful terminal posture and never implies required canonicalization.
  • Conflict and obstruction expose distinct recovery inputs.
  • Observation cardinality is orthogonal to admission outcome.
  • Runtime/process/corruption failures live outside the semantic union.
  • Source-derivation failure is explicitly classified as pre-admission failure or a qualified obstruction; the choice is documented and tested.
  • Preview is non-authoritative. Settlement plans are immutable, digest- and basis-bound, and revalidated by settle(plan).
  • Legacy accepted | obstructed | conflicted | underdetermined | rejected projection is explicitly lossy and unavailable from the v19 root.
  • CRDT joins remain domain settlement policies where lawful; git-warp does not require every concurrent history to possess an automatic least upper bound.

Acceptance

  • Normative API and architecture docs distinguish admission, settlement, observation, receipt, and witness.
  • Existing admitted | staged | plural | conflict | obstruction fixture vocabulary is replaced or quarantined; plurality is not modeled as requiring resolution.
  • Closed runtime-validated contracts prevent illegal outcome/witness combinations.
  • Exhaustive matching has no default branch.
  • Semantic matrix tests cover direct extension, disjoint concurrency, exclusive overlap, capability denial, unsupported evidence, invalid derivation, and stale settlement plans.
  • Witness verification is independent of receipt-shell telemetry.
  • Graft/publication checks show no accidental root exposure before the final Goalpost: v19 Runtime, Lane, and Observation public API #712 cutover.

Non-goals

This slice does not complete the Runtime/Lane root cutover, generated Wesley SDKs, or the streaming Observation implementation. Those remain subsequent #712 slices.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:apiPrimary work area: api.area:architecturePrimary work area: architecture.area:docsPrimary work area: docs.area:runtimePrimary work area: runtime.priority:asapImmediate release pressure.status:activeSomeone is actively working this issue.type:featureNew capability or product behavior.type:storyChild story or proof contract.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions