mirror of
https://github.com/zvx-echo6/meshai.git
synced 2026-06-11 01:14:45 +02:00
fix(dispatcher): disable staleness filter for fire events
Fire events are always relevant regardless of age (a wildfire burning for 9 hours is not stale — it's ongoing). The staleness filter was designed for incidents with time_validity semantics, not persistent fire state. - defaults.py: add wfigs.freshness_seconds = 0 (disabled) - dispatcher.py: for fire toggle family, read from adapter_config instead of toggle; skip staleness check when freshness_s == 0 Fixes Blue Ridge fire being dropped after LAST_PER_SUBJECT replay. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
bd4b264672
commit
87cce0048d
2 changed files with 10 additions and 1 deletions
|
|
@ -61,6 +61,11 @@ REGISTRY: dict[tuple[str, str], dict[str, Any]] = {
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
"description": "Re-broadcast when containment percent increases (forward-only).",
|
"description": "Re-broadcast when containment percent increases (forward-only).",
|
||||||
},
|
},
|
||||||
|
("wfigs", "freshness_seconds"): {
|
||||||
|
"default": 0,
|
||||||
|
"type": "int",
|
||||||
|
"description": "Staleness gate for wfigs events (0 = disabled). Fire events are always relevant regardless of age.",
|
||||||
|
},
|
||||||
|
|
||||||
# =================================================================
|
# =================================================================
|
||||||
# NWS -- 3 settings (severity gate, tombstone msgTypes, suffix-promote toggle)
|
# NWS -- 3 settings (severity gate, tombstone msgTypes, suffix-promote toggle)
|
||||||
|
|
|
||||||
|
|
@ -340,6 +340,10 @@ class Dispatcher:
|
||||||
# inner Event.timestamp; for native adapters it's the upstream API's
|
# inner Event.timestamp; for native adapters it's the upstream API's
|
||||||
# timestamp. Receive-time is NOT used (it's meshai-side and tells us
|
# timestamp. Receive-time is NOT used (it's meshai-side and tells us
|
||||||
# nothing about how stale the underlying alert is).
|
# nothing about how stale the underlying alert is).
|
||||||
|
# v0.6-3b: fire toggle uses wfigs adapter_config freshness (0 = disabled)
|
||||||
|
if fam == "fire":
|
||||||
|
freshness_s = int(adapter_config.wfigs.freshness_seconds)
|
||||||
|
else:
|
||||||
freshness_s = int(getattr(tog, "freshness_seconds", 600) or 600)
|
freshness_s = int(getattr(tog, "freshness_seconds", 600) or 600)
|
||||||
if event.timestamp and freshness_s > 0:
|
if event.timestamp and freshness_s > 0:
|
||||||
age = time.time() - event.timestamp
|
age = time.time() - event.timestamp
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue