huskies: merge 643_story_web_ui_consumer_for_the_unified_status_broadcaster

This commit is contained in:
dave
2026-04-26 11:26:20 +00:00
parent f88bb5f486
commit 8673e563a9
13 changed files with 375 additions and 25 deletions
+14
View File
@@ -43,6 +43,12 @@ pub struct ProjectConfig {
/// Default: `true`.
#[serde(default = "default_rate_limit_notifications")]
pub rate_limit_notifications: bool,
/// Whether the web UI WebSocket consumer subscribes to the status broadcaster.
/// Set to `false` to disable status event forwarding to the web UI without
/// affecting other consumers (chat transports, agent context).
/// Default: `true`.
#[serde(default = "default_web_ui_status_consumer")]
pub web_ui_status_consumer: bool,
/// IANA timezone name (e.g. `"Europe/London"`, `"America/New_York"`).
/// When set, timer HH:MM inputs are interpreted in this timezone instead
/// of the container/host local time. Falls back to `chrono::Local` when absent.
@@ -123,6 +129,10 @@ fn default_rate_limit_notifications() -> bool {
true
}
fn default_web_ui_status_consumer() -> bool {
true
}
fn default_max_mesh_peers() -> usize {
3
}
@@ -252,6 +262,7 @@ impl Default for ProjectConfig {
max_retries: default_max_retries(),
base_branch: None,
rate_limit_notifications: default_rate_limit_notifications(),
web_ui_status_consumer: default_web_ui_status_consumer(),
timezone: None,
rendezvous: None,
trusted_keys: Vec::new(),
@@ -333,6 +344,7 @@ impl ProjectConfig {
max_retries: legacy.max_retries,
base_branch: legacy.base_branch,
rate_limit_notifications: legacy.rate_limit_notifications,
web_ui_status_consumer: default_web_ui_status_consumer(),
timezone: legacy.timezone,
rendezvous: None,
trusted_keys: Vec::new(),
@@ -365,6 +377,7 @@ impl ProjectConfig {
max_retries: legacy.max_retries,
base_branch: legacy.base_branch,
rate_limit_notifications: legacy.rate_limit_notifications,
web_ui_status_consumer: default_web_ui_status_consumer(),
timezone: legacy.timezone,
rendezvous: None,
trusted_keys: Vec::new(),
@@ -385,6 +398,7 @@ impl ProjectConfig {
max_retries: legacy.max_retries,
base_branch: legacy.base_branch,
rate_limit_notifications: legacy.rate_limit_notifications,
web_ui_status_consumer: default_web_ui_status_consumer(),
timezone: legacy.timezone,
rendezvous: None,
trusted_keys: Vec::new(),