diff --git a/hive-c0re/src/dashboard.rs b/hive-c0re/src/dashboard.rs index 48b537c1..0ff15d86 100644 --- a/hive-c0re/src/dashboard.rs +++ b/hive-c0re/src/dashboard.rs @@ -1536,14 +1536,16 @@ where /// `PATCH /api/schedules/{id}` — partial update of an existing /// schedule (#474). Mutable fields: `body`, `description`, -/// `interval_seconds`, `next_fire_at_unix`. Targets stay -/// immutable (per-target last-result history is keyed on them; -/// the "I want different targets" workaround is cancel + submit -/// a new schedule). JSON body uses missing-key = "leave alone", -/// explicit null = "clear" for `description` + `interval_seconds`. -/// Cancelled schedules are refused — submit a new one instead. -/// Returns the updated `WireSchedule` so the caller's post-edit -/// refresh has the new state inline. +/// `interval_seconds`, `next_fire_at_unix`, plus the target set +/// via `targets_add` / `targets_remove` (#478). Both target lists +/// are applied in the same transaction as the scalar fields with +/// removes-before-adds; re-adding a previously-removed target +/// resets per-target history (fresh start); draining all targets +/// auto-cancels the parent schedule. JSON body uses missing-key +/// = "leave alone", explicit null = "clear" for `description` + +/// `interval_seconds`. Cancelled schedules are refused — submit +/// a new one instead. Returns the updated `WireSchedule` so the +/// caller's post-edit refresh has the new state inline. async fn patch_schedule( State(state): State, AxumPath(id): AxumPath,