Skip to content

feat(alerts): show lifecycle status labels in alert list view (New, Updated, Extended, Escalated) #332

@Orinks

Description

@Orinks

Summary

The alert list currently shows title + severity (e.g. Dense Fog Advisory (Moderate)). It should also indicate whether the alert status has changed since last poll so users know at a glance what's happening.

Proposed labels

State Label Trigger
Newly issued (New) Alert ID appeared in current snapshot, absent in previous
Content changed (Updated) Content hash changed, severity/urgency unchanged
Severity increased (Escalated) severity moved to higher priority tier
Expiry pushed out (Extended) expires field moved later, content/severity unchanged
No change (no label) Alert present in both snapshots, nothing changed

Implementation notes

  • Requires persistent per-alert lifecycle state map ({alert_id → status}) stored across update cycles (e.g. in AlertManager or AlertNotificationSystem)
  • AlertLifecycleDiff needs a new EXTENDED sub-case: compare expires timestamps between snapshots, detect push-out without severity/urgency change
  • build_alerts() in display/presentation/alerts.py needs to accept an optional lifecycle_states: dict[str, str] and append the label to each alert title
  • Labels should be appended after the severity tag: Dense Fog Advisory (Moderate) (Extended)
  • State map should be cleared/reset when the location changes

Depends on

PR #330 (feat/alert-lifecycle-intelligence) — needs the AlertLifecycleDiff model and diff infrastructure already in place.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions