iachat/app/javascript/dashboard/components/app
Rodribm10 6aa328e329 fix(aggressive-alert): hidrata tracker de inatividade no boot
Bug reportado em 2026-04-24: só o banner vermelho status→open
funcionava. 5/15/28min nunca disparavam.

Causa: o tracker só era alimentado via websocket ao vivo
(message.created). Se a msg do cliente chegou ANTES da aba carregar
(ou depois de F5), o tracker ficava vazio, setInterval nunca começava,
thresholds nunca disparavam.

Fix:
- Nova função `hydrateFromConversations(convs)` no tracker. Varre
  conversas em 'open', pega a última msg não-activity, se for de
  Contact registra com timestamp REAL (msg.created_at), não Date.now().
  Isso fecha o gap de tempo: se o cliente falou 7min atrás, o YELLOW
  já dispara na hora.
- AggressiveConversationBanner.vue tem agora `watch: allConversations`
  chamando hydrate toda vez que a lista muda (boot + F5 + navegação).
- parseCreatedAt() suporta Unix seconds + ISO.
- findLastNonActivityMessage() ignora mensagens de sistema.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 08:00:38 -03:00
..
specs chore: Cleanup update banner with localstorage updates (#5209) 2022-08-05 13:46:12 +05:30
AddAccountModal.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
AggressiveConversationBanner.vue fix(aggressive-alert): hidrata tracker de inatividade no boot 2026-04-24 08:00:38 -03:00
PaymentPendingBanner.vue style: apply fixes for eslint issues [cw-3590] (#10210) 2024-10-03 15:02:12 +05:30
PendingEmailVerificationBanner.vue chore: Update buttons in dashboard (#11145) 2025-03-31 17:21:32 -07:00
UpdateBanner.vue fix: update GitHub versions link and version fetching (#105) 2025-08-28 10:50:03 -03:00
versionCheckHelper.js feat: update tool-chain to latest (#7975) 2023-09-27 14:02:34 +05:30