Skip to content

Contract Inverse Admission Hook #472

Description

@flyingrobots

Migrated from Method backlog

This issue was created from a legacy filesystem backlog card. GitHub Issues are now the live work tracker; repository docs remain Method evidence.

Source backlog: docs/method/backlog/up-next/KERNEL_contract-inverse-admission-hook.md
Original lane: up-next
Original legend: KERNEL

Original backlog card

Contract Inverse Admission Hook

Status: planned kernel/runtime implementation.

Depends on:

Why now

Undo must be witnessed history. A contract knows how to invert its own domain
semantics; Echo should provide a generic admission hook, not a generic blind
WarpOp inverse API.

What it should look like

Given:

  • target tick, receipt, or range;
  • current target coordinate;
  • contract family;
  • inverse policy;
  • installed contract artifact;

Echo asks the contract to produce one or more inverse intents or a typed
obstruction. Produced inverse intents are admitted normally.

Acceptance criteria

  • Building hello from five insert ticks then unapplying C2 appends one inverse
    tick.
  • Reading at the new frontier is helo.
  • Original C2 remains in provenance.
  • Provenance length increases by one.
  • Inverse receipt links to the target receipt.
  • Unmappable spans, missing receipts, unavailable inverse fragments, and
    contract-version mismatches return typed obstructions.
  • Sequence unapply applies deterministic ordering or reports partial success
    explicitly.
  • TickReceipt inverse blob or inverse fragment digest resolves through
    retention when inverse material is retained.
  • GC, compaction, wormhole, or checkpoint compression either preserves required
    inverse evidence, provides a rehydratable cold archive, or obstructs
    fine-grained unapply inside compressed ranges.

Non-goals

  • Do not delete or rewrite old ticks.
  • Do not expose WarpOp replay patches as user-facing undo semantics.
  • Do not silently succeed when inverse evidence is missing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions