fix: emit SchedulesChanged from manager-server + approval paths
Agent-triggered schedule mutations (cancel_schedule, fire_schedule_now, edit_schedule MCP tools) go through manager_server.rs, not the HTTP API handlers. Approval-resolved SchedulePrompt inserts go through actions.rs. Neither was emitting SchedulesChanged. - manager_server.rs: add emit_schedules_snapshot() on Ok in handle_cancel_schedule, handle_fire_schedule_now, handle_edit_schedule - actions.rs: emit_schedules_snapshot() after successful run_approval_schedule_prompt (covers request_schedule_prompt approval resolving) Coverage is now complete: every path that writes a scheduled_prompts row emits the SSE snapshot.
This commit is contained in:
parent
76c4a67b1c
commit
68108fe5f8
2 changed files with 17 additions and 4 deletions
|
|
@ -116,7 +116,11 @@ pub async fn approve(coord: Arc<Coordinator>, id: i64) -> Result<()> {
|
||||||
// at the scheduled time). Run inline + fire
|
// at the scheduled time). Run inline + fire
|
||||||
// `ApprovalResolved` so the approval row leaves Pending
|
// `ApprovalResolved` so the approval row leaves Pending
|
||||||
// immediately.
|
// immediately.
|
||||||
run_approval_schedule_prompt(&coord, approval).await
|
let result = run_approval_schedule_prompt(&coord, approval).await;
|
||||||
|
if result.is_ok() {
|
||||||
|
coord.emit_schedules_snapshot();
|
||||||
|
}
|
||||||
|
result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -610,7 +610,10 @@ fn handle_cancel_schedule(
|
||||||
.map_err(|e| format!("cancel all: {e:#}")),
|
.map_err(|e| format!("cancel all: {e:#}")),
|
||||||
};
|
};
|
||||||
match result {
|
match result {
|
||||||
Ok(()) => ManagerResponse::Ok,
|
Ok(()) => {
|
||||||
|
coord.emit_schedules_snapshot();
|
||||||
|
ManagerResponse::Ok
|
||||||
|
}
|
||||||
Err(message) => ManagerResponse::Err { message },
|
Err(message) => ManagerResponse::Err { message },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -647,7 +650,10 @@ async fn handle_fire_schedule_now(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
match crate::scheduled_prompts_worker::fire_now(coord, schedule_id).await {
|
match crate::scheduled_prompts_worker::fire_now(coord, schedule_id).await {
|
||||||
Ok(_report) => ManagerResponse::Ok,
|
Ok(_report) => {
|
||||||
|
coord.emit_schedules_snapshot();
|
||||||
|
ManagerResponse::Ok
|
||||||
|
}
|
||||||
Err(e) => ManagerResponse::Err {
|
Err(e) => ManagerResponse::Err {
|
||||||
message: format!("fire schedule {schedule_id} now: {e:#}"),
|
message: format!("fire schedule {schedule_id} now: {e:#}"),
|
||||||
},
|
},
|
||||||
|
|
@ -709,7 +715,10 @@ fn handle_edit_schedule(
|
||||||
targets_remove,
|
targets_remove,
|
||||||
};
|
};
|
||||||
match coord.scheduled_prompts.update(schedule_id, patch) {
|
match coord.scheduled_prompts.update(schedule_id, patch) {
|
||||||
Ok(()) => ManagerResponse::Ok,
|
Ok(()) => {
|
||||||
|
coord.emit_schedules_snapshot();
|
||||||
|
ManagerResponse::Ok
|
||||||
|
}
|
||||||
Err(e) => ManagerResponse::Err {
|
Err(e) => ManagerResponse::Err {
|
||||||
message: format!("edit schedule {schedule_id}: {e:#}"),
|
message: format!("edit schedule {schedule_id}: {e:#}"),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue