huskies: merge 1061

This commit is contained in:
dave
2026-05-14 20:08:09 +00:00
parent 54d9737428
commit 5678f2a556
11 changed files with 752 additions and 82 deletions
+24 -21
View File
@@ -274,34 +274,37 @@ async fn main() -> Result<(), std::io::Error> {
let matrix_shutdown_tx_for_rebuild = Arc::clone(&bot_ctxs.matrix_shutdown_tx);
// Shared rate-limit retry timer store.
let timer_store = std::sync::Arc::new(crate::service::timer::TimerStore::load(
startup_root
.as_ref()
.map(|r| r.join(".huskies").join("timers.json"))
.unwrap_or_else(|| std::path::PathBuf::from("/tmp/huskies-timers.json")),
));
let timer_store = {
let pool = crate::db::get_shared_pool().expect("db pool must be initialised before stores");
std::sync::Arc::new(
crate::service::timer::TimerStore::from_pool(pool.clone())
.await
.expect("failed to load timer store from db"),
)
};
let timer_store_for_tick = Arc::clone(&timer_store);
let timer_store_for_bot = Arc::clone(&timer_store);
// Event-based pipeline trigger store.
let event_trigger_store = std::sync::Arc::new(
crate::service::event_triggers::store::EventTriggerStore::load(
startup_root
.as_ref()
.map(|r| r.join(".huskies").join("event_triggers.json"))
.unwrap_or_else(|| std::path::PathBuf::from("/tmp/huskies-event-triggers.json")),
),
);
let event_trigger_store = {
let pool = crate::db::get_shared_pool().expect("db pool must be initialised before stores");
std::sync::Arc::new(
crate::service::event_triggers::store::EventTriggerStore::from_pool(pool.clone())
.await
.expect("failed to load event trigger store from db"),
)
};
let event_trigger_store_for_subscriber = Arc::clone(&event_trigger_store);
// Generic scheduled-timer store for the `schedule_timer` MCP tool.
let scheduled_timer_store =
std::sync::Arc::new(crate::service::timer::ScheduledTimerStore::load(
startup_root
.as_ref()
.map(|r| r.join(".huskies").join("scheduled_timers.json"))
.unwrap_or_else(|| std::path::PathBuf::from("/tmp/huskies-scheduled-timers.json")),
));
let scheduled_timer_store = {
let pool = crate::db::get_shared_pool().expect("db pool must be initialised before stores");
std::sync::Arc::new(
crate::service::timer::ScheduledTimerStore::from_pool(pool.clone())
.await
.expect("failed to load scheduled timer store from db"),
)
};
let scheduled_timer_store_for_tick = Arc::clone(&scheduled_timer_store);
let ctx = AppContext {