From 4fbe81342f78ca2ac705bb78784a3359b6d52e63 Mon Sep 17 00:00:00 2001 From: jedarden Date: Sat, 23 May 2026 06:43:43 -0400 Subject: [PATCH] P7.1: Fix set_leader call to include scope parameter The set_leader method now requires a scope parameter, which was missing in the resource-pressure metrics update. Co-Authored-By: Claude Opus 4.7 --- crates/miroir-proxy/src/main.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/crates/miroir-proxy/src/main.rs b/crates/miroir-proxy/src/main.rs index b2bfdec..029513e 100644 --- a/crates/miroir-proxy/src/main.rs +++ b/crates/miroir-proxy/src/main.rs @@ -162,6 +162,7 @@ impl FromRef for admin_endpoints::AppState { session_manager: state.admin.session_manager.clone(), alias_registry: state.admin.alias_registry.clone(), leader_election: state.admin.leader_election.clone(), + mode_c_worker: state.admin.mode_c_worker.clone(), } } } @@ -405,6 +406,25 @@ async fn main() -> anyhow::Result<()> { info!("drift reconciler not available (no task store configured)"); } + // Start Mode C worker background task (plan §14.5 Mode C) + // Processes chunked background jobs (dump import, reshard backfill) + if let Some(ref mode_c_worker) = state.admin.mode_c_worker { + let mode_c_worker = mode_c_worker.clone(); + tokio::spawn(async move { + info!("Mode C worker started"); + match mode_c_worker.run().await { + Ok(()) => { + info!("Mode C worker exited cleanly"); + } + Err(e) => { + error!("Mode C worker exited unexpectedly: {}", e); + } + } + }); + } else { + info!("Mode C worker not available (no task store configured)"); + } + // Start peer discovery refresh loop (plan §14.5) // Periodically performs SRV lookups to discover peer pods if let Some(ref peer_discovery) = state.peer_discovery { @@ -878,7 +898,7 @@ fn update_resource_pressure_metrics(metrics: &middleware::Metrics) { // Peer pod count is now set by peer discovery refresh loop (plan §14.5). // Leader election is not yet implemented (plan §14.5 Mode B). // Owned shards count will be set by Mode A rendezvous (plan §14.5). - metrics.set_leader(true); + metrics.set_leader("global", true); metrics.set_owned_shards_count(0); }