From 1506c7dcd6032c04c1df6f5785b6dd3dfe4511cc Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Mon, 14 Sep 2026 10:56:21 +0200 Subject: krino: duplicates are found, never deleted A rule combining (duplicate) with a delete action is refused at load, and a file that is a duplicate under any duplicate scope its directory uses gets no delete step from any rule: the plan shows it skipped and the chain continues. A failed duplicate check blocks the delete too. Tests cover (matched), another rule's own condition, a test evaluation skipped, two scopes and a failed check, each checking every copy is still on disk. --- internal/engine/plan.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'internal/engine/plan.go') diff --git a/internal/engine/plan.go b/internal/engine/plan.go index 979bec1..d9ffeb3 100644 --- a/internal/engine/plan.go +++ b/internal/engine/plan.go @@ -52,7 +52,7 @@ func (e *Engine) Plan(ctx context.Context, d *Dir, claims *plan.Claims) (*DirPla Reasons: rm.Reasons, } } - inputs[i] = plan.Input{File: fm.File, Rules: rules} + inputs[i] = plan.Input{File: fm.File, Rules: rules, NoDelete: fm.NoDelete} } chains := plan.Build(d.Root, inputs, e.Now(), plan.OS{}, claims) -- cgit v1.3