pub struct CompactionFederationDecisionV1 {
pub schema: String,
pub identity: String,
pub fence: String,
pub scope: String,
pub decision: String,
pub selection_receipt: CompactionFederationSelectionReceiptV1,
pub issued_monotonic_elapsed_ms: u64,
pub expires_after_elapsed_ms: u64,
pub restart_epoch: u64,
}Fields§
§schema: StringWire contract-version tag; always serialized as $schema.
identity: StringStable identity of the decision (idempotency key for one-use commit).
fence: StringFence token binding this decision to one session/turn boundary.
scope: StringThe federation scope this decision governs (e.g. a context/archive id).
decision: StringThe decision outcome: "approved", "deferred", or "denied".
selection_receipt: CompactionFederationSelectionReceiptV1§issued_monotonic_elapsed_ms: u64Monotonic elapsed milliseconds, on the issuing server’s own monotonic clock, at the moment this decision was issued.
expires_after_elapsed_ms: u64Bounded server-issued expiry window, in elapsed milliseconds from
issued_monotonic_elapsed_ms. Never a wall-clock timestamp.
restart_epoch: u64Monotonic-clock epoch (e.g. process/session boot generation) this decision was issued under.
Implementations§
Source§impl CompactionFederationDecisionV1
impl CompactionFederationDecisionV1
Sourcepub fn is_live(
&self,
now_monotonic_elapsed_ms: u64,
current_restart_epoch: u64,
) -> bool
pub fn is_live( &self, now_monotonic_elapsed_ms: u64, current_restart_epoch: u64, ) -> bool
Whether the decision is still live: same monotonic epoch (no restart since issuance) and still inside its server-issued expiry window, measured strictly against monotonic elapsed time. Must be checked before any one-use local commit is honored.