diff --git a/meshai/central/consumer.py b/meshai/central/consumer.py index 3b08cd3..0cf1686 100644 --- a/meshai/central/consumer.py +++ b/meshai/central/consumer.py @@ -584,10 +584,12 @@ class CentralConsumer: source = CENTRAL_ADAPTER_TO_SOURCE.get(raw_adapter, raw_adapter) if source != raw_adapter: logger.debug("Central adapter %r -> meshai source %r", raw_adapter, source) + # v0.6-3c: use handler severity override if present + sev_override = data.get("_severity_override") if isinstance(data, dict) else None return make_event( source=source, category=category, - severity=map_severity(inner.get("severity")), + severity=sev_override or map_severity(inner.get("severity")), **kwargs, ) diff --git a/meshai/central/wfigs_handler.py b/meshai/central/wfigs_handler.py index 1b99b9f..e41fa85 100644 --- a/meshai/central/wfigs_handler.py +++ b/meshai/central/wfigs_handler.py @@ -150,6 +150,9 @@ def handle_wfigs(normalized: dict, envelope: dict, subject: str, # from acres/containment updates (wildfire_incident). if isinstance(data, dict): data["category"] = "wildfire_declared" + # v0.6-3c: severity override for fire broadcasts + if isinstance(data, dict): + data["_severity_override"] = "immediate" if (acres and acres > 1000) or contained_pct == 0 else "priority" _attach_commit_handles(data, irwin_id=irwin_id, acres=acres, contained_pct=contained_pct, event_log_row_id=log_id) @@ -170,6 +173,9 @@ def handle_wfigs(normalized: dict, envelope: dict, subject: str, # handler call ran but no actual broadcast went out. if isinstance(data, dict): data["category"] = "wildfire_declared" + # v0.6-3c: severity override for fire broadcasts + if isinstance(data, dict): + data["_severity_override"] = "immediate" if (acres and acres > 1000) or contained_pct == 0 else "priority" _attach_commit_handles(data, irwin_id=irwin_id, acres=acres, contained_pct=contained_pct, event_log_row_id=log_id) @@ -209,6 +215,9 @@ def handle_wfigs(normalized: dict, envelope: dict, subject: str, if (changed_acres or changed_contained) and eight_hours_passed: wire = _render(normalized, prefix="Update") + # v0.6-3c: severity override for fire updates + if isinstance(data, dict): + data["_severity_override"] = "immediate" if (acres and acres > 1000) or contained_pct == 0 else "priority" _attach_commit_handles(data, irwin_id=irwin_id, acres=acres, contained_pct=contained_pct, event_log_row_id=log_id)