From 84a137b4db8d901848df8e06dc45dfca2206dbae Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 8 Nov 2026 14:09:25 +0000 Subject: rules: an expired remake aborted by any member Under a policy, a remake's decision was taken from its coordinator only. A node aborting an expired remake whose coordinator is gone (DELETE /admin/remakes, after abortableAt) was refused by its own judgement (403), so such a remake could never be decided. The decision is now also taken from a user who may write it (the protocol writers), and an abort from any member once the remake expired a grace period ago (abortableAt, by the coordinator's grace period in the proposal). The rules have no clock of their own, so that is judged by the time the change says it was made: the writer's word, so a member could abort a remake early, as it could ask its coordinator to, but never commit one. Before then, an abort stays a request the coordinator applies. --- src/access/screen.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src/access/screen.rs') diff --git a/src/access/screen.rs b/src/access/screen.rs index 37e3adf..a9450a6 100644 --- a/src/access/screen.rs +++ b/src/access/screen.rs @@ -414,6 +414,7 @@ pub(crate) fn apply( user: user.as_deref(), paths: &paths[index], ops: &ops[index], + time: u64::try_from(change.timestamp()).unwrap_or(0), }, ); match judged { -- cgit v1.3.1