Found by Codex and independently confirmed during PR #2299 review. Classified MEDIUM and tracked outside the PR's single merge-blocking fix round.
The batch poll refreshes workload counts only when every tracked item is terminal. If item A reaches Failed while item B remains Triaging through the 60-second deadline, A's row/detail can be correct but the sidebar New + Failed badge omits the new failure. The deadline currently stops the poll without a final count notification, and ordinary Inbox summary refresh does not refresh workload counts.
Server state is safe and the badge recovers after a later count-refreshing action.
Acceptance:
- refresh workload counts when a newly observed terminal outcome can change the count, including partial completion before the deadline;
- avoid repeated notification storms on unchanged poll snapshots;
- prove partial terminal plus still-running sibling and deadline behavior with deterministic timers;
- preserve the existing all-terminal stop path and capture/review trust semantics.
Refs #2230 and PR #2299.
Found by Codex and independently confirmed during PR #2299 review. Classified MEDIUM and tracked outside the PR's single merge-blocking fix round.
The batch poll refreshes workload counts only when every tracked item is terminal. If item A reaches Failed while item B remains Triaging through the 60-second deadline, A's row/detail can be correct but the sidebar New + Failed badge omits the new failure. The deadline currently stops the poll without a final count notification, and ordinary Inbox summary refresh does not refresh workload counts.
Server state is safe and the badge recovers after a later count-refreshing action.
Acceptance:
Refs #2230 and PR #2299.