From 23f0b629e5d80f880e5a0809f2e47b2d836ee2f9 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 8 Nov 2026 09:47:11 +0000 Subject: remake: replays judged before they go in A switching or rejoining node replays late writes as fresh changes naming each write's user, and nothing judged them before they left: a replay every node would refuse (a revoked capability, a second envelope at a signed path, readers changed) was refused everywhere, and with it everything the node wrote after it. Under a policy, replay_newest now judges each group it commits as every node will (rules::judge_held, in the new epoch); one they would refuse is taken back (forked at the heads before it, same actor) and its paths quarantined with the reason. replay_newest takes the epoch. Review finding 3 (remake replays). --- src/remake/catchup.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/remake/catchup.rs') diff --git a/src/remake/catchup.rs b/src/remake/catchup.rs index 71f077a..9830c33 100644 --- a/src/remake/catchup.rs +++ b/src/remake/catchup.rs @@ -421,6 +421,7 @@ async fn finish(host: &H) { &before, &after, live, + target, &node, &translator, superseded, @@ -438,6 +439,7 @@ async fn finish(host: &H) { &began, &heads, live, + target, &node, &translator, superseded, -- cgit v1.3.1