The Alarme + Threats nav badges were cached for 60s and the cache was only ever left to expire, so when an alert fired (or a fake-login was recorded) the sidebar count lagged the page content by up to a minute — the content showed the new state, the badge did not until a refresh. Centralise each count on its model (AlertIncident::firingCount / AuditEvent::threatLoginCount24h, still cached) and BUST that cache the instant the state changes: AlertEvaluator on every fire/resolve, HoneypotController on each recorded fake login. The badge now matches the content on the very next render (navigate or refresh) while keeping the per-render query off the hot path. (The alert e-mail itself was already fixed by the earlier Queue::before change; it just needed the long-lived queue worker restarted to pick up the new code — verified the worker now sends via SMTP, not the log mailer.) 750 tests (new cache-bust coverage). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Console/Commands | ||
| Enums | ||
| Events | ||
| Exceptions | ||
| Http | ||
| Jobs | ||
| Livewire | ||
| Models | ||
| Notifications | ||
| Providers | ||
| Rules | ||
| Services | ||
| Support | ||