Duansg opened a new pull request, #4161:
URL: https://github.com/apache/hertzbeat/pull/4161
## What's changed?
close #4156
when paging through the monitor list, the previous page's monitors lingered
as greyed-out "unavailable" rows on the new page until the next auto-refresh.
`reconcileMonitorStates()` ran on every load. It treats any monitor missing
from the new response as removed and fades it out for 5s — correct for the
2-minute auto-refresh, but wrong for pagination, where the previous page is
naturally absent and got misflagged as "disappeared".
## Modification details
Reconciliation now runs only on auto-refresh (sync()). Pagination and other
reloads use a new resetMonitorStates() that replaces the list directly and
clears pending grace timers, so no stale rows carry over.
## Checklist
- [x] I have read the [Contributing
Guide](https://hertzbeat.apache.org/docs/community/code_style_and_quality_guide)
- [ ] I have written the necessary doc or comment.
- [ ] I have added the necessary unit tests and all cases have passed.
## Add or update API
- [ ] I have added the necessary [e2e
tests](https://github.com/apache/hertzbeat/tree/master/e2e) and all cases have
passed.
## Effect
user-initiated actions (paging, delete, enable/disable, import) apply
immediately; only the background auto-refresh keeps the graceful fade for
externally-removed monitors.
<img width="1350" height="626" alt="Jun-18-2026 17-51-27"
src="https://github.com/user-attachments/assets/48c5c5b8-ab7e-4ba9-b4ee-9cdd44d1f611"
/>
> Fade-out effect
<img width="1704" height="576" alt="capcap-260618-164850"
src="https://github.com/user-attachments/assets/04b73809-38b4-48e6-9c00-1515574a1889"
/>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]