Skip to main content

void

Function void 

Source
pub fn void(
    vault_path: &Path,
    pp: &Passphrase,
    target_ref: &str,
    now: OffsetDateTime,
) -> Result<EventId, CliError>
Expand description

FR8: void a revocable decision. Voiding a non-revocable / effective-allocation target raises decision_conflicts in the projection (no effect) — the CLI only appends; the engine adjudicates.

When the voided decision is a LotSelection, also clears that disposal’s optimize_attestation row ATOMICALLY (same in-memory DB, one session.save()). This closes the revocation-completeness edge: without the clear, a post-void re-run where the FIFO default equals the optimum (proposed==current, D ∈ unchanged) could mislabel D as AttestedRecording from a stale row the user never attested in this context. Non-LotSelection decisions are unaffected (the optimize_attestation table has no row to clear — the delete is a no-op).