From 39fbccc5fae0f4dfc04d24b4385cda1a9d7190bf Mon Sep 17 00:00:00 2001 From: Guilhem Date: Tue, 24 Feb 2026 14:46:19 +0000 Subject: [PATCH] refactor: remove backend Rust types for groups (UI-only, like notes) Co-Authored-By: Claude Opus 4.5 --- backend/windmill-common/src/flows.rs | 2 +- backend/windmill-types/src/flows.rs | 29 ------------------- backend/windmill-worker/src/worker_flow.rs | 2 +- .../windmill-worker/src/worker_lockfiles.rs | 12 +++----- 4 files changed, 6 insertions(+), 39 deletions(-) diff --git a/backend/windmill-common/src/flows.rs b/backend/windmill-common/src/flows.rs index d378318315..9c10bf62ce 100644 --- a/backend/windmill-common/src/flows.rs +++ b/backend/windmill-common/src/flows.rs @@ -107,7 +107,7 @@ pub async fn resolve_module( ForloopFlow { modules, modules_node, .. } | WhileloopFlow { modules, modules_node, .. } => { resolve_modules(db, workspace_id, modules, modules_node.take(), with_code).await?; } - BranchOne { branches, default, default_node, .. } => { + BranchOne { branches, default, default_node } => { resolve_modules(db, workspace_id, default, default_node.take(), with_code).await?; for branch in branches { resolve_modules( diff --git a/backend/windmill-types/src/flows.rs b/backend/windmill-types/src/flows.rs index 0d2afa5d71..1449050c24 100644 --- a/backend/windmill-types/src/flows.rs +++ b/backend/windmill-types/src/flows.rs @@ -178,8 +178,6 @@ pub struct FlowValue { pub chat_input_enabled: Option, #[serde(skip_serializing_if = "Option::is_none")] pub flow_env: Option>>, - #[serde(skip_serializing_if = "Option::is_none")] - pub groups: Option>, } impl FlowValue { @@ -406,20 +404,6 @@ pub struct Mock { pub return_value: Option, } -#[derive(Deserialize, Serialize, Debug, Clone)] -pub struct FlowGroup { - pub id: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub summary: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none", alias = "collapsed")] - pub collapsed_by_default: Option, - pub module_ids: Vec, - #[serde(skip_serializing_if = "Option::is_none")] - pub color: Option, -} - #[derive(Deserialize, Serialize, Debug, Clone, Default)] pub struct FlowModule { #[serde(default = "default_id")] @@ -864,8 +848,6 @@ pub enum FlowModuleValue { parallelism: Option, #[serde(skip_serializing_if = "Option::is_none")] squash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - collapsed: Option, }, WhileloopFlow { modules: Vec, @@ -875,23 +857,17 @@ pub enum FlowModuleValue { skip_failures: bool, #[serde(skip_serializing_if = "Option::is_none")] squash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - collapsed: Option, }, BranchOne { branches: Vec, default: Vec, #[serde(skip_serializing_if = "Option::is_none")] default_node: Option, - #[serde(skip_serializing_if = "Option::is_none")] - collapsed: Option, }, BranchAll { branches: Vec, #[serde(default = "default_true")] parallel: bool, - #[serde(skip_serializing_if = "Option::is_none")] - collapsed: Option, }, RawScript { #[serde(default)] @@ -967,7 +943,6 @@ struct UntaggedFlowModuleValue { tools: Option>, pass_flow_input_directly: Option, squash: Option, - collapsed: Option, #[serde(flatten)] concurrency_settings: ConcurrencySettingsWithCustom, } @@ -1009,7 +984,6 @@ impl<'de> Deserialize<'de> for FlowModuleValue { parallel: untagged.parallel.unwrap_or(false), parallelism: untagged.parallelism, squash: untagged.squash, - collapsed: untagged.collapsed, }), "whileloopflow" => Ok(FlowModuleValue::WhileloopFlow { modules: untagged @@ -1018,7 +992,6 @@ impl<'de> Deserialize<'de> for FlowModuleValue { modules_node: untagged.modules_node, skip_failures: untagged.skip_failures.unwrap_or(false), squash: untagged.squash, - collapsed: untagged.collapsed, }), "branchone" => Ok(FlowModuleValue::BranchOne { branches: untagged @@ -1028,14 +1001,12 @@ impl<'de> Deserialize<'de> for FlowModuleValue { .default .ok_or_else(|| serde::de::Error::missing_field("default"))?, default_node: untagged.default_node, - collapsed: untagged.collapsed, }), "branchall" => Ok(FlowModuleValue::BranchAll { branches: untagged .branches .ok_or_else(|| serde::de::Error::missing_field("branches"))?, parallel: untagged.parallel.unwrap_or(true), - collapsed: untagged.collapsed, }), "rawscript" => Ok(FlowModuleValue::RawScript { input_transforms: untagged.input_transforms.unwrap_or_default(), diff --git a/backend/windmill-worker/src/worker_flow.rs b/backend/windmill-worker/src/worker_flow.rs index 019878732b..33dafbb482 100644 --- a/backend/windmill-worker/src/worker_flow.rs +++ b/backend/windmill-worker/src/worker_flow.rs @@ -4481,7 +4481,7 @@ async fn compute_next_flow_transform( } } } - FlowModuleValue::BranchOne { branches, default, default_node, .. } => { + FlowModuleValue::BranchOne { branches, default, default_node } => { let branch = match status_module { FlowStatusModule::WaitingForPriorSteps { .. } | FlowStatusModule::WaitingForEvents { .. } diff --git a/backend/windmill-worker/src/worker_lockfiles.rs b/backend/windmill-worker/src/worker_lockfiles.rs index e41e0ef904..8636105243 100644 --- a/backend/windmill-worker/src/worker_lockfiles.rs +++ b/backend/windmill-worker/src/worker_lockfiles.rs @@ -800,7 +800,6 @@ async fn lock_modules<'c>( parallel, parallelism, squash, - collapsed, } => { let nmodules; (nmodules, tx, nmodified_ids, nerrors) = Box::pin(lock_modules( @@ -833,11 +832,10 @@ async fn lock_modules<'c>( parallel, parallelism, squash, - collapsed, } .into() } - FlowModuleValue::BranchAll { branches, parallel, collapsed } => { + FlowModuleValue::BranchAll { branches, parallel } => { let mut nbranches = vec![]; for mut b in branches { let nmodules; @@ -870,9 +868,9 @@ async fn lock_modules<'c>( b.modules = nmodules; nbranches.push(b) } - e.value = FlowModuleValue::BranchAll { branches: nbranches, parallel, collapsed }.into() + e.value = FlowModuleValue::BranchAll { branches: nbranches, parallel }.into() } - FlowModuleValue::WhileloopFlow { modules, modules_node, skip_failures, squash, collapsed } => { + FlowModuleValue::WhileloopFlow { modules, modules_node, skip_failures, squash } => { let nmodules; (nmodules, tx, nmodified_ids, nerrors) = Box::pin(lock_modules( modules, @@ -901,11 +899,10 @@ async fn lock_modules<'c>( modules_node, skip_failures, squash, - collapsed, } .into() } - FlowModuleValue::BranchOne { branches, default, default_node, collapsed } => { + FlowModuleValue::BranchOne { branches, default, default_node } => { let mut nbranches = vec![]; for mut b in branches { let nmodules; @@ -969,7 +966,6 @@ async fn lock_modules<'c>( branches: nbranches, default: ndefault, default_node, - collapsed, } .into(); }