Skip to content

fix(breaking-news): critical alerts bypass cooldown and replace HIGH alerts#516

Merged
koala73 merged 1 commit intomainfrom
fix/breaking-alert-priority
Feb 28, 2026
Merged

fix(breaking-news): critical alerts bypass cooldown and replace HIGH alerts#516
koala73 merged 1 commit intomainfrom
fix/breaking-alert-priority

Conversation

@koala73
Copy link
Owner

@koala73 koala73 commented Feb 28, 2026

Summary

  • Critical alerts now bypass global cooldown — previously a HIGH alert from an early RSS batch (e.g. CrisisWatch) blocked all CRITICAL alerts for 60s, silencing actual breaking news like Iran strikes
  • Banner auto-dismisses HIGH alerts when CRITICAL arrives — makes room for what matters
  • Added Iran/strikes keywords to threat classifier (critical: "strikes on iran", "war with iran", etc.; high: "strikes", "bombardment", "shelling", etc.)
  • Recency tie-breaking — among same-level alerts, the most recent item wins instead of first-encountered

Test plan

  • Verify CRITICAL alerts show even if a HIGH alert fired <60s ago
  • Verify HIGH alerts are dismissed from banner when CRITICAL arrives
  • Verify Iran/strikes headlines classify as CRITICAL or HIGH
  • Verify tsc --noEmit passes (confirmed locally)

…place HIGH alerts

Global cooldown (60s) was blocking critical alerts when a less important
HIGH alert fired from an earlier RSS batch. Added priority-aware cooldown
so critical alerts always break through. Banner now auto-dismisses HIGH
alerts when a CRITICAL arrives. Added Iran/strikes keywords to classifier.
@vercel
Copy link

vercel bot commented Feb 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
worldmonitor Building Building Preview, Comment Feb 28, 2026 9:14am
worldmonitor-finance Building Building Preview, Comment Feb 28, 2026 9:14am
worldmonitor-happy Building Building Preview, Comment Feb 28, 2026 9:14am
worldmonitor-startup Building Building Preview, Comment Feb 28, 2026 9:14am

Request Review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c51c4f742

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

'air strikes': 'conflict',
'drone strike': 'conflict',
'drone strikes': 'conflict',
'strikes': 'conflict',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove bare strikes from high-severity keywords

Adding a standalone strikes keyword causes classifyByKeyword to label any headline containing that word as high (for example labor or diplomatic headlines like “workers plan strikes” or “country strikes a deal”), and those high labels are treated as breaking alerts downstream, producing noisy banner/notification false positives. This is an accuracy regression introduced by the commit; the keyword should be narrowed to military-specific phrases or contextualized with adjacent conflict terms.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant