ConsolidationPassResult

What a ConsolidationPass decided to do (or not do). Sealed so the orchestrator can exhaustively handle every case without a catch-all.

Every case carries the passName that produced it, so reports can attribute outcomes back to their source pass without threading the name through separately.

Inheritors

Types

Link copied to clipboard
data class Changed constructor(val passName: String, val propositionsToSave: List<Proposition> = emptyList(), val propositionsToDelete: List<String> = emptyList(), val skipped: Int = 0, val externallyApplied: Int = 0, val summary: String = "") : ConsolidationPassResult

The pass found changes to apply.

Link copied to clipboard
data class Failed(val passName: String, val cause: Throwable) : ConsolidationPassResult

The pass threw. The orchestrator records the failure and continues with the remaining passes rather than aborting the whole cycle.

Link copied to clipboard
data class NoOp(val passName: String, val reason: String = "") : ConsolidationPassResult

The pass had nothing to do — the snapshot is already consolidated as far as this pass is concerned. Returning NoOp (not an empty Changed) is how a pass signals it has settled, which lets the consolidation loop detect convergence.

Properties

Link copied to clipboard
abstract val passName: String

The ConsolidationPass.name of the pass that produced this result.