From 3e6b23ce7651c0f3b146bf9f3dabc8ec7ed570e2 Mon Sep 17 00:00:00 2001 From: Scott Werner Date: Mon, 17 Aug 2026 17:01:04 -0400 Subject: [PATCH] Keep loaded workflow-version closures out of implicit copies LoadedWorkflowVersionClosure owns every file of every version in the dependency graph, so an advertised Clone invites accidental deep copies of the whole set. Drop the derive until a consumer needs owned copies. Co-Authored-By: Claude Fable 5 --- lib/components/fabro-workflow-version/src/store.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/components/fabro-workflow-version/src/store.rs b/lib/components/fabro-workflow-version/src/store.rs index 92f61d014..f2fb3981b 100644 --- a/lib/components/fabro-workflow-version/src/store.rs +++ b/lib/components/fabro-workflow-version/src/store.rs @@ -43,7 +43,10 @@ pub enum WorkflowVersionStoreError { /// A fully loaded and validated workflow-version dependency graph: the /// requested root alongside every unique transitive dependency, keyed by /// canonical content ID. -#[derive(Clone, Debug)] +/// +/// Deliberately not `Clone`: a closure owns the full file contents of every +/// version in the graph, so copies should be explicit and deliberate. +#[derive(Debug)] pub struct LoadedWorkflowVersionClosure { root_id: WorkflowVersionId, root: ValidatedWorkflowVersion,