manager: add optional agent param to reminder RPCs

CountPendingReminders and ReminderRollup were hardcoded to
MANAGER_AGENT. Both now take agent: Option<String> — None keeps the
current behavior (manager's own), Some(name) returns that agent's
reminder stats. The broker functions already take an agent name, so
this is a thin wire-protocol change. Callers (web UI stats page,
post-turn counts) pass None.

Closes #122
This commit is contained in:
iris 2026-05-20 22:04:57 +02:00 committed by Mara
parent 01cbd5e7cc
commit 1f52746bd9
4 changed files with 19 additions and 7 deletions

View file

@ -409,16 +409,18 @@ async fn dispatch(req: &ManagerRequest, coord: &Arc<Coordinator>) -> ManagerResp
},
}
}
ManagerRequest::CountPendingReminders => {
match coord.broker.count_pending_reminders_for(MANAGER_AGENT) {
ManagerRequest::CountPendingReminders { agent } => {
let target = agent.as_deref().unwrap_or(MANAGER_AGENT);
match coord.broker.count_pending_reminders_for(target) {
Ok(count) => ManagerResponse::PendingRemindersCount { count },
Err(e) => ManagerResponse::Err {
message: format!("{e:#}"),
},
}
}
ManagerRequest::ReminderRollup { since_secs } => {
match coord.broker.reminder_rollup_for(MANAGER_AGENT, *since_secs) {
ManagerRequest::ReminderRollup { since_secs, agent } => {
let target = agent.as_deref().unwrap_or(MANAGER_AGENT);
match coord.broker.reminder_rollup_for(target, *since_secs) {
Ok(stats) => ManagerResponse::ReminderRollup(stats),
Err(e) => ManagerResponse::Err {
message: format!("{e:#}"),