SweepAction

sealed interface SweepAction

What the sweep phase should do with a marked proposition, as decided by a SweepPolicy.

A sealed family so the runner can exhaustively dispatch over the recognized outcomes.

Inheritors

Types

Link copied to clipboard
data object HardDelete : SweepAction

Permanently remove the proposition. This is destructive and unrecoverable, so it is never the default — a policy must opt in explicitly, and the default StatusTransitionSweepPolicy never returns it.

Link copied to clipboard
data class MergeInto(val survivorId: String, val thenStatus: PropositionStatus = PropositionStatus.STALE) : SweepAction

Fold this (losing) proposition's evidence onto a surviving proposition, then retire it.

Link copied to clipboard
data object Skip : SweepAction

Leave the proposition untouched (e.g. it is pinned, or carries no marks).

Link copied to clipboard
data class TransitionStatus(val newStatus: PropositionStatus) : SweepAction

Soft, recoverable retirement: transition the proposition to newStatus (e.g. PropositionStatus.STALE). This is the non-destructive default outcome.